Commit graph

6,039 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
878e158ac8 🔧 chore(alembic): add migration script for changes related to the store
🔧 chore(flow.py): add new field 'is_component' to the Flow model to support store functionality
🔧 chore(user.py): add new field 'store_api_key' to the User model to support store functionality
2023-10-18 17:03:15 -03:00
Gabriel Luiz Freitas Almeida
eded928bf4 🔄 refactor(router.py): rename component_router to store_router for better clarity and consistency
🔄 refactor(__init__.py): update import statements and references to component_router to store_router for consistency with the renamed router
2023-10-18 17:03:00 -03:00
Gabriel Luiz Freitas Almeida
6e6e514837 🔒 chore(utils.py): add encryption and decryption functions for API key using Fernet encryption algorithm 2023-10-18 17:02:03 -03:00
Gabriel Luiz Freitas Almeida
4d7b66a4e2 🔥 refactor(components.py): remove unused code and endpoints related to components
 feat(store.py): add new endpoints for creating, reading, and listing components in the store
2023-10-18 17:01:54 -03:00
Gabriel Luiz Freitas Almeida
7b158c6ae6 📝 chore(.env.example): add LANGFLOW_STORE_URL variable to the example file for configuring the store URL
🐛 fix(Makefile): add --env-file .env option to the 'backend' target to load environment variables from .env file
2023-10-18 17:00:39 -03:00
anovazzi1
5fd7cbdcb2 feat(tests): add toggleComponent.spec.ts to test the functionality of the ToggleComponent
The toggleComponent.spec.ts file contains a test case that verifies the functionality of the ToggleComponent. The test case performs the following actions:

1. Routes network requests from a HAR file, disabling updates for URLs matching "**/api/v1/**".
2. Routes a specific network request to return a JSON response with a status of 201.
3. Navigates to "http://localhost:3000/".
4. Waits for 2000 milliseconds.
5. Clicks on an element with the id "new-project-btn".
6. Waits for 2000 milliseconds.
7. Clicks on an element with the placeholder text "Search" and fills it with "directoryLoader".
8. Waits for 2000 milliseconds.
9. Drags an element with the id "sideDirectoryLoader" to another element with the id "react-flow-id".
10. Performs a series of click actions on various elements to test their functionality.
11. Verifies the state of toggle buttons using the isChecked() method.
12. Clicks on an element with the id "saveChangesBtn".
13. Performs additional click actions and verifications.
14. Clicks on an element with the id "saveChangesBtn".
15. Performs additional click actions and verifications.
16. Clicks on an element with the id "saveChangesBtn".
17. Performs additional click actions and verifications.
18. Clicks on an element with the id "saveChangesBtn".
19. Performs additional click actions and verifications.
20. Clicks on an element with the id "saveChangesBtn".
21. Performs additional click actions and verifications.
22. Verifies the count of elements matching the locator "//*[@id="toggle-1"]" and performs additional actions based on the count.

This test case is added to ensure that the ToggleComponent functions as expected and that the toggle buttons behave correctly.
2023-10-18 16:56:44 -03:00
anovazzi1
2fba3427fc sorting fields to keep the same order always and fixed group component tests' 2023-10-18 16:27:35 -03:00
Gabriel Luiz Freitas Almeida
3e5eb62c5c 🔄 refactor(deps.py): rename MarketplaceService to StoreService for better naming consistency and clarity
🔄 refactor(schema.py): rename `MARKETPLACE_SERVICE` enum value to `STORE_SERVICE` to match the renamed service
2023-10-18 16:24:05 -03:00
Gabriel Luiz Freitas Almeida
c5ef201755 feat(store): add store service to integrate langflow with the store
This commit adds the necessary files to implement the store service in langflow. The store service allows searching, getting, posting, and downloading components from the store. The store service is integrated with a Directus instance.

The following files were added:
- `src/backend/langflow/services/store/__init__.py`: Initializes the store service.
- `src/backend/langflow/services/store/factory.py`: Implements the store service factory.
- `src/backend/langflow/services/store/schema.py`: Defines the schema for the component response.
- `src/backend/langflow/services/store/service.py`: Implements the store service, including methods for searching, listing components, downloading, and uploading components.

The store service requires the `SettingsService` to be passed during initialization. The base URL and components URL are retrieved from the `MARKETPLACE_URL` setting.

The store service provides the following methods:
- `search`: Searches for components in the store based on various parameters.
- `list_components`: Lists components from the store.
- `download`: Downloads a specific component from the store.
- `upload`: Uploads a new component to the store.

The store service uses the `httpx` library to perform HTTP requests to the store API. The `_get` method is a utility method to perform GET requests with optional API key and parameters.

The `ComponentResponse` schema defines the structure of the component response from the store. It includes various properties such as name, description, id, status, sort, user_created, date_created, user_updated, date_updated, is_component, likes, tags, data, and documentation.

