Commit graph

510 commits

Author SHA1 Message Date
ogabrielluiz
df04a329cc Update webhook test case 2024-06-18 22:17:35 -03:00
ogabrielluiz
d07ee5964f refactor: Update data folder path in conftest.py 2024-06-18 19:03:48 -03:00
ogabrielluiz
c3a45b856b move data folder back 2024-06-18 18:47:04 -03:00
ogabrielluiz
584cd59961 Merge remote-tracking branch 'origin/dev' into two_edges 2024-06-18 14:51:19 -03:00
ogabrielluiz
c43d62cbd2 move data folder 2024-06-18 00:20:12 -03:00
ming
696e620468
fix path to the unit test data folder (#2201) 2024-06-17 16:34:52 -04:00
ogabrielluiz
88754b9cf3 Refactor build_template_from_class function to remove unused code and improve readability 2024-06-17 10:55:50 -03:00
cristhianzl
fcf4512210 merge dev into two_edges 2024-06-17 10:01:28 -03:00
Igor Carvalho
30eacad94a
General fixes related to shortcuts icons (#2179)
* Fix: center command icon for macOS

* Fix: Add visual shortcut to undo and redo

* code format

---------

Co-authored-by: anovazzi1 <otavio2204@gmail.com>
2024-06-17 09:16:53 -03:00
Jordan Frazier
ca660cf8df
test: add astra integration test (#2189)
* add first astra integ test framework

* use fixtures

* remove old tests from merge

* Add correct sender type

* chore: Update unit test command in GitHub workflow

---------

Co-authored-by: ogabrielluiz <gabriel@langflow.org>
2024-06-15 19:50:38 -07:00
Gabriel Luiz Freitas Almeida
c53901f7ef
Refactor endpoints.py to improve code handling and remove caching (#2180)
* chore: Refactor CustomComponent to improve repr_value handling

* ♻️ (endpoints.py): Refactor the simplified_run_flow and webhook_run_flow functions to remove caching

* Refactor endpoints.py to remove caching and update tests
2024-06-14 18:39:44 -07:00
ogabrielluiz
1dbeec38c0 refactor: Import Data class in utils.py for better code organization 2024-06-14 16:31:47 -03:00
ogabrielluiz
d060d5308a Add webhook test and fix webhook to support endpoint name 2024-06-14 16:30:17 -03:00
ogabrielluiz
d11877aa99 refactor: Add Webhook Test flow fixture 2024-06-14 15:33:48 -03:00
italojohnny
2d692a6701 Merge branch 'dev' into two_edges_dev 2024-06-14 09:31:14 -03:00
Gabriel Luiz Freitas Almeida
5300b9cc08
Improve error handling and logging in get_current_user_by_jwt function (#2165)
chore: Improve error handling and logging in get_current_user_by_jwt function
2024-06-14 04:24:52 -07:00
Gabriel Luiz Freitas Almeida
34b6153fed
chore: Update persist_directory parameter to handle None value in ChromaSearch and Chroma components (#2157)
* chore: Update persist_directory parameter to handle None value in ChromaSearch and Chroma components

* 🐛 (test_endpoints.py): fix assertion to check for correct key name in output results for chat and any input types
2024-06-13 06:52:32 -07:00
ogabrielluiz
909501e212 refactor: Update langflow components and constants
Update langflow components and constants to improve functionality, error handling, and user experience. This includes fixing rendering issues in dropdownComponent and improving value handling in tableNodeCellRender. The MonitorService now supports read-only mode in the exec_query method. The APIRequestComponent has been enhanced to parse curl commands and update the build configuration accordingly. The URLComponent now includes metadata in the returned data objects. Additionally, the SessionView and MessagesPage components have been updated to sort columns using the messagesSorter utility function, ensuring consistent column ordering. The unused Tabs component has been removed from FlowLogsModal. The CHAT_FIRST_INITIAL_TEXT and CHAT_SECOND_INITIAL_TEXT constants have been updated. Lastly, the error message in the Vertex class of base.py has been improved for building Components. These changes enhance the overall performance, functionality, and clarity of the codebase.
2024-06-13 10:40:39 -03:00
ogabrielluiz
16089ea5b2 Another batch of renaming Record to Data 2024-06-12 18:18:03 -03:00
ogabrielluiz
1d0056f4fc rename Record to Data 2024-06-12 17:59:32 -03:00
ogabrielluiz
e5fe8be38e refactor: Refactor type processing logic, move type extraction functions, and update import statements
Refactor the type processing logic in base.py to use the newly created post_process_type function for better readability and maintainability. Move the type extraction functions from custom_component.py to the type_extraction module for better organization and separation of concerns. Update import statements in utils.py to reflect the move of type extraction functions. Add functions to type_extraction.py to extract inner types and union types from generic aliases for type extraction operations.
2024-06-12 10:45:16 -03:00
Lucas Oliveira
850de6b952 Merge branch 'dev' into two_edges_merge 2024-06-11 18:11:13 -03:00
ogabrielluiz
d92cc3bb50 chore: Update test_endpoints.py to use "result" instead of "text" in assertions 2024-06-11 16:03:51 -03:00
ogabrielluiz
921250cbe1 Merge branch 'cz/mergeAll' into two_edges 2024-06-10 15:57:46 -03:00
ogabrielluiz
735a7e3780 Merge cz/mergeAll to two_edges 2024-06-10 11:31:02 -03:00
Gabriel Luiz Freitas Almeida
df57570852
refactor: migrate from Record to Message (#2113)
* chore: Update launch.json to use debugpy instead of python for debugging

* refactor: Update import statements for Record in langflow components

* feat: Add image handling functionality to langflow schema

* update projects

* 📝 (constants.py): Add 'output_types' to NODE_FORMAT_ATTRIBUTES for consistency and completeness

♻️ (setup.py): Refactor imports to improve readability and maintainability
♻️ (setup.py): Update code to remove fields that are not in the latest template for consistency

* refactor: Update schema from Record to Message

* refactor: Remove print statement in MonitorService

* refactor: Remove fields not in the latest template for consistency

* refactor: Update code to handle Record objects in utils.py

* update projects

* 📝 (monitor.py): Add type hint for message_id parameter in update_message function
📝 (parse.py): Rename ParsedContext to ParsedArgs for clarity
📝 (chat.py): Remove unused imports and methods in ChatComponent class
📝 (StoreMessage.py): Change return type of store_message method from list[Record] to list[Message]
📝 (base.py): Change type hint from Dict[str, str | list[str]] to Mapping[str, str | list[str]] in update_raw_params method
📝 (loading.py): Add condition to check if raw is not None before accessing its attributes in instantiate_custom_component function
📝 (memory.py): Change return type of get_messages function from list[Record] to list[Message]
📝 (memory.py): Change parameter type of add_messages function from Message to Message | list[Message]
📝 (image.py): Add type hint for image_prompt_value variable in Message class

🐛 (record.py): fix type hint for image_prompt_value variable to ImagePromptValue to improve code clarity and maintainability

* chore: Add orjson options for serialization

* chore: Update orjson options for serialization in setup.py

* chore: Update input_value options for models

This commit updates the input_value options for the models in the `OpenAIModel.py`, `MistralModel.py`, `CohereModel.py`, `VertexAiModel.py`, `ChatLiteLLMModel.py`, `OllamaModel.py`, `HuggingFaceModel.py`, `AnthropicModel.py`, and `AmazonBedrockModel.py` files. The `input_value` now supports the additional input type "Prompt". This change allows for more flexibility in the input data that can be provided to the models.

Fixes #<issue_number>

* chore: Update edges with latest component versions

This commit updates the edges in the project data with the latest component versions. It ensures that the source and target nodes are correctly updated based on their corresponding nodes in the project. The commit also includes escaping of JSON dumps for the source and target handles in the edges.

* 📝 (utils.py): Remove unnecessary async keyword from dict_values_to_string function to improve code readability and consistency
🔧 (utils.py): Simplify handling of Message objects by directly accessing the text property instead of calling to_lc_message() method

* chore: Refactor PromptComponent to use updated Prompt class and remove unused imports

* feat: Add support for image files in Message model

This commit modifies the Message model to support image files as attachments. It introduces the `is_image_file` function to check if a file is an image, and the `to_content_dict` method in the Image class to convert the image object to a content dictionary. Additionally, the `get_file_content_dicts` method is added to generate content dictionaries for all files in the message, including images. This enhancement improves the handling of image attachments in the messaging system.

Fixes #<issue_number>

* update projects and lock

* chore: Update LCModelComponent to use Prompt instead of Record

* refactor: Update artifact type to include message in utils.py

* fix: Add check for input_value to only pass if string

*  (switchOutputView/index.tsx): introduce constant RECORD_TYPES to store valid record types for better readability and maintainability
🔧 (switchOutputView/index.tsx): refactor switch cases to use RECORD_TYPES constant for checking valid record types and simplify the logic for handling different types of result messages

* feat: Enable loading from database for openai_api_key field in Langflow starter projects

This commit updates the Langflow starter projects by enabling the loading of the `openai_api_key` field from the database. Previously, the field was not being loaded from the database, but now it will be loaded and used in the projects. This change improves the functionality and flexibility of the projects.

Fixes #<issue_number>

* ♻️ (constants.py): remove unnecessary import statement and clean up code formatting in ORJSON_OPTIONS constant definition

* refactor: Update MemoryComponent to use messages instead of records

This commit updates the MemoryComponent class in the langflow/components/helpers/MemoryComponent.py file to use the term "messages" instead of "records" for better clarity and consistency. It also updates the get_messages method to return a list of Message objects instead of Record objects. This change improves the naming and readability of the code.

* refactor: Update Message model to include timestamp conversion function

This commit updates the Message model in the langflow/schema/message.py file to include a new function `_timestamp_to_str` that converts the timestamp to a string format. This function is used as a BeforeValidator for the `timestamp` field, ensuring that it is always formatted correctly. This change improves the consistency and reliability of the timestamp handling in the messaging system.

* refactor: Update test_data_components.py to improve directory component loading

This commit updates the test_data_components.py file to improve the loading of the directory component. It ensures that the directory component can load mdx files from the ../docs/docs/components directory. This change enhances the functionality and reliability of the directory component.

Fixes #<issue_number>

* refactor: Update .gitattributes to specify working-tree-encoding for .mdx and .json files

This commit updates the .gitattributes file to specify the working-tree-encoding for .mdx and .json files. It sets the encoding to UTF-8 for both file types, ensuring consistent handling of character encoding. This change improves the reliability and compatibility of the repository.

Fixes #<issue_number>

* fix: 🐛 corrects encoding error

* refactor: Update toolkits.mdx to improve documentation and fix formatting

* refactor: Add dictdiffer library as a dependency

This commit adds the dictdiffer library as a dependency in the poetry.lock file. The dictdiffer library is a useful tool for diffing and patching dictionaries. It will enhance the functionality and flexibility of the project.
2024-06-09 18:00:48 -07:00
ogabrielluiz
1ab17438f9 chore: Update test_endpoints.py to handle custom nodes and dependencies 2024-06-07 15:21:13 -03:00
ogabrielluiz
4c87f7662c Merge remote-tracking branch 'origin/dev' into two_edges 2024-06-07 10:42:22 -03:00
cristhianzl
815892adf3 formatting files 2024-06-06 21:44:40 -03:00
cristhianzl
686a07faaa merge fix 2024-06-06 14:23:01 -03:00
cristhianzl
9525ac95ae formatting code 2024-06-06 12:01:45 -03:00
anovazzi1
e2c1f2f027 Merge branch 'dev' into cz/inspection 2024-06-05 20:07:11 -03:00
ogabrielluiz
5121fb10e5 refactor: Update output names in TextInput, TextOutput, RecordsOutput, ChatInput, and ChatOutput
The output names in the TextInput, TextOutput, RecordsOutput, ChatInput, and ChatOutput components have been updated to use more descriptive names. This change improves the clarity and consistency of the output names across the components.

Note: The commit message has been generated based on the provided code changes and recent commits.
2024-06-05 19:01:12 -03:00
Gabriel Luiz Freitas Almeida
7bfc1a55c8
feat: Refactor delete_multiple_flows endpoint to use DELETE method (#2029)
* feat: Refactor delete_multiple_flows endpoint to use DELETE method

The code changes modify the `delete_multiple_flows` endpoint in the `flows.py` file. The endpoint was previously using the `POST` method, but it has been refactored to use the `DELETE` method instead. This change aligns with RESTful API conventions and improves the clarity and consistency of the codebase.

Note: The commit message has been generated based on the provided code changes and recent commits.

* Refactor delete_multiple_flows endpoint to use DELETE method

* Refactor delete_multiple_flows endpoint to use DELETE method

* ♻️ (index.ts): refactor deleteBatch function to use data field instead of params for batch deletion

---------

Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
2024-06-05 11:02:42 -07:00
ogabrielluiz
f8bd552139 Merge remote-tracking branch 'origin/dev' into two_edges 2024-06-05 09:29:13 -03:00
ogabrielluiz
a65965fcb3 📝 (endpoints.py): Add support for caching components to improve performance and reduce load on the server
📝 (setup.py): Change function create_or_update_starter_projects to be asynchronous to handle await calls
📝 (types.py): Add caching mechanism to function aget_all_components to improve performance and reduce redundant calls
📝 (main.py): Change call to create_or_update_starter_projects to be awaited to handle asynchronous operation
📝 (index.tsx): Add functionality to reload components in the menu bar to update component data dynamically
📝 (index.ts): Modify getAll function to accept a force_refresh parameter to force a refresh of data
📝 (typesStore.ts): Update getTypes function to accept a force_refresh parameter and pass it to the getAll function
📝 (index.ts): Update getTypes function in TypesStoreType to accept a force_refresh parameter
📝 (test_initial_setup.py): Update test_create_or_update_starter_projects to await the asynchronous function create_or_update_starter_projects
2024-06-04 13:35:00 -03:00
Gabriel Luiz Freitas Almeida
22a7b7e75f
(refactor) Update pytest arguments in Makefile for better test execution (#2063)
* refactor: Update pytest arguments in Makefile for better test execution

The Makefile has been modified to update the pytest arguments in the `tests` target. The `--instafail` flag has been replaced with `-ra -n auto -m "not api_key_required"`. This change allows for better test execution by including additional options for reporting, parallelization, and test selection.

Note: The commit message has been generated based on the provided code changes and recent commits.

*  (test_endpoints.py): add pytest marker 'api_key_required' to mark tests that require an API key for authorization. This helps in easily identifying and managing tests that need special permissions.
2024-06-04 08:59:02 -07:00
ogabrielluiz
dd4b617b48 refactor: Update TextOperatorComponent to use langflow.template and langflow.schema
The TextOperatorComponent in TextOperator.py has been refactored to use the langflow.template.Input, langflow.template.Output, and langflow.schema.Record classes for improved code structure and maintainability.

Note: The commit message has been generated based on the provided code changes and recent commits.
2024-06-04 12:56:10 -03:00
ogabrielluiz
e4f4401d75 📝 (tests/conftest.py): Remove duplicate imports and organize imports for better readability
♻️ (tests/test_custom_component.py): Refactor CustomComponent to Component for better naming consistency
♻️ (tests/test_endpoints.py): Refactor test functions to improve readability and maintainability by simplifying assertions and organizing code
2024-06-04 09:25:27 -03:00
ogabrielluiz
1775fee61f Fix components update and tests 2024-06-03 22:52:38 -03:00
ogabrielluiz
a91e97ca30 refactor: Update ChatInput record_response method to use "text" key instead of "message" 2024-06-03 18:26:01 -03:00
cristhianzl
9d033c9e34 merge 2024-06-03 15:49:51 -03:00
ogabrielluiz
7fb5644a87 refactor: Update langflow custom imports and base classes
This commit updates the langflow custom imports and base classes in the code. It adds the "Component" import and base class to the langflow custom __init__.py file. It also updates the langflow template __init__.py file to include the "Input", "Output", "FrontendNode", and "Template" imports and base classes. Additionally, it modifies the langflow base ChatComponent class to inherit from the Component class. These changes improve the organization and functionality of the langflow custom and template modules.

Note: The commit message has been generated based on the provided code changes and recent commits.
2024-06-02 20:35:59 -03:00
ogabrielluiz
1fa3a6a379 Merge branch 'feature/output_dropdown' into fix_build_fe 2024-05-31 16:25:43 -03:00
Gabriel Luiz Freitas Almeida
5e2f4b8f83
Add webhook endpoint, and other fixes (#1766)
* Update FastAPI app configuration in main.py

* Add webhook endpoint

* Add Observer model and related changes to database models

* Update refresh button text in ParameterComponent

* Update database models and main.py, and add webhook endpoint and utils for flow model

* Add WebhookComponent to langflow data components

* Update webhook component names in flow data and remove unused code in edge/base.py and graph/base.py

* 🐛 (endpoints.py): fix an issue where the user_id was not being correctly assigned based on the api_key_user or flow object

* 📝 (endpoints.py): Update documentation for the webhook_run_flow endpoint to provide clearer information on its purpose, arguments, and return value. Remove outdated request JSON structure and example request sections. Add information on the arguments and exceptions raised for better clarity.

* chore: Remove unnecessary trailing commas in code files

* feat: Add yield statement to get_lifespan function

* feat: Update webhook columns revision ID

* Refactor import statements for OpenAI conversational agent

* refactor(constants.ts): remove unused tabsArray function and update function name to createTabsArray for clarity
feat(constants.ts): add support for including webhook code in tabs array based on flow webhook property
feat(index.tsx): update function calls to use new createTabsArray function and include webhook code in tabs array based on flow webhook property

refactor(utils.ts): remove trailing commas in function parameters to improve code consistency and readability
feat(utils.ts): add support for including webhook cURL code and tweaks code in tabs array creation for better code organization and presentation

* chore: Update folder_id parameter type to str in API endpoints

* feat: Handle invalid JSON payload in WebhookComponent

The code changes in `Webhook.py` modify the `build` method of the `WebhookComponent` class. If an invalid JSON payload is provided, instead of raising a `ValueError`, the code now handles the exception by creating a default payload with the provided data. The commit also includes a message that describes the invalid JSON payload for better error tracking.

Note: This commit message follows the convention used in the recent user commits.

* refactor: Remove unnecessary code in main.py

* refactor: Update Alembic revision IDs for webhook columns

The Alembic revision IDs for adding webhook columns have been updated to reflect the latest changes. This ensures consistency and proper tracking of the database schema modifications.

Note: The commit message has been generated based on the provided code changes and recent commits.

* 🐛 (endpoints.py): Fix handling of flow_id_or_name variable to correctly identify flow ID or endpoint name for running a flow. Improve error handling for invalid UUID strings and flow not found scenarios.

* refactor: Handle invalid JSON payload in WebhookComponent

The code changes in `Webhook.py` modify the `build` method of the `WebhookComponent` class. If an invalid JSON payload is provided, instead of raising a `ValueError`, the code now handles the exception by creating a default payload with the provided data.

* refactor: Update get_flow_by_id function to handle None flow_id parameter

The get_flow_by_id function in utils.py has been updated to handle the case where the flow_id parameter is None. Previously, the function would raise an exception if flow_id was not provided. Now, if flow_id is None, the function returns None instead of querying the database. This change improves the robustness of the function and allows for more flexible usage.

Note: The commit message has been generated based on the provided code changes and recent commits.

* 📝 (endpoints.py): Add import statement for get_flow_by_id_or_endpoint_name function
📝 (flow.py): Add get_flow_by_id_or_endpoint_name function to retrieve a Flow object by ID or endpoint name

* refactor: Update get_flow_by_id_or_endpoint_name function to handle None flow_id parameter

* 🐛 (flow.py): replace ValueError with HTTPException to return a 404 status code when flow identifier is not found

* refactor: Update error message for flow identifier not found

The code changes in `test_endpoints.py` update the error message when a flow identifier is not found. Previously, the error message referenced the flow ID directly, but now it uses the more generic term "Flow identifier" to account for cases where the identifier could be an endpoint name. This change improves the clarity and flexibility of the error message.

Note: This commit message has been generated based on the provided code changes and recent commits.

* 🔧 (endpoints.py): remove unnecessary flow_id_or_name parameter from the simple_run_flow function call to improve code readability and maintainability
2024-05-31 11:02:06 -07:00
ogabrielluiz
b7de1ff3bd feat: Add ComponentFrontendNode to CustomComponent
This commit adds the `ComponentFrontendNode` class to the `CustomComponent` module. The `ComponentFrontendNode` class defines a new frontend node for the `Component` type. It includes a template with a code input field. This change enhances the functionality and flexibility of the `CustomComponent` module.
2024-05-31 09:25:48 -03:00
ogabrielluiz
230c4a69ed feat: update template and custom component to load inputs and outputs 2024-05-30 22:47:29 -03:00
ogabrielluiz
ff489cb1f5 feat: Add MultipleOutputsComponent to CustomComponent
This commit adds the `MultipleOutputsComponent` class to the `CustomComponent` module. The `MultipleOutputsComponent` class defines multiple inputs and outputs for the component. The `inputs` field includes an input for a string and an input for a number. The `outputs` field includes an output for a certain output and an output for another output. This change enhances the functionality and flexibility of the `CustomComponent` module.
2024-05-30 22:45:58 -03:00
ogabrielluiz
59126fa01a refactor: rename InputField to Input 2024-05-30 17:55:02 -03:00
ogabrielluiz
5c818f0b60 feat: Update field types in prompt and formatter modules
This commit updates the field types in the `prompt.py` and `formatter/base.py` modules. The `DefaultPromptField` class in `prompt.py` now inherits from `InputField` instead of `TemplateField`. Similarly, the `format` method in the `FieldFormatter` class in `formatter/base.py` now accepts an `InputField` parameter instead of a `TemplateField` parameter. These changes ensure consistency and improve the accuracy of the code.
2024-05-30 16:46:45 -03:00