* Fix mark_branch function in Graph class to properly handle visited vertices
* Refactor build_and_cache_graph_from_db function in utils.py to simplify code and remove unnecessary parameter
* Fix retrieval of graph from cache in retrieve_vertices_order function
* Fix possible_id type annotation in get_id_from_search_string function
* Refactor APIRequest class to improve variable naming and remove unnecessary underscore prefix in headers parameter
* Refactor buildVertices function in buildUtils.ts to improve code readability and remove unnecessary variable assignment
* Fix API endpoints in test_endpoints.py to use correct HTTP methods
♻️ (APIRequest.py): refactor APIRequest class to improve variable naming and remove unnecessary underscore prefix in headers parameter
💡 (APIRequest.py): update comments in APIRequest class to improve code readability and maintainability
The input and output components FileInput.py, JsonInput.py, KeyPairInput.py, StringListInput.py, CSVOutput.py, ImageOutput.py, JsonOutput.py, KeyPairOutput.py, PDFOutput.py, and StringListOutput.py were deleted as they were no longer being used in the project. This cleanup improves code organization and reduces unnecessary dependencies.
🐛 (constants.py): fix import statement for JsonSpec from langchain.tools.json.tool to langchain_community.tools.json.tool
🐛 (index.tsx): add data-testid attribute to the div element to improve testability
🐛 (buildUtils.ts): add debugger statement for debugging purposes
🐛 (chatInputOutput.spec.ts): fix click event target from "Run" to "Playground"
🐛 (fileUploadComponent.spec.ts): fix click event target from "Run" to "Playground"
🐛 (textInputOutput.spec.ts): fix click event target from "Run" to "Playground"
* Refactor store_message function in chat.py and memory.py
* Refactor store_message function in chat.py and memory.py
* Add StoreMessageComponent to langflow components
* Refactor store_message function in chat.py and memory.py to require session_id, sender, and sender_name
* Refactor StoreMessageComponent to use Optional[str] for sender_name and session_id parameters
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
In our ongoing commitment to enhancing user experience and streamlining
data interaction, we are thrilled to introduce a trio of powerful IO
components: JSON Viewer, DictionaryIO, and InputListIO. These components
are meticulously crafted to empower developers with seamless data
handling capabilities, enabling efficient processing and visualization
of JSON data structures, dictionaries, and input lists.
📝 (StringListOutput.py): update parameter name from "param" to "input_value" to improve clarity and consistency
📝 (index.tsx): add InputListComponent to handle StringListInput and StringListOutput components in IOFieldView
📝 (index.tsx): update InputListComponent props to include value, onChange, disabled, and playgroundDisabled
📝 (index.tsx): update IOFieldView to render InputListComponent for StringListInput and StringListOutput components
* Refactor RoutingVertex class in types.py to include a new step in the steps list
* Refactor Graph class to update run_manager.run_predecessors when activating vertices
* Refactor ShouldRunNextComponent class in ShouldRunNext.py to improve error handling and readability
* Refactor error handling in get_lifespan function in main.py and fix mismatch between models and database in DatabaseService class in service.py
* Fix vertex inactivation
* Fix inactivation of vertices and update buildUtils
* Refactor ShouldRunNextComponent class to improve error handling and readability
* Refactor langflow.graph.vertex.types imports in base.py
* Fix nullable constraint in langflow migration script
* Fix condition check in ShouldRunNextComponent class
* Refactor build_graph_maps function in base.py to accept optional parameters for edges and vertices
* Apply grayscale effect to ring-muted-foreground in applies.css
* Apply grayscale effect to ring-muted-foreground in applies.css
✨ (KeyPairOutput.py): add a new custom component called "KeyPairOutput" to handle dictionary outputs
✨ (StringListOutput.py): add a new custom component called "StringListOutput" to handle string list outputs
🚀 (constants.ts): add "StringListInput" and "StringListOutput" to the list of supported input and output types
♻️ (index.tsx): refactor IOKeyPairInput component to accept an additional prop "isInputField" and disable input fields if it's false
♻️ (index.tsx): refactor IOFieldView component to handle rendering of "StringListInput" and "StringListOutput" components
✨ (KeyPairInput.py): add a new component called "KeyPairInput" to handle dictionary input data in the language flow system
✨ (CSVOutput.py): add a new component called "CSVOutput" to handle CSV output data in the language flow system
✨ (ImageOutput.py): add a new component called "ImageOutput" to handle image output data in the language flow system
✨ (JsonOutput.py): add a new component called "JsonOutput" to handle JSON output data in the language flow system
✨ (PDFOutput.py): add a new component called "PDFOutput" to handle PDF output data in the language flow system
📝 (App.css): update CSS to improve readability and formatting
📝 (parameterComponent/index.tsx): fix a bug where rangeSpec is not properly accessed in the FloatComponent
📝 (cardComponent/index.tsx): update the CollectionCardComponent to include a new button for opening the playground and handle the opening and closing of the IOModal
📝 (codeTabsComponent/index.tsx): fix conditional rendering of InputListComponent by using optional chaining operator to check if the list property exists in the template object
📝 (keypairListComponent/index.tsx): refactor the initialization of the ref variable to handle both empty and non-empty values correctly
📝 (constants.ts): add "JsonInput" and "JsonOutput" to the INPUT_TYPES and OUTPUT_TYPES constants to support JSON input and output components
📝 (editNodeModal/index.tsx): fix conditional rendering of InputListComponent by using optional chaining operator to check if the list property exists in the template object
📝 (ioFieldView/components/JSONInput/index.tsx): add JSONInput component to handle JSON input in the IOFieldView component
📝 (ioFieldView/components/keyPairInput/index.tsx): add keyPairInput component to handle key-value pair input in the IOFieldView component
✨ (IOFieldView/index.tsx): add useState import to use state hook in functional component
✨ (IOFieldView/index.tsx): add support for KeyPairInput component in IOFieldView
✨ (IOFieldView/index.tsx): add support for JsonInput component in IOFieldView
✨ (IOFieldView/index.tsx): add support for JsonOutput component in IOFieldView
📝 (dictAreaModal/index.tsx): add useDarkStore import to use dark mode state in DictAreaModal component
📝 (classes.css): add CSS classes for json-view component in different themes
📝 (types/components/index.ts): remove duplicate InputGlobalComponentType definition
* Fix created_at field type in Variable model
* Fix created_at field type in ApiKey model
* Fix error handling in add_row_to_table function
#1790
* Apply type hinting to nest_asyncio import in load.py
* Add BaseMemoryComponent class to langflow.base.memory.memory.py (#1750)
* Add BaseMemoryComponent class to langflow.base.memory.memory.py
* Update MemoryComponent class in langflow.components.helpers.MemoryComponent.py to inherit from BaseMemoryComponent
* ✨ (ZepMessageReader.py): Add ZepMessageReaderComponent to retrieve chat messages from Zep
📝 (ZepMessageWriter.py): Add ZepMessageWriterComponent to add messages to ZepChatMessageHistory
📝 (Langflow Memory Conversation.json): Refactor MemoryComponent class to inherit from BaseMemoryComponent for better code organization and reusability. Move get_messages method to the class level and validate kwargs for correct keys before processing.
* Update WeaviateSearch.py to include index_name parameter in build method
Update ZepMessageWriter.py to include metadata parameter in __init__ method
Update ZepMessageReader.py to include cast function for memory parameter
Update schema.py to include cast function for metadata parameter
Update process.py to include tweaks_dict variable and use it in apply_tweaks method
Update Weaviate.py to include index_name parameter in build method and raise ValueError if index_name is not provided
* Update process.py to include tweaks_dict variable and use it in apply_tweaks method
* ✨ (ZepMessageReader.py): Update ZepMessageReaderComponent build method to handle optional url and api_key parameters and improve error handling for zep-python package import
📝 (ZepMessageWriter.py): Refactor ZepMessageWriterComponent to use 'text' instead of 'message' for consistency and update add_message method to reflect this change. Add 'input_value' configuration option for specifying the record to write to Zep. Update build_config method to reflect changes in input parameters. Update add_message method to use 'text' parameter instead of 'message'. Update build method to handle optional url and api_key parameters and improve error handling for zep-python package import.
* Update zep-python package to version 2.0.0rc5
* 📝 (memory.py): update parameter name from 'message' to 'text' for better clarity and consistency
* Update build_and_cache_graph function to handle graph data from database and from input data
* Update get_vertices endpoint to handle graph data from input
* Update build_vertex function to handle graph data from database
* Update build_vertex function to handle graph data from input
* Update FlowDataRequest schema to include optional viewport field