The `get_api_key` method is not implemented and will be completed in a future commit.
2023-10-18 16:22:24 -03:00
anovazzi1
fcafd995ef moved group tests to only front 2023-10-18 16:18:46 -03:00
cristhianzl
1845149647 Merge branch 'feat-testComps' of https://github.com/logspace-ai/langflow into feat-testComps 2023-10-18 15:53:25 -03:00
cristhianzl
ad8183e598 fix(promptModalComponent.spec.ts): update element locators to match changes in HTML structure 2023-10-18 15:51:56 -03:00
cristhianzl
a7eab9677f fix(reactflowUtils.ts): modify convertValuesToNumbers function to correctly handle values that are numbers represented as strings
feat(reactflowUtils.ts): add check to convertValuesToNumbers function to only convert values that are valid numbers represented as strings
2023-10-18 15:44:24 -03:00
anovazzi1
b9c1679751 update poetry lock 2023-10-18 14:53:29 -03:00
anovazzi1
7e0b3684e4 Merge branch 'dev' into feat-testComps 2023-10-18 14:49:13 -03:00
anovazzi1
68e76dce41 chore(run-tests.sh): add installation of playwright if not already installed 2023-10-18 14:46:53 -03:00
Gabriel Luiz Freitas Almeida
2653bbc70e First draft of MarketplaceService 2023-10-18 09:18:16 -03:00
Gabriel Luiz Freitas Almeida
c50d1344ca rename getters to deps 2023-10-18 09:18:16 -03:00
Gabriel Luiz Freitas Almeida
de238bf5db Rename manager to service 2023-10-18 09:18:15 -03:00
anovazzi1
5a1ddfb9b3 fix(tabsContext.tsx): add console.log to debug text variable in TabsProvider
test(dragAndDrop.spec.ts): add support for drag and drop functionality to test dropping a collection
test(dragAndDrop.spec.ts): add support for drag and drop functionality to test dropping a flow
2023-10-17 21:47:13 -03:00
anovazzi1
d68f2cbbab feat(dragAndDrop.spec.ts): add tests for auto_login functionality
The `dragAndDrop.spec.ts` file was added to the `src/frontend/tests/onlyFront` directory. This file contains tests for the auto_login functionality. Two tests were added:

1. `auto_login sign in`: This test simulates signing in with auto_login. It routes requests from the "langflow.har" file to the appropriate API endpoints, navigates to the homepage, clicks on the "Community Examples" button, waits for the ".community-pages-flows-panel" selector to be present, and asserts that it has children.

2. `auto_login block_admin`: This test simulates accessing the admin section with auto_login. It routes requests from the "langflow.har" file to the appropriate API endpoints, navigates to the homepage, clicks on the "Community Examples" button, navigates to the login page, clicks on the "Community Examples" button again, navigates to the admin page, clicks on the "Community Examples" button again, navigates to the admin login page, and clicks on the "Community Examples" button.

