📝 docs(chat.py): explain the need for building the root node before the rest of the graph
The root node in the graph was not being built before the rest of the graph, which caused issues when certain nodes required parameters that were not connected to them. By adding the missing build step for the root node, we ensure that all necessary connections and parameters are properly set up before building the rest of the graph. This improves the overall functionality and reliability of the chat module.
The debug log statement "Database and tables created" has been removed as it is unnecessary. Instead, a success log statement "Database and tables created successfully" has been added to indicate that the database and tables were created without any errors. This improves the clarity of the log messages and provides better feedback during the database setup process.
The environment variable prefix used in the settings.py file has been updated from "LANGFLOW_" to "langflow_" to maintain consistency with the naming conventions used in the project. This change ensures that all environment variables related to the Langflow backend have a consistent prefix.
The package.json file has been updated to include the dependencies for Prettier and the Prettier plugin for Tailwind CSS. Prettier is a code formatter that helps maintain consistent code style across the project. The Prettier plugin for Tailwind CSS ensures that the Tailwind CSS code is formatted correctly. Additionally, a new prettier.config.js file has been added to configure Prettier with the Tailwind CSS plugin. This will improve the code formatting and maintainability of the frontend codebase.
Added the documentation link for the PyPDFDirectoryLoader in the config.yaml file. This allows users to access the documentation on how to use the PyPDFDirectoryLoader for loading PDF documents.
The logger.debug() statements are added to provide more visibility into the process of creating the database and tables. This can be helpful for debugging and troubleshooting purposes.
The conditional statements in the useEffect hook were formatted to improve code readability. By breaking the statements into multiple lines and adding proper indentation, it is easier to understand the logic. This change does not affect the functionality of the code.
The error handling in the WebSocket connection has been refactored to improve readability and error handling. Instead of nesting the `getHealth()` promise inside the `onerror` callback, it has been extracted to a separate `.then()` block. This allows for better separation of concerns and makes the code more readable. Additionally, the error handling logic has been updated to properly set the `setErrorData` state when the backend fails to respond.
The change is made to improve the logging of exceptions. Using logger.exception instead of logger.error allows the logger to log the full traceback of the exception, providing more detailed information for debugging purposes.
🔧 refactor(documentloaders.py): remove redundant code for adding fields in DocumentLoaderFrontNode class
The code in the DocumentLoaderFrontNode class has been refactored to extract the logic for building directory loader fields into a separate function called build_directory_loader_fields(). This improves code readability and maintainability by separating concerns and reducing duplication. The redundant code for adding fields in the DocumentLoaderFrontNode class has also been removed.
The default value of the "Persist" extra field in the VectorStoreFrontendNode class has been changed from True to False. This change was made to align the default value with the desired behavior of the application.
The output_key field is now only added to the template if the template type is not VectorStoreRetrieverMemory. This ensures that the output_key field is not added unnecessarily for templates of this type.
The `logger.exception(exc)` line has been added to log the exception that occurred. This will help with error handling and debugging by providing more information about the exception that caused the error.
The code now checks if the "retriever" key exists in the params dictionary and if the value has an "as_retriever" method. If it does, the value is replaced with the result of calling the "as_retriever" method. This change ensures that the "retriever" parameter is always an instance of the retriever object, preventing potential attribute errors later in the code.
The logic for updating memory keys in the `run.py` file has been refactored to use a loop and a try-except block. Instead of individually assigning values to `input_key`, `output_key`, and `memory_key`, the keys and attributes are now stored in lists. The loop iterates over the lists and attempts to set the attribute values using `setattr()`. If an attribute does not exist, a `ValueError` is caught and a debug log message is printed. This refactoring improves code readability and maintainability.
🔧 fix(dropdownComponent): update import statement for INPUT_STYLE constant to include additional constant for input edit node
🔧 fix(floatComponent): update import statement for INPUT_STYLE constant to include additional constants for input disable and input edit node
🔧 fix(inputComponent): update import statement for INPUT_STYLE constant to include additional constants for input disable and input edit node
🔧 fix(inputFileComponent): update import statement for INPUT_STYLE constant to include additional constants for input disable and input edit node
🔧 fix(inputListComponent): update import statement for INPUT_STYLE constant to include additional constants for input disable and input edit node
🐛 fix(intComponent): add INPUT_DISABLE constant to disable input when disabled prop is true
🐛 fix(promptComponent): add INPUT_DISABLE constant to disable input when disabled prop is true
🐛 fix(textAreaComponent): add INPUT_DISABLE constant to disable input when disabled prop is true
🐛 fix(extraSidebarComponent): change INPUT_STYLE to INPUT_SEARCH for search input styling
✨ feat(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
The code now checks if the langchain_object.prompt has a template attribute before adding it to the input_keys_response. This prevents potential errors if the template attribute is not present in the prompt object.
The commit removes unused imports and cleans up the code formatting in the formModal/index.tsx file. This improves code readability and reduces unnecessary clutter.
The 'value' of the 'persist_directory' field is set to False to disable persistence. This change ensures that the 'persist_directory' field is not shown and the value is not set to True by default.
The persist_directory field in the VectorStoreFrontendNode class is now set to False. This change was made to disable the persistence of the directory.
The `process_base_classes` method is added to the `FrontendNode` class. This method removes unwanted base classes specified in the `CLASSES_TO_REMOVE` list from the `base_classes` list. This ensures that only the desired base classes are included in the `base_classes` list. The method is then called in the `to_dict` method to ensure that the processed `base_classes` list is used when converting the `FrontendNode` instance to a dictionary.
- Simplify component styles for codeAreaComponent, dropdownComponent, floatComponent, inputComponent, inputFileComponent, intComponent, promptComponent, and textAreaComponent.
- Remove unnecessary classes and styling.
- Improve overall readability and maintainability of the code.
The classNames in the Dropdown component were updated to use the consistent background color "bg-background" instead of "bg-white" to improve visual consistency and maintain a unified design across the application.
fix(exportModal/index.tsx): update downloadFlow function calls to include flow name and description parameters
fix(types/tabs/index.ts): update downloadFlow function signature to include flow name and description parameters
This pull request addresses a bug related to WebSocket functionality
that was causing an empty error to be displayed. The bug resulted in
incorrect error-handling behavior within the WebSocket implementation,
leading to confusion and difficulties in identifying and resolving
issues.
By addressing this bug and improving the WebSocket error handling
mechanism, this pull request significantly enhances the overall
stability and reliability of the application.
The missing return statement caused the function to not return any value when the node_type is not "VertexAI". Adding the return statement ensures that the function returns the instantiated class object with the provided parameters in all cases.
The VertexAIIcon component is added to the icons directory, allowing the usage of the Vertex AI icon in the application. The nodeIconsLucide object in the utils.ts file is updated to include the VertexAI and ChatVertexAI icons, enabling their usage in the application. This addition enhances the visual representation of the application by providing new icons related to Vertex AI functionality.
- Adjust indentation and spacing for better readability
- Change font weight of text elements to improve visual hierarchy
- Add left margin to the Variable component to align it properly
No functional changes were made.
fix(alertContext.tsx): set the error, notice, and success data states before opening the respective alerts
feat(chatModal/index.tsx): add error handling for websocket connection and check backend health before reconnecting