Commit graph

4,997 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
eb68558905
Update utils.py to handle SecretStr field type as str with password and load_from_db attributes (#2005)
* chore: Update utils.py to handle SecretStr field type as str with password and load_from_db attributes

* Update utils.py to handle SecretStr field type as str with password and load_from_db attributes
2024-05-30 12:02:54 -07:00
igorrCarvalho
830d5a6ca8 Feat: add diferent loading for file and image 2024-05-30 15:11:28 -03:00
ogabrielluiz
d0829f5dbe Merge remote-tracking branch 'origin/dev' into two_edges 2024-05-30 14:48:38 -03:00
cristhianzl
5bdf80da65 (RecordsOutputComponent): add support for dynamic column modes and rows
♻️ (TableComponent): remove unused useCallback import and add autoHeight
 (convert-to-table-rows): add helper function to convert objects to table rows
♻️ (SwitchOutputView): refactor to use new convertToTableRows helper and improve type checks
♻️ (OutputModal): change modal size to medium-log for better visualization
♻️ (IOFieldView): refactor to use new rows and columnMode props in RecordsOutputComponent

♻️ (baseModal): remove unnecessary comma in ReactElement type array
 (baseModal): add new size option "medium-log" for modal component
♻️ (textOutputView): simplify TextOutputView component props
♻️ (api): add params and messages to VertexBuildTypeAPI
♻️ (api): add type to logs in VertexDataTypeAPI
♻️ (api): make artifacts optional in VertexDataTypeAPI
♻️ (chat): make artifacts optional in FlowPoolObjectType
 (components): add playgroundDisabled to InputListComponentType
♻️ (components): fix formatting in various component types

♻️ (utils.ts): remove unused imports to clean up the code
 (utils.ts): add 'all' mode to extractColumnsFromRows for more flexibility
2024-05-30 14:34:32 -03:00
Gabriel Luiz Freitas Almeida
94e8bf1e2b
Add support for running flows by endpoint name (#2012)
* feat: Add support for running flows by endpoint name

This commit modifies the `simplified_run_flow` endpoint in `endpoints.py` to allow running flows using the endpoint name instead of the flow ID. It introduces a new route parameter `flow_id_or_name` which can accept either a UUID or a string representing the endpoint name. The code first attempts to parse the parameter as a UUID, and if that fails, it queries the database to find a flow with the matching endpoint name. This change improves the usability of the API by providing an alternative way to identify flows for execution.

* feat: Add endpoint_name field to FlowType

This commit adds the `endpoint_name` field to the `FlowType` interface in the `index.ts` file. The `endpoint_name` field is an optional string that represents the name of the endpoint associated with the flow. This change allows for more flexibility in identifying flows by endpoint name instead of just the flow ID. It improves the usability of the codebase by providing an alternative way to reference flows.

* 🐛 (endpoints.py): change type of flow_id_or_name parameter from Union[str, UUID] to str to simplify the API and improve readability

* feat: Add migration utility functions for table, column, foreign key, and constraint existence checks

This commit adds utility functions to the `migration.py` module in the `langflow.utils` package. These functions provide convenient ways to check the existence of tables, columns, foreign keys, and constraints in a database using SQLAlchemy. The functions `table_exists`, `column_exists`, `foreign_key_exists`, and `constraint_exists` take the table name, column name, foreign key name, and constraint name respectively, along with the SQLAlchemy engine or connection object. They use the `Inspector` class from `sqlalchemy.engine.reflection` to retrieve the necessary information and return a boolean value indicating whether the specified element exists in the database. These utility functions improve the readability and maintainability of the codebase by encapsulating the common existence checks in a reusable and modular way.

* feat: Add unique constraints for per-user folders and flows

This commit adds unique constraints for per-user folders and flows in the database. It introduces the `unique_folder_name` constraint for the `folder` table, ensuring that each user can have only one folder with a specific name. Similarly, it adds the `unique_flow_endpoint_name` and `unique_flow_name` constraints for the `flow` table, enforcing uniqueness of endpoint names and flow names per user. These constraints improve data integrity and prevent duplicate entries in the database, providing a more robust and reliable system.

* feat: Add poetry installation and caching steps to GitHub Actions workflow

This commit updates the GitHub Actions workflow file `action.yml` to include additional steps for installing poetry and caching its dependencies. The `run` step now installs poetry using the specified version and ensures that the poetry binary is available in the PATH. Additionally, the workflow now includes a step to restore pip and poetry cached dependencies using the `actions/cache` action. These changes improve the workflow by providing a more efficient and reliable way to manage poetry dependencies and caching.

* refactor: Improve error handling in update_flow function

This commit improves the error handling in the `update_flow` function in `flows.py`. It adds a new `elif` condition to check if the exception is an instance of `HTTPException` and re-raises it. This ensures that any `HTTPException` raised during the update process is properly handled and returned as a response. Additionally, it removes the unnecessary `else` block and simplifies the code logic. This refactor enhances the reliability and maintainability of the `update_flow` function.
2024-05-30 07:46:28 -07:00
cristhianzl
4c927517b2 Merge branch 'cz/inspection' of https://github.com/langflow-ai/langflow into cz/inspection 2024-05-30 11:00:10 -03:00
cristhianzl
395fbad81a (index.tsx): add value prop to TextOutputView component to display text output value
🐛 (index.tsx): fix typo in TextOutputView component usage
2024-05-30 11:00:03 -03:00
Gabriel Luiz Freitas Almeida
e5986ec727
Added curl parse to API Request component and fixed dict issues (#2013)
* Refactor code to remove console.log statements

* Refactor code to remove console.log statements

* ⬆️ (pyproject.toml): upgrade uncurl dependency to version 0.0.11

* 📝 (flows.py): Add docstring to the read_flows function to provide information about its purpose, arguments, and return value
📝 (parse.py): Add comments and docstrings to the parse_context function to explain its purpose and how it works
📝 (APIRequest.py): Add a new method update_build_config to handle parsing of curl commands and update build configuration based on the parsed context

* refactor: Improve value change detection logic in DictComponent

* refactor: Improve value change detection logic in DictAreaModal

* refactor: Update APIRequest to handle parsing of curl commands and update build configuration

This commit updates the APIRequest class in APIRequest.py to handle parsing of curl commands and update the build configuration based on the parsed context. It introduces a new method, update_build_config, which parses the curl command using the parse_context function and updates the build configuration with the parsed information. Additionally, it handles JSON decoding errors when parsing the data field of the curl command. This improvement enhances the functionality and flexibility of the APIRequest component.

* feat: Add support for handling headers as dictionaries in APIRequest

* refactor: Parse curl commands and update build configuration in APIRequest

This commit refactors the APIRequest class in APIRequest.py to handle parsing of curl commands and update the build configuration based on the parsed context. It introduces a new method, update_build_config, which parses the curl command using the parse_context function and updates the build configuration with the parsed information. Additionally, it handles JSON decoding errors when parsing the data field of the curl command. This improvement enhances the functionality and flexibility of the APIRequest component.

*  (test_data_components.py): add new test case to parse curl command into build configuration for API requests

* 🐛 (src/backend/base/langflow/components/data/APIRequest.py): fix type hinting issue for bodies variable in APIRequest class
2024-05-30 06:50:31 -07:00
Cristhian Zanforlin Lousa
fb018eda10
Fix Application Crash with Multiple Nested Dict Components in Flow (#2011)
* ♻️ (dictComponent): improve value change detection logic
🐛 (parameterComponent): remove unnecessary console.log statement

* ♻️ (frontend): remove redundant comments and clean up code formatting

♻️ (editNodeModal): refactor to use nodeId instead of passing data directly

* ♻️ (editNodeModal): refactor to use data prop instead of nodeId for better data handling
♻️ (nodeToolbarComponent): refactor to improve code readability and consistency
2024-05-29 19:26:12 -07:00
anovazzi1
86b6672bbd refactor name props 2024-05-29 21:03:54 -03:00
anovazzi1
0ae9d8db6a chore: Refactor ParameterComponent handle button rendering
This commit refactors the rendering of the handle button in the ParameterComponent. It improves the readability and maintainability of the code by simplifying the logic and removing unnecessary ternary operators.
2024-05-29 20:36:37 -03:00
cristhianzl
312a959ae1 Merge branch 'cz/inspection' of https://github.com/langflow-ai/langflow into cz/inspection 2024-05-29 20:15:23 -03:00
cristhianzl
e6f466188c merge fix 2024-05-29 20:15:13 -03:00
anovazzi1
0d6547991f feat: Add OutputModal component for displaying output preview
This commit adds the OutputModal component to the ParameterComponent. The OutputModal component is responsible for displaying the output preview when the user clicks on the "Inspect Output" button. It improves the user experience by allowing them to easily view the output without leaving the current page.
2024-05-29 20:06:45 -03:00
igorrCarvalho
9c19d5cdf1 Refactor: Move util function to proper folder 2024-05-29 18:13:33 -03:00
igorrCarvalho
261d5d2af1 Refactor: Increase file preview width 2024-05-29 18:09:59 -03:00
igorrCarvalho
40eaa0903b Refactor: enhance upload file button UI and enhance File and Image preview UI 2024-05-29 17:48:38 -03:00
anovazzi1
a99d0c7eb0 refactor(tableComponent): update column definitions to include checkbox selection logic for first column
feat(API): add support for excluding specific columns in getMessagesTable function

fix(flowLogsModal): pass excludedFields parameter to getMessagesTable function

refactor(GlobalVariablesPage): remove unnecessary checkbox selection properties from column definitions

fix(messagesPage): pass excludedFields parameter to getMessagesTable function

refactor(utils): add support for excluding specific columns in extractColumnsFromRows function
2024-05-29 17:48:12 -03:00
anovazzi1
022ef7c028 feat: Add Messages page to SettingsPage
Refactor the SettingsPage component to include a new "Messages" page. This page will be accessible through the "/settings/messages" route and will display messages related to user settings. The necessary changes have been made to the index.tsx file of the SettingsPage component and the routes.tsx file.
2024-05-29 17:15:21 -03:00
cristhianzl
43ba306b34 (chatInput): add useHandleFileChange hook to handle file input changes 2024-05-29 16:01:28 -03:00
cristhianzl
0d17211177 (textAreaWrapper): refactor TextAreaWrapper to improve readability and maintainability
 (uploadFileButton): add UploadFileButton component for file uploads in chat input
2024-05-29 16:01:13 -03:00
cristhianzl
89943b2c3e (chatInput): add file upload functionality with drag-and-drop support 2024-05-29 16:00:57 -03:00
cristhianzl
a1d1ad22ce (chatInput): add helper function to generate class names for file preview
♻️ (chatInput): refactor file preview class name logic to use helper function
2024-05-29 12:39:44 -03:00
cristhianzl
826f9656d9 (chatInput): add focus state handling and dynamic styling for text area
♻️ (filePreviewChat): refactor file preview component for better UX and code clarity
2024-05-29 12:36:18 -03:00
igorrCarvalho
0eb6f6b212 Merge dev 2024-05-29 12:35:09 -03:00
ogabrielluiz
1f57845993 🔧 (frontend): Remove NATIVE_CATEGORIES constant and simplify logic for checking template code value in GenericNode component 2024-05-29 11:22:21 -03:00
cristhianzl
a98b86a991 🐛 (api.tsx): fix syntax errors in API interceptor to ensure proper error handling and request rejection
💡 (api.tsx): improve error message for duplicate requests to provide more context
2024-05-29 11:11:12 -03:00
cristhianzl
56699384ab (frontend): add TextAreaWrapper component for chat input handling 2024-05-29 10:47:22 -03:00
cristhianzl
7473eea263 (chatInput): add ButtonSendWrapper component for better modularity
 (chatInput): add TextAreaWrapper component for better modularity
♻️ (chatInput): refactor chat input logic to use new wrapper components
♻️ (chatView): clean up imports and improve code readability
2024-05-29 10:47:05 -03:00
cristhianzl
5638e2909c (chatInput): add drag-and-drop file upload functionality
♻️ (chatInput): refactor file upload logic into a reusable hook
2024-05-29 10:46:51 -03:00
ogabrielluiz
c6b315bf60 Merge branch 'feature/output_dropdown' into two_edges 2024-05-29 09:42:29 -03:00
ogabrielluiz
79e35dc2a2 Merge remote-tracking branch 'origin/dev' into two_edges 2024-05-28 23:03:38 -03:00
cristhianzl
69f5d93bde (chatInput): add custom hooks for auto-resize, focus unlock, and upload
♻️ (chatInput): refactor chat input component to use new custom hooks

💡 (chatInput): replace conditional rendering with Case component for clarity
2024-05-28 20:31:56 -03:00
anovazzi1
02a1624bf4 update cleanEdges and fix updateNewOutput 2024-05-28 18:29:07 -03:00
anovazzi1
45011e8fda refactor: add idx property to handle types in GenericNode and reactflowUtils 2024-05-28 17:57:52 -03:00
Gabriel Luiz Freitas Almeida
f694f0716f
Fixed freeze implementation (#1983)
* chore: Update utils imports and add cn to nodeToolbarComponent

* fix(utils.py): change key parameter name from 'flow_id' to 'key' for consistency
fix(chat.py): remove unused import 'functools.partial' to improve code readability
refactor(chat.py): remove 'set_cache_coro' partial function and pass 'chat_service' directly to 'build_vertex' method for better code organization
feat(schemas.py): add 'used_frozen_result' field to ResultDataResponse and ResultData classes with default value of False for better tracking of frozen result usage
feat(base.py): add 'chat_service' parameter to 'build_vertex' method in Graph class to allow passing ChatService instance for cache operations
feat(base.py): update 'build_vertex' method in Graph class to handle caching of frozen vertices and set 'used_frozen_result' flag in ResultData class
feat(cache/service.py): change parameter name from 'flow_id' to 'key' in 'set_cache' and 'get_cache' methods for consistency
feat(cache/utils.py): add 'CacheMiss' class to represent cache miss situations for better error handling

* feat: Add check for None before setting 'used_frozen_result' flag in Graph class

* feat: Add frozen effect to buttons and improve code organization

The code changes introduce a frozen effect to buttons by adding new CSS classes and styles. This effect is achieved by applying borders, shadows, and background colors. Additionally, the code is refactored to improve code organization and remove unused imports.

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

* feat: Add frozen effect to buttons and improve code organization

* style(applies.css): Update border styles for frozen state to improve visual appearance and consistency
style(applies.css): Adjust opacity of frosted background for better readability
style(tailwind.config.js): Increase opacity of frozen-ring shadow for better visual effect
style(tailwind.config.js): Increase opacity of frosted-ring shadow for better visual effect

* feat(parameterComponent): add snowflake icon to ParameterComponent when node is frozen and not aligned left

* style(applies.css): Update border styles for frozen state and add border to improve visual appearance and consistency
2024-05-28 12:43:14 -07:00
anovazzi1
ee62bd38b7
Update parent disclosure title in ExtraSidebar component (#1987)
chore: Update parent disclosure title in ExtraSidebar component
2024-05-28 12:41:58 -07:00
Gabriel Luiz Freitas Almeida
8f6b9d6443
Added API key access to AUTO_LOGIN=True and fixed SecretKeyModal (#1994)
* chore: Add type attribute to button in SecretKeyModal

* chore: Refactor Header component to fix autoLogin button visibility

* docs(api.mdx): update admonition message to remove reference to LANGFLOW_AUTO_LOGIN environment variable
docs(cli.mdx): update CLI command example to use 'run' subcommand instead of no arguments
feat(cli.mdx): add 'api-key' command to create API key for default superuser when LANGFLOW_AUTO_LOGIN is True

* docs(api.mdx): update admonition message to remove reference to LANGFLOW_AUTO_LOGIN environment variable

* chore: Fix typo in get-curl-code.tsx

---------

Co-authored-by: anovazzi1 <otavio2204@gmail.com>
2024-05-28 12:02:40 -07:00
italojohnny
d575c97d15 Merge branch 'ij/chatimg' into cz/inspection 2024-05-28 15:59:18 -03:00
Ítalo Johnny
67442774cf
Merge branch 'dev' into ij/chatimg 2024-05-28 15:57:31 -03:00
ogabrielluiz
5dce2cddef chore: Update Python API code to use optional typing and fix formatting 2024-05-28 15:45:16 -03:00
anovazzi1
77cb85b7f2 feat(frontend): refactor OutputComponent to use external dropdown menu component 2024-05-28 15:35:38 -03:00
italojohnny
7f6385a609 update branch with changes from dev 2024-05-28 14:59:56 -03:00
Lucas Oliveira
7d67f36000
Fix Building timeout and macbook shortcuts (#1964)
* Fixed shortcuts not working on mac

* fixed top level vertices and added timeout

* revert flowStore changes

* chore: Update worker timeout setting

* feat: Add endpoint to retrieve config settings

The commit adds a new endpoint `/config` to retrieve the configuration settings. This endpoint returns the `ConfigResponse` model, which includes the `timeout` value. The implementation handles any exceptions and logs them appropriately.

* feat: Add fetchConfig function to retrieve configuration settings

This commit adds a new function fetchConfig to the API utils module. The function makes an HTTP GET request to the /config endpoint and returns the configuration data. Any errors that occur during the request are logged and rethrown. This function will be used to initialize the application with the fetched configuration.

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

* revert changes

* feat: Add setupAxiosDefaults function to initialize Axios configurations

This commit adds a new function setupAxiosDefaults to the API utils module. The function fetches the configuration data using the fetchConfig function and sets up default configurations for Axios. It sets the base URL and timeout for Axios requests based on the fetched configuration. This function will be used to initialize Axios with the correct configurations.

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

* fix(langflow): rename 'timeout' setting to 'worker_timeout' for clarity and consistency
feat(langflow): add 'frontend_timeout' setting to control frontend API call timeout
chore(langflow): reorganize imports and constants in settings module for better readability

* Set frontend_timeout to 0

---------

Co-authored-by: ogabrielluiz <gabriel@langflow.org>
2024-05-28 08:18:36 -07:00
cristhianzl
f1d90110ae feat: Add TextOutputView component for displaying text output
This commit adds a new component called TextOutputView to the shared/components directory. The TextOutputView component is responsible for displaying text output in a textarea. It receives the necessary data from the flowPool and renders the appropriate text. This component improves the code organization and reusability of the text output display logic.
2024-05-28 12:16:47 -03:00
cristhianzl
24ef4034b6 Refactor: Revamp utils Folder Structure 2024-05-28 12:16:38 -03:00
cristhianzl
62d7385d65 feat: Add useCheckCodeValidity and useIconNodeRender hooks
This commit adds two new hooks, useCheckCodeValidity and useIconNodeRender, to the customNodes/hooks directory.

The useCheckCodeValidity hook is responsible for checking the validity of the code in a node template and setting the "isOutdated" state accordingly. It improves the code organization and ensures that the code is only checked once.

The useIconNodeRender hook is responsible for rendering the appropriate icon for a node based on its data and type. It improves code reusability and simplifies the rendering logic.
2024-05-28 12:16:28 -03:00
cristhianzl
599e45af9f feat: Add useIconStatus hook for rendering icon status
This commit adds a new hook called useIconStatus to the customNodes/hooks directory. The useIconStatus hook is responsible for rendering the appropriate icon status based on the build status and validation status. It returns the rendered icon status component. This hook improves the code organization and reusability of the icon status logic.

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2024-05-28 12:16:16 -03:00
cristhianzl
9edf4c84e4 Refactor: Revamp utils Folder Structure 2024-05-28 12:15:22 -03:00
cristhianzl
391ed6a001 feat: Add OutputModal component for displaying output visualization
The new OutputModal component is added to the genericNode module. It provides a modal window for displaying the output visualization. The component includes a header, content, and footer sections. The content section includes the SwitchOutputView component, which renders different output views based on the type of results. The footer section includes an "Ok" button for closing the modal.
2024-05-28 12:15:11 -03:00