These tests were added to ensure the proper functioning of the auto_login feature.
2023-10-17 21:47:13 -03:00
anovazzi1
f6d369dd7b created assets page 2023-10-17 21:47:13 -03:00
anovazzi1
277caccc05 fix(typesContext.tsx): fix import statement for APIClassType in typesContext.tsx
feat(typesContext.tsx): add support for generating unique display names for custom components in typesContext.tsx
fix(nodeToolbarComponent/index.tsx): fix issue with saving component data by cloning the data object before saving
feat(utils.ts): add getSetFromObject function to get a set of keys from an object
2023-10-17 19:43:30 -03:00
cristhianzl
bb17616d4f moving folders 2023-10-17 10:41:48 -03:00
Gabriel Luiz Freitas Almeida
2c3a36705c
Bump langchain to 0.0.312 (#1067) 2023-10-17 10:17:50 -03:00
Gabriel Luiz Freitas Almeida
8f7ebf49db 🔺 chore(pyproject.toml): update langchain dependency to version 0.0.312 for bug fixes and improvements 2023-10-17 10:16:24 -03:00
Gabriel Luiz Freitas Almeida
b8905dec6d 🔧 chore(Vectara.py): change single quotes to double quotes for consistency in source parameter value 2023-10-17 10:15:54 -03:00
Gabriel Luiz Freitas Almeida
275e10daf6 🐛 fix(base.py): make description field optional to allow for cases where no description is provided 2023-10-17 10:15:32 -03:00
Gabriel Luiz Freitas Almeida
9b36e64c57 🐛 fix(BaiduQianfanChatEndpoints.py): add type ignore comments to fix type errors
🐛 fix(BaiduQianfanLLMEndpoints.py): add type ignore comments to fix type errors
2023-10-17 10:13:49 -03:00
Gabriel Luiz Freitas Almeida
e2cf4f0234
support baidu qianfan endpoint for LLM (#1045) 2023-10-17 09:56:58 -03:00
cristhianzl
27b3b77ab0 merge fix 2023-10-17 09:38:21 -03:00
Gabriel Luiz Freitas Almeida
c3c78aab38
update of Vectara component (#1049) 2023-10-17 07:15:51 -03:00
hekai09
851da1cb4e support baidu qianfan endpoint for LLM 2023-10-17 15:22:00 +08:00
anovazzi1
a3de1ea989 fix(reactflowUtils.ts): add a check to ensure that the proxy id exists in the idsMap before updating it in the template 2023-10-16 17:50:00 -03:00
anovazzi1
7553a89d52 Merge remote-tracking branch 'origin/dev' into saveComponent 2023-10-16 17:35:27 -03:00
anovazzi1
c8d231c331 update make file 2023-10-16 17:29:21 -03:00
anovazzi1
4f50425807 Merge remote-tracking branch 'origin/dev' into saveComponent 2023-10-16 17:09:42 -03:00
anovazzi1
cba92c10b4 fix(typesContext.tsx): prevent wrong overwriting of component template by a group of the same type
refactor(reactflowUtils.ts): remove unused code that was causing a syntax error
2023-10-16 17:02:37 -03:00
anovazzi1
46fc843760 fix(reactflowUtils.ts): update updateEdgesIds function to correctly update targetHandle proxy ids and stringify targetHandle
fix(reactflowUtils.ts): update expandGroupNode function to correctly iterate over flowEdges instead of ReactFlowInstance.getEdges() to redirect edges to correct proxy node
2023-10-16 15:23:13 -03:00
anovazzi1
4b04aadd1d fix(nodeToolbarComponent): add missing useContext import for TabsContext
fix(reactflowUtils): add missing return statement in updateIds function
feat(nodeToolbarComponent): update expandGroupNode function to update ids of proxy nodes and edges before expanding group node
2023-10-16 14:50:40 -03:00
anovazzi1
466c158f15 fix(tabsContext.tsx): remove unnecessary noticeData setting when downloading a file
feat(tabsContext.tsx): change the order of arguments in addFlow function call to improve readability
feat(exportModal/index.tsx): add alertContext and setNoticeData to display a warning when saving a file with API keys
feat(exportModal/index.tsx): add a caution message to inform users about the consequences of saving with API keys
2023-10-16 13:57:12 -03:00
Gabriel Luiz Freitas Almeida
d9e69b1ba3 🔧 chore(.env.example): add LANGFLOW_AUTO_LOGIN variable to enable/disable automatic login feature 2023-10-16 09:59:43 -03:00
Gabriel Luiz Freitas Almeida
e5d6e72406
Fix: missing numexpr when using poetry to run (#1040) 2023-10-16 09:47:51 -03:00
Ofer Mendelevitch
7fbb1078da update of Vectara component 2023-10-14 03:03:30 -07:00
Gabriel Luiz Freitas Almeida
7bdf564170 🔧 chore(constants.py): clean up import statements and remove unnecessary whitespace to improve code readability
🐛 fix(custom_component.py): set the type of argument to "Data" if it is not specified to ensure consistency and prevent errors
2023-10-12 19:23:45 -03:00
Gabriel Luiz Freitas Almeida
4366b02c4f 🔀 chore(field_typing): reorganize imports and update __all__ list for better readability and maintainability
🔥 chore(field_typing): remove unused base.py file as it is no longer needed
🔀 chore(constants): update import statements and add type aliases for better readability and maintainability
2023-10-12 19:23:13 -03:00
Gabriel Luiz Freitas Almeida
dad8480ce3 🔨 refactor(HuggingFaceEndpoints.py): update import statement for HuggingFaceEndpoint class to match new file structure
🔧 chore(HuggingFaceEndpoints.py): remove unused import statement for langchain.llms.base module

🔧 chore(HuggingFaceEndpoints.py): remove unused "type" field from task parameter in build method signature

🔧 chore(HuggingFaceEndpoints.py): add default value for task parameter in build method signature

🔧 chore(HuggingFaceEndpoints.py): add default values for huggingfacehub_api_token and model_kwargs parameters in build method signature

🐛 fix(HuggingFaceEndpoints.py): add model_kwargs parameter to HuggingFaceEndpoint constructor to fix missing argument error
2023-10-12 19:22:41 -03:00
Gabriel Luiz Freitas Almeida
964b4ec7f2 🐛 fix(base.py): improve code readability by formatting the CreateTrace function call in multiple lines 2023-10-12 16:29:48 -03:00
Gabriel Luiz Freitas Almeida
6abd5d5343 🐛 fix(base.py): handle cases where value is not a valid int or float to prevent ValueError and assign the original value instead 2023-10-12 16:29:30 -03:00
Gabriel Luiz Freitas Almeida
8f20105b4b 🔧 fix(custom_component.py): fix import statement for CUSTOM_COMPONENT_SUPPORTED_TYPES
🔧 fix(custom_component.py): fix argument type in return statement of CustomComponent.get_args()
🔧 fix(custom_components.py): make description attribute optional in CustomComponentFrontendNode class
2023-10-11 18:33:13 -03:00