🔧 chore(README.md): reformat and update CLI section for clarity and consistency
The README.md file has been updated to improve the organization and readability of the document. The table of contents has been updated to include all relevant sections. Headings have been adjusted to provide a clear hierarchy and improve navigation. The CLI section has been reformatted and updated to provide clearer instructions and explanations.
The README file now includes a new section that provides information on how to use the command-line interface (CLI) of Langflow. It explains the available options and their usage. Additionally, a section on environment variables is added, which explains how to configure CLI options using environment variables. This provides users with more flexibility in customizing the behavior of the Langflow server.
🌟 feat(__main__.py): add support for environment variables to configure serve function
The serve function in __main__.py has been refactored to use environment variables for configuration options. The following configuration options now support environment variables: host, workers, port, log_level, log_file, path, open_browser, and remove_api_keys. This change allows for greater flexibility and easier configuration of the serve function by using environment variables instead of command line options.
The .env.example file has been updated to include example values and new configuration options. The LANGFLOW_DATABASE_URL example has been updated to include both Postgres and SQLite examples. New configuration options have been added for cache type, server host, worker processes, server port, logging level, log file path, frontend directory path, whether to open the browser after starting the server, and whether to remove API keys from the projects saved in the database. These changes provide more flexibility and customization options for the application.
The environment variable name is changed from LANGFLOW_DATABASE_URL to langflow_database_url to maintain consistency with the naming conventions used in the codebase. This ensures that the code is more readable and easier to understand.
The `cache` option has been changed to use the `LANGFLOW_LANGCHAIN_CACHE` environment variable instead of `LANGCHAIN_CACHE` for clarity and consistency. Similarly, the `database_url` option now uses the `LANGFLOW_DATABASE_URL` environment variable instead of the previous behavior of using a local SQLite database by default. This change allows for more flexibility in configuring the cache and database connections.
🔧 chore(utils.py): refactor `setup_llm_caching` to extract cache setup logic into a separate function for better modularity and readability
The variable `cache_class` has been renamed to `cache_type` to improve clarity and consistency with the naming conventions. The `setup_llm_caching` function has been refactored to extract the cache setup logic into a separate function called `set_langchain_cache`. This improves modularity and readability of the code.
The .env.example file is added to provide an example of how to configure the .env file. It includes a commented out example of a PostgreSQL database URL and a new line is added with the langflow_database_url set to a SQLite database URL. This allows users to easily copy the file to .env and modify the values according to their needs.
style(DisclosureComponent): update Icon class to use text-primary class for consistent styling
style(FlowPage): remove logspace-icon-text class and update the structure of the icon and text elements for better alignment and spacing
The `database_url` setting is now declared as an optional string (`Optional[str]`) instead of a required string. This change allows the application to handle cases where the `database_url` is not provided, providing more flexibility in the configuration.
The os module is imported to make use of the os.getenv() function. The loading of the environment variables is refactored to check for the presence of the "langflow_database_url" environment variable and use it as the value for the database_url variable if it is not provided. This allows for more flexibility in configuring the database URL. Additionally, the loading of environment variables is refactored to allow overriding with a .env file if the env_file parameter is provided. This allows for easier configuration management.
🔧 chore(__main__.py): import os module and refactor loading of environment variables
The noqa comments have been added to the import statements to ignore the linting errors raised by the linter. This ensures that the linting errors related to the imports are ignored and the code can be properly executed without any issues.
✨ feat(base.py): add error handling when creating database and tables to provide more informative error messages
The code now checks if the `settings.database_url` is provided and raises a `RuntimeError` if it is not. This ensures that the application does not attempt to create a database connection without a valid URL. Additionally, error handling has been added when creating the database and tables. If an exception occurs during the creation process, an error message is logged and a `RuntimeError` is raised with a more informative error message. This helps in identifying and resolving any issues related to the database creation process.
The class names for the validation status indicators were incorrect, causing the wrong styles to be applied. The class names have been fixed to correctly display the validation status indicators based on the validation status and whether the node is building.
🔄 refactor(template/frontend_node/documentloaders.py): rename web_path variable to file_path for better clarity and consistency in the GutenbergLoader class
The Node class in the vertex/base.py file has been renamed to Vertex class to improve clarity and consistency in the naming conventions used throughout the codebase. In the template/frontend_node/documentloaders.py file, the web_path variable has been renamed to file_path in the GutenbergLoader class to provide better clarity and consistency in the naming conventions used within the class.
The password field is added to the extra_fields list in the VectorStoreFrontendNode class. This allows for the creation of a password input field in the frontend UI for this specific class.
The password field is added to the extra_field2 in the VectorStoreFrontendNode class. This allows the field to be displayed as a password input in the frontend, enhancing security by hiding the input characters.
This pull request introduces a new feature that enhances our CSS
architecture by adding support for @layer components. With this feature,
we can now organize and manage our CSS more efficiently, making it
easier to work with and maintain.
🔧 fix(index.css): add new styles for input components to improve consistency and usability
🔧 fix(ApiModal/index.tsx): fix potential null reference error when pushing tweaks to the current tweak ref
🔧 fix(chatInput/index.tsx): remove unused constant import and update input style class name
🔧 fix(genericModal/index.tsx): update class name for textarea to match new primary form style
🔧 fix(textAreaModal/index.tsx): update class name for textarea to match new primary form style
🔧 fix(extraSidebarComponent/index.tsx): remove unused constant imports and update input search class name
This pull request addresses issues related to the appearance of the
project in both dark mode and normal mode. It includes various fixes to
ensure a consistent and visually appealing user experience.
Replace text highlight when underlining (I think it's ring, strange) ✅
Check hovers (shadows and color changes) in dark mode ✅
Adjust spacing parameters in all components (padding between the param
name and the input) ✅
There are icons with incorrect sizes ✅
Icon thickness ✅
In exports, if you change the name, it doesn't take effect (maybe
someone already solved it? Check) ✅
Edit node modal resposive ✅
⬆️ chore(pyproject.toml): update fastapi dependency to version 0.99.0
The package version has been updated from 0.2.10 to 0.2.11. This change reflects the new version of the package. Additionally, the fastapi dependency has been updated from version 0.98.0 to 0.99.0 to ensure compatibility with the latest version of fastapi.
📝 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.
⬆️ chore(pyproject.toml): update fastapi dependency to version 0.99.0
The package version has been updated from 0.2.10 to 0.2.11. This change reflects the new version of the package. Additionally, the fastapi dependency has been updated from version 0.98.0 to 0.99.0 to ensure compatibility with the latest version of fastapi.
📝 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.
📝 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.