* Fixed Check Code Validity to set outdated as false when type does not exist
* feat: Refactor update_template_values function
Refactor the `update_template_values` function to improve code readability and maintainability. Rename the parameters `frontend_template` to `new_template` and `raw_template` to `previous_template` for clarity. Update the variable names within the function accordingly.
* feat(update_template_field): update load_from_db in case field value is not the default
* refactor: update template values in PromptComponent
Update the `update_template_values` function in the `PromptComponent` class to improve code readability and maintainability. Rename the parameters `frontend_template` to `new_template` and `raw_template` to `previous_template` for clarity. Update the variable names within the function accordingly.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* feat: update RunnableVerticesManager to include an update_run_state method
* feat: refactor build_run_map method in RunnableVerticesManager
This commit refactors the `build_run_map` method in the `RunnableVerticesManager` class. Instead of directly accessing the `graph` object, it now takes `predecessor_map` and `vertices_to_run` as parameters. This improves code readability and maintainability.
* fix(state): set vertices_to_run and predecessor_map correctly when updating a state
* fix: set inactive vertices to active when updating graph
* fix: add conditions to avoid duplicated vertices in maps
This commit fixes a bug in the Graph class where the predecessor and successor maps were not being updated correctly. The bug caused incorrect mapping of edges in the graph. This fix ensures that the maps are updated properly when adding edges to the graph.
* refactor: fix vertex build response in chat.py
This commit fixes the `build_vertex` function in `chat.py` to correctly handle the `VertexBuildResponse` object. The `inactivated_vertices`, `next_vertices_ids`, and `top_level_vertices` attributes are now converted to lists to remove any duplicate values. This ensures that the response object contains unique values for these attributes. The fix improves the accuracy and reliability of the vertex build process.
* style(graph/base.py): update type annotations for predecessor_map and successor_map variables to improve code readability and maintain consistency
* fix: uncomment code for stopping build in MenuBar component
* chore: update version to 0.0.83 in pyproject.toml
* chore: update version to 1.0.7 in pyproject.toml
---------
Co-authored-by: Cristhian Zanforlin Lousa <72977554+Cristhianzl@users.noreply.github.com>
* fix: add user to database if not already present in health_check
The code changes in `health_check_router.py` add functionality to check if a user with a specific ID exists in the database. If the user does not exist, the code adds the user to the database with the necessary details. This ensures that the user is present in the database for further processing in the health check.
* style(health_check_router): format
* Refactor DirectoryComponent to filter file paths by types
* fix: sets types is_list to True
* chore: Remove Optional from load_directory method signature
* chore: Update return type annotation for load_directory method
* style(GroqModel.py): improve code readability by fixing indentation and adding a comment for type hint ignore in ChatGroq instantiation.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix(langflow): handle KeyboardInterrupt and terminate process in run function for graceful shutdown
* refactor(langflow): remove unnecessary try-except block and sys.exit calls in run_langflow function
* fix(langflow): handle exceptions properly and exit with appropriate status codes
* refactor: update multiprocess imports in langflow/__main__.py
Adds type ignore
* refactor(base.py): refactor logic to find start_component_id based on multiple keywords for improved flexibility and readability
* feat(schema.py): add WebhookInput component type to INPUT_COMPONENTS list for handling webhook inputs in the graph schema
* refactor(base.py): refactor logic to determine start_component_id based on webhook or chat component presence in input vertices
* refactor: prioritize webhook component for determining start_component_id
* ⚡️ Speed up convert_kwargs() by 9%
To optimize the given Python program, we can focus on a few key areas.
1. **Avoid Repeated Lookups:** Instead of repeatedly looking up keys and values in the dictionary, we can iterate over items directly.
2. **Efficient JSON Parsing:** Using `orjson` is already a good choice for performance. We will handle the exception based on `orjson` capabilities.
3. **In-place Modification:** We can modify the dictionary in place without creating additional lists.
Here is the optimized program.
### Changes Made.
1. **Direct Looping:** We iterate directly over `params.items()` to process keys and values together, which helps avoid multiple lookups.
2. **Exception Handling:** We catch `orjson.JSONDecodeError` directly, avoiding unnecessary import and potential mismatches.
3. **Deferred Removal:** We collect keys to remove in `items_to_remove` and then remove them outside the loop, which helps avoid modification issues during iteration.
This should result in more efficient iteration and handling while reducing overhead from unnecessary operations.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* refactor(base.py): refactor logic to find start_component_id based on multiple keywords for improved flexibility and readability
* feat(schema.py): add WebhookInput component type to INPUT_COMPONENTS list for handling webhook inputs in the graph schema
* refactor(base.py): refactor logic to determine start_component_id based on webhook or chat component presence in input vertices
* refactor: prioritize webhook component for determining start_component_id
* feat(utils.py): add function find_start_component_id to find component ID based on priority list of input types
* refactor(graph/base.py): refactor logic to find start component id in Graph class for better readability and maintainability
* test(test_webhook.py): override pytest fixture to check for OpenAI API key in environment variables before running tests
* test(test_webhook.py): update webhook json
* feat(schema.py): update WebhookInput component type name
* refactor: log package run telemetry in simplified_run_flow
* test: add test for webhook flow on run endpoint
* refactor(graph/base.py): skip unbuilt vertices when getting vertex outputs in Graph class
* refactor: simplify data_input assignment in LCTextSplitterComponent
* refactor: remove unused build method in CharacterTextSplitterComponent
* refactor: update imports in CharacterTextSplitter.py
* fix(tracing/service.py): remove wait_for_all_tracers call
* refactor: set reasonable timeout for TelemetryService client
* fix: handle HTTP and request errors in TelemetryService
Handle HTTPStatusError and RequestError exceptions separately in the send_telemetry_data method of TelemetryService to provide more specific error messages. Also, catch any unexpected exceptions and log them with an appropriate error message.
* fix: cancel worker task and close client in TelemetryService stop method
Cancel the worker task and close the client in the stop method of TelemetryService to ensure proper cleanup and prevent potential resource leaks. Also handle any exceptions that may occur during the cleanup process and log appropriate error messages.
* style(telemetry/service.py): fix indentation issue in await statement to comply with PEP8 guidelines
* feat(graph): add method to remove vertex from runnables in Graph class
* fix(chat.py): fix issue where vertex was not being removed from runnables list to prevent duplication of results
* fix(chat.py): defines when the end_all_traces call should happen
Handle the case where the artifact type is unknown and the raw value is not None in the post_process_raw function. Set the raw value to "Built Successfully ✨" in this case.
* Fixed bug where updating the node does not remove edited status
* Fixed order of edited override
* Made all node-changing functions to alter type the right way
* Update StoreMessageComponent for enhanced message handling
- Changed base class from CustomComponent to Component
- Added multiple input fields: message, sender, sender_name, session_id
- Included output field for stored messages
- Improved logic to handle both string and Message types
- Enhanced error handling and validation for message storage
* Apply Ruff formatting
* Update StoreMessageComponent for enhanced message handling
* Apply Ruff formatting
* Feat: add more types
* Format code
* feat: Add CreateListComponent for creating a list of texts
This commit adds a new component called CreateListComponent, which is responsible for creating a list of texts. The component takes in one or more texts as input and outputs a list of Data objects. This component is useful for scenarios where a list of texts needs to be processed or manipulated.
The CreateListComponent class is added to the helpers module in the langflow.components package. It includes the necessary inputs and outputs, as well as a create_list method that generates the list of Data objects based on the input texts.
This commit also includes some minor changes to other files, such as renaming the UUIDGeneratorComponent to IDGeneratorComponent and updating import statements.
* [autofix.ci] apply automated fixes
* Changed native categories to use the keys of the style utils categories, which is updated
* change component name
* chore: add the name attribute to the CustomComponent
* chore: assign the value of name to the components
* chore: change the logic of the type value returned
* chore: extract code to new func
* chore: change component_name value
* [autofix.ci] apply automated fixes
* Formatted files
---------
Co-authored-by: Rodrigo <rodrigosilvanader@gmail.com>
Co-authored-by: rodrigosnader <rodrigosnader@users.noreply.github.com>
Co-authored-by: igorrCarvalho <igorsilvabhz6@gmail.com>
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
* fix: improve handling of ToolCallingAgent output in ToolCallingAgentComponent
The code changes in `ToolCallingAgent.py` modify the `ToolCallingAgentComponent` class to improve the handling of the output from the `ToolCallingAgent`. The changes include updating the logic to handle both single results and lists of results, extracting the relevant text from the results, and assigning it to the `result_string` variable. This ensures that the `result_string` contains the appropriate output to be returned as a `Message` object.
* fix(ToolCallingAgent.py): fix variable name typo from 'result' to 'results' for correct data processing
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat(pyproject.toml): update package versions to 1.0.6 for langflow and 0.0.82 for langflow-base to reflect latest changes and improvements
* chore(lock): new lock
* fix: update ChatGroq output in GroqModel.py
Fixed Create Data component to maintain old values and use new code structure
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix(tracing_service): use correct trace name and attribute name
* fix: update tracing_service attribute name in LCModelComponent
* feat: add trace_name property in CustomComponent
* fix: update trace_name usage in Component build method
* feat: update log method in CustomComponent to use trace_name
* fix: update trace_name usage in Component build method
* feat(custom_component): add logs to CustomComponent
The `CustomComponent` class now includes a `_logs` attribute to store log messages. This attribute is initialized as an empty list in the constructor. The `log` method has been updated to accept an optional `name` parameter, which allows specifying a custom name for the log message. If no name is provided, a default name is generated based on the number of logs already stored.
This change enhances the logging functionality of the `CustomComponent` and provides more flexibility in managing log messages.
* feat(tracing_service): add logs to TracingService
This commit adds a `_logs` attribute to the `TracingService` class to store log messages. The attribute is initialized as a defaultdict of lists in the constructor. The `add_log` method has been updated to append logs to the corresponding trace name in the `_logs` dictionary. This change enhances the logging functionality of the `TracingService` and allows for better management of log messages.
* chore(tracing_service): improve error handling in stop method
* refactor(tracing/service.py): update _logs data structure to support both Log objects and generic dictionaries for flexibility in handling different types of data
refactor(tracing/service.py): add conditional check to only add metadata if it is provided for better control over the information being added
* refactor: update build_model method return type annotation
* refactor(CohereModel.py): update return type of build_model method to only LanguageModel for clarity and consistency
* chore(GroqModel.py): add stop_sequences parameter to GroqModel query method
* refactor(AstraDB.py): reorganize imports and update cached_vectorstore type
* refactor: update cached_vectorstore type and input order in CassandraVectorStoreComponent
* chore(GroqModel.py): remove unused stop_sequences parameter in GroqModel query method
* chore: adding default values to Azure OpenAI mandatory component
* fix: huggingface model component:
- Change Huggingface-hub version from 0.20.0 to 0.22.0;
- Internal model_id resolver not working, create a field to model_id;
* feat: add HuggingFace as extra dependency
* chore: remove redundant atribution on children
* fix: remove user environment variables from ChatLiteLLMModelComponent
---------
Co-authored-by: joaoguilhermeS <j.guilherme.s.oliveira2@gmail.com>
* fix azure openai model component: resource not found
* type
* type
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore: update linting workflows to include dev branch in merge_group
* Update README.md
Add 1.0 banner
* Update README.md
* chore: update package versions in pyproject.toml files
* Added db value to every onChange on parameters
* Refactored global variables to find variables on the first render, and to execute just one onChange to update both values and db
* Changed group recursion function to include check for global variables already applied or outdated
* Removed already inserted component check for default fields on global variables
* Fixed import error
* Added required parameters to update node on drop
* Removed check for unused hardcoded name
* Added global variables handling on nodes when adding a flow
* Fixed maximum update depth when deleting used global variable
* Fixed type error on addNewVariableButton modal
* Fixed openai api key on starter flows
* Fixed values to get the .env values by default on the starter projects
* Formatted flows
* fix erros reported by mypy
* [autofix.ci] apply automated fixes
* 🐛 (prototypes/__init__.py): fix missing comma in the list of imported components to prevent syntax error
* chore: Fix type hinting in ConditionalRouterComponent
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Rodrigo Nader <rodrigosilvanader@gmail.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat: Add LanguageModel to field_typing module
* chore: Fix type annotations in model build methods
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Refactor the `ensure_valid_key` function in `utils.py` to improve the generation of a valid key for authentication. The function now checks if the input key is too short and generates a random key if necessary. Additionally, the key is now URL-safe base64-encoded. This change enhances the security and reliability of the authentication process.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>