Commit graph

334 commits

Author SHA1 Message Date
Edwin Jose
ff37170693
ref: SQL component (#8185)
* update sql

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-05-22 19:47:14 +00:00
Edwin Jose
ba92fc1e78
feat: Enhance API request component (#8070)
* update the api request component

* [autofix.ci] apply automated fixes

* update the component

* Update test_api_request_component.py

* [autofix.ci] apply automated fixes

* remove MODE_CONFIG unused variable

* [autofix.ci] apply automated fixes

* use normalize function

* Update template

* Update test_api_request_component.py

* UI test fix

* selector fix

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Yuqi Tang <yuqi.tang@datastax.com>
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
2025-05-22 15:41:19 +00:00
Sebastián Estévez
076b228599
fix: handle empty tool response (#8118)
* handle empty tool response

* Update src/backend/base/langflow/components/tools/mcp_component.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* DataFrame

* fix test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-21 17:50:18 +00:00
Edwin Jose
43629b21ad
fix: improve tool calling filter in ollama model component (#8056)
* improve tool calling filter

* [autofix.ci] apply automated fixes

* Update ollama.py

* update tests

* [autofix.ci] apply automated fixes

* fix: correct variable reference for tool model capability check in ChatOllamaComponent

* Update test_chatollama_component.py

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
2025-05-21 16:27:07 +00:00
Edwin Jose
dec42bf447
feat: New Web search component (#8135)
* web search component

* update tests

* Update test_web_search.py

* [autofix.ci] apply automated fixes

* add timeout input, santitize query, type check

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Yuqi Tang <yuqi.tang@datastax.com>
2025-05-20 19:08:37 +00:00
Eric Hare
6c58c6efc3
fix: Ensure that we properly format data outputs in the chat (#8132)
* fix: If a list is returned, make sure we convert to string

* Prettify the data output

* Updates based on feedback, safe encoding

* Fix chat output unit test

* Ensure all starter projects are updated
2025-05-20 17:21:51 +00:00
Edwin Jose
a0a50eb3a1
feat: add rss component (#8134)
* add RSS component

* add tests

* [autofix.ci] apply automated fixes

* Update rss.py

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-05-20 15:18:35 +00:00
Jordan Frazier
fe9aa9ecb3
logs: suppress verbose warnings (#8003)
* suppress nvidia warnings about nim key

* Wrap import libs with the warnings handling

* Handle sigterm for docker exists

* makefile revert

* [autofix.ci] apply automated fixes

* ruff

* use sqlmodel paginate

* Try to update polling timeout

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-05-19 17:39:44 +00:00
Edwin Jose
777200fab3
feat: improve SQL component UX and Tool mode function names (#7988)
* update component

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
2025-05-16 15:51:06 +00:00
Edwin Jose
4a195f73c5
feat: Add new data operations component (#7755)
* new data ops component

* update actions

* component add on feature

* add copy of old data processing

* Delete data_operations copy.py

* [autofix.ci] apply automated fixes

* lint and format error fixes

* [autofix.ci] apply automated fixes

* add test for the Processing component

* Update data_operations.py

* Update data_operations.py

* [autofix.ci] apply automated fixes

* Update data_operations.py

* Update data_operations.py

* Update data_operations.py

* Update data_operations.py

* update tests

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-05-16 14:43:39 +00:00
Akash Joshi
1b4b53d60d
feat: New custom component to execute google BigQuery(BQ) SQLs (#7922)
* adding a google bq component and unit tests

* [autofix.ci] apply automated fixes

* resolved conflicts

* Update test_google_bq_sql_executor_component.py

* [autofix.ci] apply automated fixes

* dataframe output to component

* Update google_bq_sql_executor.py

* [autofix.ci] apply automated fixes

* replacing tests for dataframes

* [autofix.ci] apply automated fixes

* adding capability to extract SQL statement from a text blob

* resolving test errors

* [autofix.ci] apply automated fixes

* resolving conflicts

* resolve conflicts

* resolving conflicts

* issue with json input test

* [autofix.ci] apply automated fixes

* fix format issues ruff

* Update google_bq_sql_executor.py

* Update google_bq_sql_executor.py

* Updating unit tests after clean query changes

* [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>
2025-05-09 20:35:23 +00:00
Pedro Pacheco
12f35a0edc
fix: improvement to ollama component to allow for dynamic filtering based on model capabilities (#7696)
* Updated model filtering to avoid hard coding of named based exclusions

* Stylistic adjustments

* Remove accidentally added package-lock.json from PR

* revert removal of package lock

* Modifications to the UT and changed component to be more async

* [autofix.ci] apply automated fixes

* Lint

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-05-06 17:10:32 +00:00
Sebastián Estévez
a04e5f56b8
feat: update sql component to support toolkit (#7652)
* update sql component

* cache

* Update src/backend/base/langflow/components/data/sql_executor.py

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>

* Update src/backend/base/langflow/components/data/sql_executor.py

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>

* [autofix.ci] apply automated fixes

* fix: sql query component (#7700)

* feat: Sql toolkit tests (#7842)

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gustavo Costa <gsantosaero@gmail.com>
2025-05-06 16:08:33 +00:00
Jordan Frazier
2c6ea9c98f
fix: truncate transaction and vertex messages (#7893)
* add pyinstrument and fastapi wrapper

* Truncate vertex build responses

* Truncate vertex response and transactions

* [autofix.ci] apply automated fixes

* Update test for vertex response structure to reflect new truncation logic

* Refactor profiling middleware to use environment variable for configuration

* Update test for vertex response structure to correct truncation logic

* move pyinstrument to dev dependencies

* Update serialization test to include max_items parameter for list truncation

* remove profiling from this PR, fix constants

* [autofix.ci] apply automated fixes

* Add asyncio configuration options to pyproject.toml

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-05-06 00:03:13 +00:00
Gabriel Luiz Freitas Almeida
304e28b48a
feat: event polling can process more than one event at a time (#7858)
* refactor: enhance event polling to retrieve all available events and return in NDJSON format

Updated the event polling logic to collect all available events from the queue instead of just one. The response format has been changed to NDJSON, allowing multiple events to be returned in a single response. Improved error handling for timeouts by returning an empty response instead of raising an error.

* refactor: improve NDJSON event processing in build polling

Enhanced the event polling logic to handle NDJSON responses by processing multiple events in a single fetch. Updated the response handling to read the response as text, split it into individual JSON objects, and process each event accordingly. This change improves the efficiency of event handling and maintains a consistent polling interval.

* fix: change event list type from list[str] to list in get_flow_events_response

* refactor: enhance event stream consumption with timeout and error handling

Updated the consume_and_assert_stream function to include a timeout for processing events and improved error handling for JSON parsing failures. Added logging for better debugging and tracking of processed events. Adjusted the event validation logic to ensure both the first and last expected events are present.

* refactor: enhance event polling logic with improved limits and JSON validation

Updated the event polling mechanism to include configurable limits for total events and empty polls, along with a timeout for requests. Enhanced JSON validation for individual events and added logging for better debugging of polling behavior. This refactor aims to improve robustness and maintainability of the event consumption process.

* refactor: update polling interval and streamline event handling

Modified the polling interval constant to improve responsiveness and adjusted event handling logic in the get_flow_events_response function to simplify the processing of event values. This change enhances the efficiency of event consumption and maintains a consistent approach to handling NDJSON responses.

* refactor: simplify event retrieval in get_flow_events_response

Removed unused event_id and put_time variables from the event retrieval logic in the get_flow_events_response function. This change streamlines the code and enhances readability while maintaining the functionality of event handling.

* refactor: update consume_and_assert_stream to use asyncio.wait_for for timeout handling

Modified the consume_and_assert_stream function to utilize asyncio.wait_for for managing timeouts in event processing. This change improves compatibility with Python 3.10 and enhances the robustness of the event consumption logic while maintaining existing functionality.
2025-05-05 22:20:04 +00:00
Cristhian Zanforlin Lousa
9191d7a1f1
ffix: Update Gmail test to assert direct result_field return instead of full data dictionary (nightly fix) (#7866) 2025-04-30 16:03:25 -03:00
Edwin Jose
c80cb3f35e
feat: Add MCP Server Settings to projects, rename Folder to Project (#7741)
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: deon-sanchez <deon.sanchez@datastax.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: phact <estevezsebastian@gmail.com>
2025-04-29 14:14:55 -03:00
Bar Nuri
e50476b30a
feat: ability to run flow without langflow server (#7507)
* flow-runner

* flow-runner

* flow-runner - fix lint

* Update flow_runner.py

* [autofix.ci] apply automated fixes

* Update flow_runner.py

* [autofix.ci] apply automated fixes

* Update flow_runner.py

* [autofix.ci] apply automated fixes

* Update flow_runner.py

* [autofix.ci] apply automated fixes

* CR

* Add docs and require sessionid

* fix lint

* [autofix.ci] apply automated fixes

* refactor: simplify flow ID handling and update class docstring

* refactor: update flow runner import to experimental version

* removed obsolete test

* remove test that use io

* remove another io test

---------

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: Jordan Frazier <jordan.frazier@datastax.com>
Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-04-29 05:59:00 +00:00
Abhishek Patil
2ea2bb01ed
feat: Add Composio Google Calendar component (#7662)
* feat: add google calendar component

* feat: add Composio Google Calendar Component

* fix: update field names to use '_' as separator & remove init

* fix: update field names to use '_' as separator & remove init

* feat: add google calendar test file & minor improvements

* fix: format

* fix: format

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-04-29 03:52:05 +00:00
Lucas Oliveira
b1217f96fe
feat: new tool mode dialog and UI (#7647)
* Add tools input to the backend

* Add tools type

* Add tools component to parameter render

* Added tools to langflow supported types

* Add tools modal

* Instantiate tools component in parameter render

* Removed div when there is not any visible actions

* Added margin

* Add ComboBoxItem and ListItem components for enhanced selection UI

* Update ComboBoxItem to display item description and enhance ToolsModal layout

* Refactor ToolsModal header styling for improved layout and icon padding

* Enhance ComboBoxItem layout and styling; update ToolsModal size and class for better responsiveness

* Changed display name

* Adds truncate for badges

* Adds custom styling for table used for Tools modal

* Added Tools modal with AgGrid

* Changed button

* made name and description editable

* Parse values for saving

* Add focused row without triggering checkbox click

* [autofix.ci] apply automated fixes

* Added types for tools modal

* added toolsTable with sidebar on toolsModal

* Added changes to work with MCP

* update component.py to add display name and display description in tool mode

* removed editing directly

* Fixed editing

* removed to upper case

* Make editing apply filters

* Adds design changes for MCP

* Adds new design and null check

* 📝 (frontend): add data-testid attribute to elements for testing purposes
🔧 (frontend): update data-testid attribute values for consistency and clarity in testing
 (frontend): update tests to use correct selectors and improve test coverage for editing tools functionality

*  (edit-tools.spec.ts): update test to use a more reliable method for checking visibility of an element

*  (edit-tools.spec.ts): add "@components" tag to the test to categorize it under components for better organization and filtering in test suites.

* Updated design with new design

* update padding

* send args to tools data

* Implemented showing arguments passed to LLM in tool mode

* add componentg name to description

* update package lock

* fixed tests

* fixed backend test

* fixed backend test

* fixed formatting

* Fixed frontend tests

* updated font sizes for badges on actions and styling on sortable list

* Update tool mode design

* added tooltips for info

* tool name update

* Update component_tool.py

* styling utils

* default values change

* fixed tools test

* fix format issues

---------

Co-authored-by: deon-sanchez <deon.sanchez@datastax.com>
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: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
2025-04-28 23:24:48 +00:00
Edwin Jose
6019b3ee06
fix: cleanup worker test stability (#7826)
* Update test_temp_flow_cleanup.py

fix: component cleanup test

* [autofix.ci] apply automated fixes

* Update test_temp_flow_cleanup.py

The test seems so flaky and unpredictable, hence proceeding with a mock patch of langflow.services.task.temp_flow_cleanup.logger

* Update test_temp_flow_cleanup.py

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-04-28 21:20:53 +00:00
Abhishek Patil
c5c1d33478
feat: add Composio Slack component (#7751)
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-04-28 15:54:10 +00:00
Gabriel Luiz Freitas Almeida
3407fecc79
chore: Increase timeout for codspeed workflow and fix typo in configuration (#7598)
* fix: correct typo in pyproject.toml timeout configuration

Updated the timeout_method key in the pytest.ini_options section from 'tiemout_method' to 'timeout_method' for proper functionality.

* chore: increase timeout for codspeed workflow to 600 seconds

Updated the codspeed workflow configuration to extend the timeout limit, ensuring more robust execution during CI processes.

* fix: Update assertion in TestGraphRAGComponent to use set comparison for improved clarity and performance

* fix: Change pytest timeout method from thread to signal for improved reliability
2025-04-25 15:34:12 +00:00
Sebastián Estévez
c161a2e68d
fix: support mcp env vars and nested inputs (#7772)
* env vars for mcp

* support nested mcp schemas

* [autofix.ci] apply automated fixes

* Update mcp_component.py

* [autofix.ci] apply automated fixes

* Update mcp_component.py

* Update mcp_component.py

* fix lint and mypy

* fix tests

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-04-24 04:40:16 +00:00
Edwin Jose
b48e57a223
fix: improve composio gmail component stability (#7673)
* tool change check

* optimised logic

* Update composio_base.py

* update to the init logic

* Update gmail_composio.py

* update default tool logic

* Update src/backend/base/langflow/base/composio/composio_base.py

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>

* Update test_gmail.py

---------

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-04-22 15:14:56 +00:00
Rodrigo Nader
eff2a30489
feat: add EmbeddingModelComponent for generating embeddings (#7204)
* feat: add EmbeddingModelComponent for generating embeddings

- Introduced a new EmbeddingModelComponent to generate embeddings using specified providers, starting with OpenAI.
- Updated the __init__.py file to include the new component in the exports.
- The component includes various input fields for configuration, such as provider selection, model name, API key, and additional parameters.

* update the tests.

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-04-17 18:55:31 +00:00
Abhishek Patil
dc35b4ec9e
feat: Update Gmail component (#7530)
* chore: action params naming

* chore: remove comments

* chore: replaced MessageTextInput field with StrInput

* feat: add google calendar component

* feat: replaced loops with hardcoded display-name action-enum mapping to improve performance

* chore: format

* fix: add type ignore for action_key in getattr call

* feat: add google sheets component

* fix: format google calendar utils

* feat: add google meet Component

* chore: minor improvement

* chore: format & lint

* fix: google meet component

* feat: add GitHub component

* fix: format

* fix: lint

* fix: typo

* feat: add Slack Component

* fix: format

* fix: rest bool value to None

* chore: disabled slack tools temporarily

* fix: add condition to set list variables to None in when action is changed

* chore: capitalise display names

* fix: update list issues field to MessateTextInput

* fix: format/lint in slack component

* fix: google calendar logo

* fix: revert setting bool field to None

* feat: composio-core & composio-core version bump to 0.7.10

* fix: minor bugs

* feat: add accepted values to AccessType field in google meet component

* feat: add accepted values for entry point access field in Google meet component

* fix: Google Calendar display names

* feat: replace list with nested list for batch update field in Google sheets

* fix: display name in Google sheets

* fix: format

* fix: titlecase display name in google meet component

* feat: set advaced to true for advanced fields

* feat: add condition to skip empty list fields in execute_action

* chore: improve display names GitHub Component

* fix: slack component display names & minor enhancements

* feat: update condition to skip empty fields while executing action

* feat: fix google calendar field description

* feat: update googlemeet component to use new inputs & composio base class

* chore: update googlemeet component filename

* feat: update github component to use new inputs & composio base class

* feat: update google calendar to use new inputs & composio base class

* feat: update google sheets component to use new inputs & Composio base class

* feat: update slack component to use new inputs & Composio base class

* fix: format

* chore: cleanup un-used code

* chore: format

* feat: add missing fields & actions

* chore: fix typo

* feat: rm other components

* feat: improve error message format & revert composio libs bump

* chore: revert uv.lock file

* update tests

* fix: remove duplicate action field in GMAIL_FETCH_EMAILS

* fix: remove unused code

* fix: add ignore statement

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-04-15 18:16:36 +00:00
Edwin Jose
56055043aa
feat: enhance openai model component with o1 support (#7107)
* update models

* Delete package-lock.json

* Create package-lock.json

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes

* updated templates

* update

* [autofix.ci] apply automated fixes

* Update Text Sentiment Analysis.json

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-04-14 18:17:27 +00:00
Gustavo Costa
dde91e2581
fix: add file format validation to component save-to-file (#7593)
* add _check_file_format

* [autofix.ci] apply automated fixes

* change to __adjust_file_path_with_format

* [autofix.ci] apply automated fixes

* Refactor and enhance tests for _adjust_file_path_with_format method

- Added parameterized tests to verify correct file extension handling for various formats.
- Ensured existing extensions are preserved and incorrect extensions are handled appropriately.
- Included a test for expanding the home directory symbol '~' in file paths.
- Removed outdated tests related to _check_file_format method.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-04-14 17:44:36 +00:00
Edwin Jose
0d942b264e
feat: create Amazon bundle (#7255)
* create Amazon bundle

* Update s3_bucket_uploader.py

* update FE tests

* [autofix.ci] apply automated fixes

*  (dropdownComponent.spec.ts): update test selectors to match the updated component names for better test accuracy
 (keyPairListComponent.spec.ts): update test selectors to match the updated component names for better test accuracy

* Update filterEdge-shard-1.spec.ts

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
2025-04-10 20:22:32 +00:00
Edwin Jose
b060183c8c
feat: QoL MCP (#7361)
* Update mcp_component.py

* [autofix.ci] apply automated fixes

* Update mcp_component.py

* Update mcp_component.py

* making tools empty when see url is empty

*  (mcp-server.spec.ts): add additional tests to ensure dropdown_str_tool is disabled and has a timeout of 30 seconds for selector wait.

* fix mcp tests

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
2025-04-10 18:58:06 +00:00
Rodrigo Nader
67009190cd
refactor: update BatchRunComponent to enhance functionality and usability (#7318)
* refactor: update BatchRunComponent to enhance functionality and usability

- Added TOML formatting for rows when no specific column is set.
- Updated display names and descriptions for clarity.
- Introduced an output column name option for customizable model response storage.
- Improved metadata handling and error management.
- Refactored row creation to include original columns and enhanced metadata.

* [autofix.ci] apply automated fixes

* fix: ruff errors

* [autofix.ci] apply automated fixes

* fix: component tests

* [autofix.ci] apply automated fixes

* Update src/backend/base/langflow/components/helpers/batch_run.py

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* ♻️ (batch_run.py): refactor type annotations to use Hashable for dictionary keys to improve type safety and compatibility with different types of keys

* youtube fix

* 🔧 (batch_run.py): remove unnecessary StrInput import and update MessageTextInput import to improve code cleanliness and remove redundancy

* 📝 (batch_run.py): Update import statement to include Hashable from collections.abc for better readability and maintainability
📝 (Youtube Analysis.json): Update display name from "Batch Results" to "DataFrame" for better clarity and consistency

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* uv ruff fixes

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
2025-04-10 13:37:15 +00:00
Gabriel Luiz Freitas Almeida
0185f74276
fix: job id should be returned only if event_delivery is not direct (#7540) 2025-04-09 16:13:42 -03:00
Christophe Bornet
66996868fd
feat: Add configurable polling interval for syncing flows from FS (#7065)
* Add configurable polling interval for syncing flows from FS

* Update src/backend/base/langflow/services/settings/base.py

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>

---------

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-04-07 13:49:05 +00:00
Edwin Jose
8b4cf7b1db
feat: Composio Gmail component and AuthInput feature (#7364)
* old composio Gmail component

* Update gmail_composio.py

* [autofix.ci] apply automated fixes

* Removed input types from secret input

* Changed starter projects

* Update gmail_composio.py

* composio base

* [autofix.ci] apply automated fixes

* updated composio with multi output

* [autofix.ci] apply automated fixes

* fix lint errors

* [autofix.ci] apply automated fixes

* Added sortableList and connect to frontend types constant

* Added AuthInput to backend and frontend constant

* Added auth input to InputTypes and added show = false by default

* fix: Update Composio icon (#7407)

fix: update Composio icon dimensions and simplify SVG structure

* 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

* Added auth input to composio base

* Added helper text to sortable list

* Add unlink icon

* Add node connection button

* Changed to isPolling

* [autofix.ci] apply automated fixes

* Added auth tooltip

* Added auth tooltip to mixinn

* Add auth mixin to input

* update the field visibility

* Fixed disconnect

* Update composio_base.py

* Updated node status to show correct statuses

* Added handling for API errors and disconnections

* limit to dataframe output

* add basic tests for base and gmail component

* fix lint errors

* 📝 (test files): Remove unnecessary blank lines to improve code readability and consistency.

* Add result_field to GMAIL_FETCH_EMAILS action and change how result key is used

* fix: Add validation for result structure in ComposioGmailAPIComponent

* fix: Ensure result is a list of dicts before converting to DataFrame in ComposioBaseComponent

* feat: Introduce get_result_field option for Gmail actions to control result retrieval behavior

* Fixed status not updating in real time

* Added default API value to Composio

* Made sortableList only be openable if no helper text is present

* fix: Update validation logic in ComposioGmailAPIComponent to incorporate get_result_field option for improved result handling

* Fixed bug where pre-filled Global Variable didn't trigger login

* refactor: Remove commented-out output definitions in ComposioBaseComponent for cleaner code

* refactor: Clean up ComposioGmailAPIComponent by removing outdated comments for improved readability

*  (NodeStatus/index.tsx): refactor getConnectionButtonClasses and getConnectionIconClasses functions to improve code readability and maintainability

* ♻️ (NodeStatus/index.tsx): refactor getConnectionButtonClasses and getConnectionIconClasses functions to use arrow function syntax for better readability and maintainability

* 🔧 (NodeStatus/index.tsx): define constants POLLING_TIMEOUT and POLLING_INTERVAL for better readability and maintainability

*  (ListSelectionComponent): Add dataTestId prop to ListItem component for better testing
📝 (NodeStatus): Refactor data-testid value to be dynamically generated based on node status
📝 (searchBarComponent): Add data-testid attribute to search input for testing purposes
📝 (sortableListComponent): Add data-testid attribute to button for opening list selection
♻️ (utils.ts): Add testIdCase function to convert string to snake_case for test ids
📝 (composio.spec.ts): Add various test cases for interacting with composio component

*  (test_gmail.py): add MagicMock import to fix missing dependency for testing
🔧 (test_gmail.py): refactor execute_action method to return a structure compatible with component's logic
♻️ (test_gmail.py): refactor _build_wrapper method to return a mock for the toolset
 (test_gmail.py): add patching for _actions_data to ensure correct structure for GMAIL_FETCH_EMAILS
🔧 (test_gmail.py): refactor execute_action method to return mock data for testing as_dataframe method
🔧 (test_gmail.py): refactor as_dataframe method to handle mock email data and verify DataFrame content
🔧 (test_gmail.py): refactor execute_action method to return mock data for testing update_build_config method
🔧 (secretKeyModal/index.tsx): remove unused imports and clean up the file structure

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-04-03 19:38:04 +00:00
Gustavo Costa
f9a7c9bcef
Fix: add insert mode MongoDB (#7394)
* add dropdown inser mode, create method __insert_mode

* fix unit_test mongodb

* add info to index_name

* to overwrite, delete_many from collection

* create verify_search_index

* fix SIMILARITY_OPTIONS

* fix documentation components-vector-stores.md
2025-04-03 19:03:17 +00:00
Gabriel Luiz Freitas Almeida
43bdfdc7ac
feat: Enhance StructuredOutputComponent and add trustcall dependency (#7249)
* 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>
2025-04-02 18:50:28 +00:00
Lucas Oliveira
e58f764f3d
fix: handle backend connection errors on build (#7387)
* 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>
2025-04-01 19:04:54 +00:00
Gabriel Luiz Freitas Almeida
7a87880e49
tests: add tests for streaming calls on api/v1/run (#7385)
* 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>
2025-04-01 17:31:26 +00:00
Ítalo Johnny
85787cf53e
fix: fixed the parser component (#7303)
* fix: fixed the parser component

* fix: fixed parser component test

* fix: ruff error

* chore: rename input

* chore: remove beta attribute

* fix: remove name attribute

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-03-31 15:47:52 +00:00
Rodrigo Nader
fecd2b5598
feat: add a unified local vector store (#6995)
* 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>
2025-03-31 15:15:06 +00:00
Ítalo Johnny
cac85c62b4
feat: expose serialization truncation constants in /config route (#7316)
* test: validate truncation logic and response structure

* feat: expose serialization truncation constants in /config route

* chore: tidy up redundant import from module
2025-03-31 14:46:40 +00:00
Edwin Jose
aea98a4019
feat: lmprove MCP langflow port selection and error handling (#7327)
* langflow port search and error handling

* [autofix.ci] apply automated fixes

* Update mcp_component.py

* Update util.py

*  (test_mcp_component.py): add support for validating URL and setting max retries to improve connection handling
🐛 (test_mcp_component.py): fix incorrect exception type in test_connect_timeout method to match expected behavior

* [autofix.ci] apply automated fixes

*  (test_mcp_component.py): refactor test_connect_to_server method for better readability and maintainability
🔧 (test_mcp_component.py): refactor test_connect_timeout method for improved error message formatting

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
2025-03-31 14:43:17 +00:00
Edwin Jose
306f50b71f
fix: remove composio Gmail component (#7319)
remove composio Gmail component
2025-03-30 07:51:46 +00:00
Cristhian Zanforlin Lousa
dead8150c7
test: Fix apply_json_filter to handle empty string filters and nested key access edge cases (#7340)
* 🐛 (test_apply_json_filter.py): fix test failures by updating expected return values and handling special cases in apply_json_filter function

* [autofix.ci] apply automated fixes

* 📝 (test_temp_flow_cleanup.py): comment out test_cleanup_worker_run_with_exception to temporarily disable the test for further investigation

* [autofix.ci] apply automated fixes

* 🐛 (test_apply_json_filter.py): fix logic to handle special characters and numeric keys in nested paths to ensure accurate comparison of results

* [autofix.ci] apply automated fixes

*  (test_temp_flow_cleanup.py): add get_settings_service dependency to test_cleanup_worker_run_with_exception test to improve test coverage and handle exceptions gracefully.

* ♻️ (test_apply_json_filter.py): remove commented-out code and unused imports to clean up the test file and improve readability

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-03-28 18:04:06 -03:00
Cristhian Zanforlin Lousa
ba8bf9a803
test: fix apply json filter validation test (#7338)
*  (test_apply_json_filter.py): add test cases to skip empty key tests with special handling for complex nested access in data.

*  (test_apply_json_filter.py): skip specific failing case in test_complex_nested_access to prevent test failure

* [autofix.ci] apply automated fixes

* 🐛 (test_apply_json_filter.py): fix assertion error for specific case when both keys are empty, ensuring the function returns an empty list
💡 (test_apply_json_filter.py): improve comments and readability in test_complex_nested_access function

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-03-28 14:44:11 -03:00
Gabriel Luiz Freitas Almeida
7e65be32a3
fix: Enhance dictionary access tests and refactor apply_json_filter function (#7335)
* refactor: streamline apply_json_filter function for improved clarity and performance

- Simplified data extraction from Data objects and handled None inputs.
- Enhanced dictionary access logic and removed redundant checks.
- Improved handling of special cases for filter access, including nested and array structures.

* test: enhance dictionary access tests with additional examples

- Added new example cases to the test_basic_dict_access function to cover edge cases, including empty dictionaries and keys with spaces.
- Improved test robustness by utilizing the @example decorator from hypothesis for better failure discovery.
2025-03-28 13:22:29 -03:00
Sebastián Estévez
ee1b5494fc
fix: Standardize flow name handling with snake_case conversion in MCP API (#7242)
* support spaces

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-03-24 15:11:40 +00:00
Cristhian Zanforlin Lousa
7aeb30926b
test: update api-request tests (#7231)
 (test_api_request_component.py): refactor test to check if to_data method returns a list of Data objects
2025-03-22 23:19:29 -03:00
Cristhian Zanforlin Lousa
e265fbe754
test: fix outdated components (nightly fix) (#7230)
📝 (test_api_request_component.py): update assertion to match changes in the JSON response structure
2025-03-22 22:41:19 -03:00