🐛 fix(base.py): add reset method to Edge class to reset source and target params when needed
🐛 fix(base.py): add __setstate__ method to Graph class to properly set state when unpickling
🐛 fix(base.py): add __eq__ method to Graph class to compare graphs based on their string representation
🐛 fix(types.py): add __getstate__ and __setstate__ methods to AgentVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to ToolVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to LLMVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to ToolkitVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to FileToolVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to DocumentLoaderVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to EmbeddingVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to VectorStoreVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to TextSplitterVertex class to properly set and get state when pickling and unpickling
✨ feat(types.py): add reset method to AgentVertex class to reset source and target params when needed
✨ feat(types.py): add reset method to ToolVertex class to reset source and target params when needed
✨ feat(types.py): add reset method to LLMVertex class to reset source and target params when needed
✨ feat(types.py):
🐛 fix(base.py): add missing import statement for logger
🐛 fix(base.py): handle AttributeError when comparing Vertex objects for equality
🐛 fix(base.py): handle exception and log it when building node fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): reset params and rebuild built object when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object
🐛 fix(cache/manager.py): pickle value before caching it to mimic Redis behavior
🐛 fix(cache/manager.py): raise ValueError if RedisCache fails to set the value
🐛 fix(session/manager.py): generate key if it is None before checking cache
✨ feat(session/manager.py): add logging import to enable logging in the session manager
✨ feat(docker-compose.override.yml): add configuration for the celeryworker service to enable Traefik routing and expose port 7860 for API endpoints
🐛 fix(docker-compose.yml): remove parallel test execution flag from the command for the test service
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
🔨 refactor(worker.py): rename langchain_object variable to built_object to improve semantics
🔨 refactor(worker.py): rename langchain_object variable to graph for better clarity
fix(chatComponent): update validation check to use processFlow function to correctly count nodes
fix(formModal): remove unnecessary spread operator on processFlow function call
fix(reactflowUtils): update getGroupStatus function to correctly return status based on ssData
This PR introduces a new feature to enhance the editing capabilities of
nodes in our application. We've added a "More" button to the
nodeToolbar, which, when clicked, reveals additional options for editing
nodes.
feat(nodeToolbarComponent): add support for minimal mode in the toolbar
feat(nodeToolbarComponent): add functionality to show/hide advanced options in the toolbar
ℹ️ This commit adds a new node called "Basic Chat with Prompt and History" to the project. This node is a simple chat implementation with a custom prompt template and a conversational memory buffer.
The node has the following properties:
- Width: 384
- Height: 621
- ID: ChatOpenAI-N0ogT
- Type: genericNode
- Position: {x: 148.32546232493678, y: 675.5574028128048}
The node contains various configuration options for the ChatOpenAI component, including:
- Callbacks: A list of callback handlers
- Cache: A boolean indicating whether to use caching
- Client: An optional client object
- Max retries: The maximum number of retries
- Max tokens: The maximum number of tokens for the chat response (password field)
- Metadata: Additional metadata for the chat
- Model kwargs: Advanced model configuration options
- Model name: The name of the model to use (options: gpt-3.5-turbo-0613, gpt-3.5-turbo, gpt-3.5-turbo-16k-0613, gpt-3.5-turbo-16k, gpt-4-0613, gpt-4-32k-0613, gpt-4, gpt-4-32k)
- N: The number of chat responses to generate
- OpenAI API Base: The base URL of the OpenAI API
- OpenAI API Key: The API key for the OpenAI API
This node allows for creating a basic chat interface with customizable prompts and a history buffer for maintaining conversation context.
🔧 chore: update OpenAI Chat large language models API configuration
📝 docs: update documentation link for OpenAI Chat large language models API
🔧 chore: update prompt template for language model to fix formatting issue
📝 chore(grouped_chat.json): add grouped_chat.json test data file
The grouped_chat.json file is added to the tests/data directory. This file contains a large JSON object representing a grouped chat. It is used for testing purposes.
🚀 feat(test_graph.py): add new tests and fixtures to improve test coverage and ensure correctness of graph module functions
🐛 fix(test_graph.py): fix incorrect function name in test_find_last_node
🔧 chore(test_graph.py): refactor test_get_node_neighbors_complex to be commented out for now, as it is incomplete and causing test failures
refactor(tabsContext.tsx): remove console.log statement for old edges
refactor(tabsContext.tsx): add comments to indicate updating edges colors and baseclasses in edges
refactor(tabsContext.tsx): add comments to indicate updating baseclasses in edges
refactor(tabsContext.tsx): add comments to indicate adding animation to text type edges
refactor(tabsContext.tsx): update updateIds function to handle GroupNode type nodes
refactor(reactflowUtils.ts): update updateIds function to handle GroupNode type nodes
refactor(reactflowUtils.ts): update updateIds function to handle sourceHandle and targetHandle ids in edges
The changes in this commit simplify the code in the TabsProvider component in the tabsContext.tsx file. Here's a summary of the changes:
- In the `createNewFlow` function, the `flowData` parameter is now of type `ReactFlowJsonObject | null` instead of `{ data: ReactFlowJsonObject | null; description: string }`. This simplifies the function signature and removes the need for destructuring the `flowData` object.
- The `extractDataFromFlow` function has been renamed to `processDataFromFlow` to better reflect its purpose. The function now returns only the `data` property from the `flow` object instead of an object with `data` and `description` properties.
- The `description` property in the `createNewFlow` function is now set to `flow.description ?? getRandomDescription()`. This ensures that if the `flow` object has a `description` property, it is used, otherwise a random description is generated.
- The `processFlowEdges` and `processFlowNodes` functions are no longer called in the `createNewFlow` function. It seems that these functions are defined elsewhere and are not necessary in this context.
These changes simplify the code and improve readability by removing unnecessary checks and simplifying function signatures.
fix(tabsContext.tsx): change parameter type of newProject in addFlow function from optional Boolean to required Boolean to improve clarity and prevent potential bugs
fix(extraSidebarComponent/index.tsx): change argument of uploadFlow function from undefined to false to fix a bug where uploadFlow was not being called correctly
fix(tabs/index.ts): change parameter type of newFlow in uploadFlow function from optional boolean to required boolean to improve clarity and prevent potential bugs