* ✨ (webhookFieldComponent): Add support for ENABLE_DATASTAX_LANGFLOW feature flag to conditionally show generate token button
🐛 (use-get-config): Set default value for webhook polling interval if not provided in data
♻️ (custom-secret-key-modal-button): Refactor to pass modal props as a separate object to improve readability and maintainability
🔧 (use-generate-token): Add new file for generating token function
🔧 (secretKeyModal): Refactor to use generate token function based on ENABLE_DATASTAX_LANGFLOW flag and separate modal props into a dedicated interface
* ✨ (constants.ts): add default polling interval and timeout constants for better code readability and maintainability
♻️ (use-get-config.ts): refactor to use the newly added default constants for polling interval and timeout to improve code consistency and reduce duplication
* 🐛 (typescript_test.yml): update the maximum shard count calculation to be 25 instead of 10 to improve test distribution and efficiency
* ⚙️ (typescript_test.yml): adjust optimal shard count calculation to ensure a maximum of 10 shards for test execution
♻️ (index.tsx): refactor modalConfigProps assignment to handle cases where modalProps is null or undefined
---------
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* Removed flowPool from dependencies of function that clears chat input
* remove console.log
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* feat: add nodeId, nodeClass, and handleNodeClass props to dropdown and string render components
* fix: remove extraneous flag from package-lock.json and add nodeId, nodeClass, handleNodeClass props to ParameterRenderComponent
---------
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* chore: Add trustcall dependency to pyproject.toml
* fix: Update bind_tools method to include optional tool_choice parameter for enhanced flexibility in tool binding
* refactor: Update StructuredOutputComponent to utilize create_extractor for structured output and enhance result handling
* Replaced direct call to with_structured_output with create_extractor for improved flexibility.
* Added handling for "responses" in result to ensure proper data extraction.
* Introduced is_last_pydantic_output_parser method to check parser type in structured output processing.
* test: Add comprehensive tests for StructuredOutputComponent with OpenAI and NVIDIA models
* Implemented multiple test cases for StructuredOutputComponent using real OpenAI and NVIDIA models.
* Added tests for simple, complex, and nested schemas to validate structured output extraction.
* Included error handling tests to ensure proper response to model limitations and API errors.
* Utilized pytest for conditional test execution based on environment variables for API keys.
* refactor: Update JSON starter projects to include StructuredOutputComponent with enhanced input and output handling
* Integrated StructuredOutputComponent into Financial Report Parser and Portfolio Website Code Generator starter projects.
* Updated input fields to include detailed descriptions and requirements for structured output generation.
* Ensured consistent schema definitions and improved error handling for model limitations.
* Enhanced documentation for better clarity on component usage and expected outputs.
* [autofix.ci] apply automated fixes
* refactor: Remove unused PydanticOutputParser method from StructuredOutputComponent
* Deleted is_last_pydantic_output_parser method as it was no longer necessary for structured output processing.
* Cleaned up the code to enhance maintainability and readability.
* refactor: Update JSON starter projects to enhance StructuredOutputComponent integration
* Refactored Financial Report Parser and Portfolio Website Code Generator to streamline the StructuredOutputComponent.
* Removed unused PydanticOutputParser method to improve code clarity and maintainability.
* Enhanced input descriptions and requirements for structured output generation.
* Improved error handling and documentation for better user guidance.
* [autofix.ci] apply automated fixes
* refactor: Simplify response handling in StructuredOutputComponent
* Updated the response extraction logic to use the walrus operator for cleaner code.
* Improved readability by replacing the previous conditional check with a more concise approach.
* Ensured consistent handling of structured output results.
* [autofix.ci] apply automated fixes
* refactor: Remove unnecessary TYPE_CHECKING import and simplify type casting in StructuredOutputComponent
* Eliminated the TYPE_CHECKING import for improved clarity.
* Simplified the type casting of the language model in the response extraction logic.
* Enhanced code readability and maintainability.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* refactor: reorder response handling in StructuredOutputComponent for clarity
* refactor: unify StructuredOutputComponent code across multiple starter projects for consistency
* Standardized the implementation of StructuredOutputComponent in Financial Report Parser, Image Sentiment Analysis, Market Research, and Portfolio Website Code Generator.
* Enhanced code clarity and maintainability by ensuring uniformity in input and output definitions across these components.
* refactor: update build_structured_output method in StructuredOutputComponent to include text_key
* Modified the build_structured_output method to return a Data object with a text_key for improved clarity in output structure.
* Ensured consistency across various starter projects by aligning the output format of StructuredOutputComponent.
* [autofix.ci] apply automated fixes
* 🔧 (structured_output.py): refactor create_extractor function to support structured data extraction in a specific format specified by schema_name
💡 (structured_output.py): add tool_description variable to provide a description for the structured data extraction tool
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* ♻️ (structured_output.py): refactor code to simplify the creation of extractor with tools parameter and remove unnecessary tool_description and schema_name variables.
* [autofix.ci] apply automated fixes
* ✨ (structured_output.py): enhance documentation by adding a dynamic docstring to the output model creation, improving clarity on the schema's purpose.
* ✨ (structured_output.py): update structured output component across multiple starter projects to enhance consistency and clarity in output schema definitions. Improved documentation and dynamic docstring integration for better understanding of the structured data extraction process.
* 🔧 (typescript_test.yml): enhance test command by adding retries to Playwright tests for improved stability and reliability during CI runs. Cleaned up whitespace for better readability.
* feat: add sample resume for testing and update test to use new file
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* Fix amber color
* Fix button and voice assistant button to use correct design and colors
* Fixed button design to include bg
* remove bg definition from voice assistant
* Add Homeassistant Component
https://www.home-assistant.io/
* Add files via upload
* Add files via upload
* refactor: rename Home Assistant control and state listing components
Introduced two new components for Home Assistant integration:
1. HomeAssistantControl: A tool for controlling Home Assistant devices, allowing actions like turn_on, turn_off, and toggle with specified entity IDs.
2. ListHomeAssistantStates: A tool to retrieve the current states of Home Assistant entities, with optional filtering by domain.
Both components include necessary input fields and documentation links for user guidance.
* refactor: format Home Assistant SVG component and index file for consistency
* fix: spread props in Home Assistant SVG component for better customization
* refactor: update Home Assistant icon and improve SVG structure for better readability
---------
Co-authored-by: Nadir J <31660040+NadirJ@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
✨ (constants.ts): add new constants for OpenAI voices to be used in the application
🔧 (audio-settings-dialog.tsx, voice-select.tsx, check-provider.ts, voiceStore.ts): import and use the newly added OpenAI voices constants in various components and store to improve maintainability and consistency in voice selection functionality
* Changed polling build error handling
* Awaited pollBuildEvents for error to be thrown
* fix: enhance error handling and logging in get_flow_events_response
* fix: introduce custom exception for job queue not found error
* fix: replace ValueError with custom JobQueueNotFoundError in get_flow_events_response
* ⚡️ Speed up method `JobQueueService.get_queue_data` by 1,704% in PR #7387 (`fix/be_connection_errors`) (#7388)
To optimize the `JobQueueService` implementation for better runtime and memory efficiency, we can implement some optimizations focused mainly on avoiding redundant checks and streamlining the handling of job queues. The most significant improvement that can be made without altering the functionality would be to remove redundant error logging and to optimize our coroutine handling.
Here is the optimized version.
### Key Changes.
1. **Removed Redundant Logging**: The error logging inside the `get_queue_data` method was removed. In a production system where performance is critical, it’s often better to rely on exception handling rather than logging each potential error before raising the exception, especially for common errors which can be anticipated by the system. Instead, we directly raise `JobQueueNotFoundError`.
2. **Streamlined Exception Handling**: Replaced the dictionary lookup and manual check with a try-except block, simplifying the code and ensuring that the KeyError is handled efficiently. This avoids checking the condition and then looking up the dictionary again.
3. **Retained Essential Functionality**: All core functionalities and method signatures have been maintained, ensuring that the refactored code behaves identically to before. This includes maintaining the `self._closed` check to prevent operations on a closed service and handling of exceptions to provide appropriate error messages.
By focusing on reducing redundant operations like extra logging and double-checking conditions, we improve the software’s runtime performance and maintain cleaner code.
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: improve error handling in JobQueueService by raising JobQueueNotFoundError with original exception context
* fix: update error message for job not found in test cases
* fix: enhance error handling in cancel_build by adding JobQueueNotFoundError exception
* fix: improve error handling in cancel_build by logging JobQueueNotFoundError details
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* feat: enhance animations and improve ListSelectionComponent functionality
- Added overlay and content animations to tailwind.config.mjs for smoother transitions.
- Updated ListSelectionComponent to reset search input when the dialog opens and improved item display styling.
- Refactored ConnectionComponent to utilize the new onSelection prop in ListSelectionComponent for better selection handling.
* fix: refine animation timings and enhance ListSelectionComponent layout
- Adjusted animation durations in tailwind.config.mjs for smoother transitions.
- Updated ListSelectionComponent to increase maximum height for improved content display.
* feat: enhance ListSelectionComponent with hover functionality and keyboard navigation
- Added mouse enter and leave handlers to ListItem for improved user interaction.
- Implemented keyboard navigation to select items using the Enter key when an item is hovered.
- Updated styling for ListItem to enhance visual feedback during hover states.
* feat: enhance ListItem with hover state and selection feedback
- Added hover state management to ListItem, allowing visual feedback when an item is hovered.
- Updated the rendering logic to display a "Select" label and an icon when the item is hovered.
- Improved the selection indicator for better user experience.
* feat: enhance ListSelectionComponent with keyboard navigation and focus management
- Added keyboard navigation to allow users to select items using the Arrow keys and Enter key.
- Implemented focus management to highlight the currently focused item in the list.
- Updated the component to reset focus and search input when the dialog opens or the filtered list changes.
- Improved item rendering to visually indicate focus state.
* feat: enhance ListSelectionComponent with improved keyboard navigation and hover management
- Added state management for keyboard navigation to improve user experience when selecting items.
- Implemented hover state clearing during keyboard navigation to prevent visual conflicts.
- Updated ListItem to conditionally apply hover styles based on keyboard navigation state.
- Enhanced focus management to reset when the filtered list changes or when the dialog opens.
* fix: refine animation timings and update ListSelectionComponent layout
- Adjusted clipPath values in tailwind.config.mjs for improved overlay animations.
- Increased animation durations for overlay and content transitions to enhance smoothness.
- Removed unnecessary padding in ListSelectionComponent for a cleaner layout.
* refactor: update ListSelectionComponent styles for improved visual consistency
- Changed text color and background color classes in ListItem to enhance readability and maintain design consistency.
- Updated icon color to align with the new text styling for better visual integration.
* [autofix.ci] apply automated fixes
* fix: improve ListSelectionComponent behavior and cleanup event listeners
* fix: adjust minimum height of ListSelectionComponent dialog for better usability
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* test: add concurrent streaming request tests for chat input type
Implemented a new test for concurrent streaming requests to the run endpoint with chat input type. Added a helper coroutine to validate the streaming response, ensuring proper event handling and result verification. This enhances the test coverage for the streaming functionality.
* refactor: replace session_getter with session_scope in API key CRUD operations
Updated the API key CRUD operations to utilize session_scope instead of session_getter for better session management. This change enhances the clarity and robustness of the database interactions.
* test: enhance assertions and error handling in streaming tests
Refactored assertions in the streaming tests to provide clearer error messages and improve robustness. Added error handling for JSON parsing in the stream response and ensured that all expected fields are validated with informative messages. Updated the test for concurrent streaming requests to use the correct project ID and modified input values for better clarity.
* test: refactor get_starter_project fixture for improved session management and data handling
Updated the `get_starter_project` fixture to use `session_scope` for better session management. Enhanced the flow data processing by replacing the OpenAI API key and ensuring the `load_from_db` flag is set to false, improving robustness and clarity in test setup.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: add TAVILY_API_KEY to environment variables list
* feat: update global variables documentation to include new API keys
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* add secret keys to templates
* 🐛 (Simple Agent.json): fix load_from_db value to true to correctly load data from the database instead of false
* 🐛 (Vector Store RAG.json): Fix load_from_db value to true for API Endpoint configuration to correctly load from database
🐛 (Vector Store RAG.json): Fix value to "ASTRA_DB_API_ENDPOINT" for api_endpoint configuration to set the correct default value
🐛 (Vector Store RAG.json): Fix load_from_db value to true for API Endpoint configuration to correctly load from database
🐛 (Vector Store RAG.json): Fix value to "ASTRA_DB_APPLICATION_TOKEN" for application_token configuration to set the correct default value
* 🐛 (Meeting Summary.json, Search agent.json): Fix issue where load_from_db was incorrectly set to false instead of true for certain fields in JSON files
* ⬆️ (pyproject.toml): update package version to 1.3.0 and langflow-base dependency to 0.3.0
♻️ (LoopTemplate.json): change legacy flag from true to false for ParseData component to align with updated logic and functionality
* uv sync package
* ✅ (frontend/package.json): update version from 1.2.0 to 1.3.0 to reflect the latest changes and improvements in the frontend application.
* 🐛 (LoopTemplate.json): set "legacy" property to true for ParseData component to handle legacy functionality and improve compatibility with older versions.
* ⬆️ (pyproject.toml): upgrade package version from 0.2.0 to 0.3.0
fix: prevent displaying API key banner when key is not available
- Added a conditional check to ensure the API key banner is only displayed if a valid API key is retrieved. This improves user experience by avoiding unnecessary prompts.
* add a unified local vector store
* [autofix.ci] apply automated fixes
* fixed lint Error
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/components/vectorstores/local_db.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* refactor: Enhance type hints and clean up imports in LocalDBComponent
- Added type hints for the `update_build_config` method parameters and return type.
- Removed unused import of `override`.
- Cleaned up the `build_vector_store` method by removing the import error handling for `Chroma`, as it is now assumed to be handled elsewhere.
* test: Add unit tests for LocalDBComponent functionality
- Introduced comprehensive tests for the LocalDBComponent, covering database creation, data ingestion, similarity search, and duplicate handling.
- Implemented fixtures for default parameters and collection mappings.
- Verified the behavior of various search types and ensured correct handling of duplicates.
- Added tests for configuration updates and listing existing collections.
* feat: Implement equality comparison for DataFrame class
- Added an __eq__ method to the DataFrame class to handle comparisons with empty DataFrames and non-DataFrame objects.
- Ensures that empty DataFrames and empty lists are treated as unequal, improving the robustness of DataFrame comparisons.
* Update local_db.py
* [autofix.ci] apply automated fixes
* removed data output
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Ítalo Johnny <italojohnnydosanjos@gmail.com>
* Added priority field to components
* Added priority as 0 to LanguageModelComponent
* Adds sorting based on priority
* refactor: remove redundant name attribute from LanguageModelComponent
* Updated custom component to include priority
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* update tools in agents
* fix: update tool status check to default to True
* refactor: rename to_toolkit method to _get_tools and remove deprecated code
* [autofix.ci] apply automated fixes
* fix: makes agent tool metadata be correctly generated
* Update agent JSON files with new code for Agent component
* Enhance Financial Agent JSON configuration with updated code for the Agent component, including improved memory handling, tool validation, and error logging for better robustness and async functionality.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: ensure consistent version extraction for langflow-base in workflows
Updated version extraction commands in multiple workflow files to consistently use 'head -n 1' for retrieving the first occurrence of the langflow-base version. This change improves reliability in version detection across docker-build, nightly_build, python_test, release_nightly, and release workflows.
* fix: correct version extraction command in nightly build workflow
Removed an extraneous quote from the version extraction command in the nightly_build.yml workflow file to ensure proper execution and reliability in retrieving the langflow-base version.