Commit graph

2,344 commits

Author SHA1 Message Date
anovazzi1
07125b8c8c Merge branch 'dev' of personal:logspace-ai/langflow into dev 2023-06-23 17:09:22 -03:00
anovazzi1
9bee33fa18 refactor(extraSidebarComponent): change variable name 't' to 'displayName' for better readability and clarity of code 2023-06-23 17:09:12 -03:00
Gabriel Luiz Freitas Almeida
8325caa76e 🔺 chore(pyproject.toml): update langchain dependency from 0.0.209 to 0.0.211
This commit updates the langchain dependency from version 0.0.209 to version 0.0.211. This is a minor version update that includes bug fixes and performance improvements.
2023-06-23 17:07:50 -03:00
anovazzi1
019e2b2bb4 refactor(GenericNode): change data.type to data.node.display_name to improve semantics and readability
feat(api): add display_name field to APIClassType to provide a human-readable name for the class
2023-06-23 17:06:58 -03:00
Gabriel Luiz Freitas Almeida
a0b81f6227
Upload File Endpoint / Better VectorStore Implementation (#525) 2023-06-23 19:09:26 +00:00
Gabriel Luiz Freitas Almeida
02c6d77b64 🐛 fix(base.py): sort fields alphabetically before sorting by DIRECT_TYPES
The fields in the Template class were previously sorted by DIRECT_TYPES, which caused issues when fields had the same field_type. Sorting alphabetically first ensures that fields are sorted in a consistent manner before sorting by DIRECT_TYPES.
2023-06-23 15:53:48 -03:00
Gabriel Luiz Freitas Almeida
d9fa17189e 🎨 style(MongoDB icon): rename SlackSVG to MongoDBSVG for better naming
The SlackSVG component was renamed to MongoDBSVG to better reflect the actual icon being used. This improves the naming consistency and makes the code more readable.
2023-06-23 15:33:10 -03:00
Gabriel Luiz Freitas Almeida
99121d95c1 🔀 refactor(loading.py): use dictionary to initialize vector stores
The `instantiate_vectorstore` function now uses a dictionary to initialize vector stores instead of a series of if-else statements. This improves the readability and maintainability of the code. A new dictionary `vecstore_initializer` is added to `vector_store.py` to map the class names of vector stores to their respective initialization functions.
2023-06-23 14:32:15 -03:00
Gabriel Luiz Freitas Almeida
19bd687b3f 📦 chore(pyproject.toml): add certifi package to dev dependencies
The certifi package is added to the dev dependencies to ensure that the package is available during development. This package provides Mozilla's carefully curated collection of Root Certificates for validating the trustworthiness of SSL certificates while making HTTPS requests.
2023-06-23 13:20:28 -03:00
Gabriel Luiz Freitas Almeida
fb7bcb50e5 🚀 feat(loading.py): add support for MongoDBAtlasVectorSearch vector store
The `instantiate_vectorstore` function now supports the `MongoDBAtlasVectorSearch` vector store. This allows for the use of MongoDB Atlas as a vector store for Langflow. The `search_kwargs` parameter is now supported for all vector stores that have a `as_retriever` method. This allows for the configuration of the vector store's search parameters.
2023-06-23 13:20:02 -03:00
Gabriel Luiz Freitas Almeida
ea0231025f feat(vectorstores.py): add support for index_name parameter in MongoDBAtlasVectorSearch template
The hardcoded values for db_name, collection_name, and index_name have been removed from the initialize_mongodb function and are now required parameters. This makes the function more flexible and allows it to be used with different databases and collections. The support for the index_name parameter has been added to the MongoDBAtlasVectorSearch template in vectorstores.py, which allows the user to specify the name of the index to be used in the search.
🐛 fix(vector_store.py): remove hardcoded values for db_name, collection_name, and index_name and make them required parameters
2023-06-23 13:19:30 -03:00
Gabriel Luiz Freitas Almeida
81fb84b081 🎨 style(MongoDBIcon): add MongoDBIcon component to frontend app
The MongoDBIcon component was added to the frontend app to be used as an icon for MongoDB Atlas Vector Search. The icon was added as an SVG file and imported as a React component. The component was then added to the nodeIcons object in the utils.ts file.
2023-06-23 13:18:52 -03:00
Gabriel Luiz Freitas Almeida
086ed52923 📦 chore(pyproject.toml): add pymongo dependency to dev dependencies
The pymongo package is added to the dev dependencies section of the pyproject.toml file. This package is required for development purposes.
2023-06-23 12:38:22 -03:00
Gabriel Luiz Freitas Almeida
4cc2fae52b 🚀 feat(langflow): add support for MongoDB Atlas Vector Search in vectorstores
 feat(langflow): add support for search_kwargs field in VectorStoreFrontendNode
The changes add support for MongoDB Atlas Vector Search in the vectorstores. The `MongoDBAtlasVectorSearch` class is now imported and initialized in `vector_store.py`. The `initialize_mongodb` function is added to initialize the MongoDB Atlas Vector Search class. The `VectorStoreFrontendNode` class is updated to add the `mongodb_atlas_cluster_uri`, `collection_name`, and `db_name` fields. The `search_kwargs` field is also added to the `VectorStoreFrontendNode` class to allow users to pass additional search parameters to the vector store.
2023-06-23 12:38:02 -03:00
Gabriel Luiz Freitas Almeida
dc0a772635 🚚 chore(endpoints.py): reorder endpoints to keep backwards compatibility
The `/predict/{flow_id}` endpoint was moved above the `/process/{flow_id}` endpoint to maintain backwards compatibility with existing clients.
2023-06-23 12:36:46 -03:00
Gabriel Luiz Freitas Almeida
bcb80a08b2 🐛 fix(loading.py): remove unnecessary type hinting for allowed_tools variable
The type hinting for allowed_tools variable is unnecessary as it is already defined in the previous line. Removing the type hinting improves the readability of the code.
2023-06-23 11:04:03 -03:00
Gabriel Luiz Freitas Almeida
4451e7e777 🔒 chore(pyproject.toml): update fastapi dependency to version 0.98.0
FastAPI dependency has been updated to version 0.98.0 to ensure that the application is using the latest version of the framework.
2023-06-23 10:57:36 -03:00
Gabriel Luiz Freitas Almeida
0645693069 🐛 fix(utils.ts): simplify ternary operator in validateNode function
The ternary operator in the validateNode function was simplified by removing the unnecessary if statement. The code is now more concise and easier to read.
2023-06-23 10:54:34 -03:00
Gabriel Luiz Freitas Almeida
d4559c1356 test(test_template.py): add assertion to check if result is not None
The test now includes an assertion to check if the result of the function call is not None. This ensures that the function is returning a value and that the test is checking the correct output.
2023-06-23 10:53:53 -03:00
Gabriel Luiz Freitas Almeida
c191d893ca test(test_template.py): add assertions to test_build_template_from_function
Added assertions to test_build_template_from_function to ensure that the returned result is not None and that the expected keys are present in the result. This improves the reliability of the test and ensures that the function is working as expected.
2023-06-23 10:52:55 -03:00
Gabriel Luiz Freitas Almeida
8cd8449034 🔥 refactor(inputFileComponent): remove unused import of RadialProgressComponent
The import of RadialProgressComponent was removed as it was not being used in the component.
2023-06-23 10:51:59 -03:00
Gabriel Luiz Freitas Almeida
713d2f19e5 🔨 refactor(utils.ts): simplify snakeToSpaces function
🔨 refactor(utils.ts): simplify getConnectedNodes function
🔨 refactor(utils.ts): remove unused variable in groupByFamily function
The snakeToSpaces function has been simplified by removing the unnecessary variable declaration. The getConnectedNodes function has been simplified by removing the unnecessary variable declaration and returning the result directly. The groupedObj variable in the groupByFamily function is no longer used, so it has been removed.
2023-06-23 10:51:29 -03:00
Gabriel Luiz Freitas Almeida
fb25744714 🔥 refactor(loading.py): remove unused imports and functions
The imports and functions that were not being used were removed to improve the code's readability and maintainability.
2023-06-23 10:51:09 -03:00
Gabriel Luiz Freitas Almeida
6c08340aff 🚀 feat(vectorstores.py): add display name for SupabaseVectorStore
The display name for the SupabaseVectorStore is now set to "Supabase". This improves the user experience by providing a more descriptive name for the vector store.
2023-06-23 10:50:37 -03:00
Gabriel Luiz Freitas Almeida
a0f48b1d12 🐛 fix(test_graph.py): add assertion to check if root node is not None
The test_build_params function was failing when the root node was None. This commit adds an assertion to check if the root node is not None before proceeding with the other assertions.
2023-06-23 10:44:23 -03:00
Gabriel Luiz Freitas Almeida
cc8e5e3106 🚀 feat(tests): update default values for OpenAI models in chat and text fields
The default value for the OpenAI model in the chat field has been updated to "gpt-3.5-turbo-0613" to reflect the latest version of the model. The default value for the OpenAI model in the text field has been updated to "text-davinci-003" to reflect the latest version of the model. This ensures that the tests are using the latest and most accurate models for OpenAI.
2023-06-23 09:19:25 -03:00
Gabriel Luiz Freitas Almeida
f2230a6d70 🚚 chore(base.py): move DIRECT_TYPES import to utils.constants
The DIRECT_TYPES import has been moved to the utils.constants module to improve the organization of the code.
2023-06-23 09:13:38 -03:00
Gabriel Luiz Freitas Almeida
a23c53dd14 🚀 feat(base.py): add sorting of fields based on DIRECT_TYPES
The `sort_fields` method has been added to the `Template` class to sort fields based on the `DIRECT_TYPES` constant. Fields that have a `field_type` in `DIRECT_TYPES` are sorted first, followed by the remaining fields. This ensures that fields that have a direct type are processed first, which is important for the correct functioning of the template.
2023-06-23 09:13:22 -03:00
Gabriel Luiz Freitas Almeida
9f00421d64 🔥 chore(constants.py): remove DIRECT_TYPES constant from vertex and graph modules
The DIRECT_TYPES constant was removed from the vertex and graph modules as it is now defined in the utils module. This change improves code organization and reduces duplication.
2023-06-23 09:13:09 -03:00
Gabriel Luiz Freitas Almeida
c0a8d15dc2 🐛 fix(util.py): set default value for model_name in format_dict function
The format_dict function was updated to set a default value for the model_name key in the value dictionary for the OpenAI, ChatOpenAI, and Anthropic models. This ensures that the model_name key always has a value, even if the options list is empty.
2023-06-23 09:12:53 -03:00
Gabriel Luiz Freitas Almeida
a05a9202e8 🐛 fix(chains.py): set required=True for TemplateField 'memory'
 feat(chains.py): add TemplateField 'chain_type' to support different types of QA chains
The 'memory' field was previously set to required=False, but it is actually required for the chain to function properly. This fix sets required=True for the 'memory' field.

A new TemplateField 'chain_type' has been added to support different types of QA chains. This field is of type 'str', is required, and is a list of options. It allows the user to select the type of QA chain they want to use.
2023-06-23 09:04:35 -03:00
Gabriel Luiz Freitas Almeida
c686ed01ca 🐛 fix(memories.py): set advanced field to False for input_key and output_key fields
The advanced field was set to True for input_key and output_key fields, which made them appear in the advanced section of the UI. This was not intended, so the advanced field is now set to False for these fields.
2023-06-23 09:04:21 -03:00
Gabriel Luiz Freitas Almeida
508c66cbaa 🐛 fix(endpoints.py): make inputs and tweaks optional in process_flow endpoint
🐛 fix(process.py): make inputs optional in process_graph_cached function
The inputs and tweaks parameters in the process_flow endpoint are now optional, which allows for more flexibility in the API. The inputs parameter in the process_graph_cached function is now optional, which prevents a ValueError from being raised when a Chain object is processed without inputs.
2023-06-23 08:40:43 -03:00
Gabriel Luiz Freitas Almeida
fed726b727 🚀 feat(memories.py): set default value for memory_key field to "chat_history"
The memory_key field is now set to "chat_history" by default. This change ensures that the memory_key field is always initialized with a default value, which is useful for the application's functionality.
2023-06-23 08:14:26 -03:00
Gabriel Luiz Freitas Almeida
4dec5db45e 🔨 refactor(frontend): remove unnecessary empty object destructuring in LoadingSpinner component
🔨 refactor(frontend): simplify conditional rendering in InputFileComponent component
🔨 refactor(frontend): simplify arrow function in SupabaseIcon component
The empty object destructuring in the LoadingSpinner component is unnecessary and can be removed. The conditional rendering in the InputFileComponent component can be simplified by removing unnecessary parentheses. The arrow function in the SupabaseIcon component can be simplified by removing unnecessary parentheses.
2023-06-22 22:57:00 -03:00
Gabriel Luiz Freitas Almeida
1c80135551 📦 chore(pyproject.toml): add types-appdirs package to poetry dependencies
The types-appdirs package was added to the poetry dependencies to provide type hints for the appdirs package. This improves the codebase's maintainability and readability by providing better type checking and documentation.
2023-06-22 22:56:38 -03:00
Gabriel Luiz Freitas Almeida
eb7f8838be 🔥 refactor(schemas.py): remove extra blank line in UploadFileResponse schema
The extra blank line in the UploadFileResponse schema has been removed to improve code readability and consistency.
2023-06-22 22:44:24 -03:00
Gabriel Luiz Freitas Almeida
7f90956d20 🐛 fix(vector_store.py): add type ignore comments to suppress import errors
The import statements for the weaviate and pinecone libraries were causing import errors. Adding the `# type: ignore` comment suppresses these errors and allows the code to run without issues.
2023-06-22 22:43:59 -03:00
Gabriel Luiz Freitas Almeida
4b5c3a0c53 🔨 refactor(process.py): add type hinting to function arguments
This commit adds type hinting to the function arguments of `get_result_and_thought` and `process_graph_cached` functions in `process.py` file. This improves code readability and maintainability.
2023-06-22 22:43:51 -03:00
Gabriel Luiz Freitas Almeida
3c89e893e7 🔨 refactor(vectorstores.py): change import statement to import List from typing
The import statement for Optional was changed to import List from typing to improve readability and consistency with the use of List in the code.
2023-06-22 22:43:37 -03:00
Gabriel Luiz Freitas Almeida
8bb11f66e9 🔺 chore(pyproject.toml): update langchain dependency from 0.0.208 to 0.0.209
This commit updates the langchain dependency from version 0.0.208 to version 0.0.209. This is a minor version update and is done to keep the dependency up-to-date with the latest features and bug fixes.
2023-06-22 22:34:32 -03:00
Gabriel Luiz Freitas Almeida
7e72ba43fa 🐛 fix(vector_store.py): fix variable naming to follow PEP8 guidelines
The variables PINECONE_API_KEY and PINECONE_ENV were renamed to pinecone_api_key and pinecone_env, respectively, to follow PEP8 guidelines.
2023-06-22 22:32:04 -03:00
Gabriel Luiz Freitas Almeida
d069ab5d6d 🚨 test(agents_template.py): add openai-multi-functions to the list of agents
🐛 fix(graph.py): change message variable to a dictionary to match the expected input of get_result_and_thought function and update the assertion to check if the result is a dictionary instead of a string
The test for agents_template.py was updated to include the openai-multi-functions agent in the list of agents. This was done to ensure that the test coverage for the agent is complete.

The test for graph.py was updated to change the message variable to a dictionary to match the expected input of the get_result_and_thought function. The assertion was also updated to check if the result is a dictionary instead of a string. This was done to ensure that the test coverage for the function is complete.
2023-06-22 22:31:13 -03:00
Gabriel Luiz Freitas Almeida
7cebb8215f 🐛 fix(vector_store.py): remove redundant code and fix parameter naming
The `initialize_chroma` function had redundant code that was removed. The `embedding_function` parameter was renamed to `embedding` to match the parameter name used in the `class_object` constructor. The `documents` and `texts` parameters were being used interchangeably, so the code was updated to use only `documents`.
2023-06-22 22:18:01 -03:00
anovazzi1
1103a22870 feat(PageComponent): adjust minZoom and maxZoom values to improve user experience when zooming in and out of the flowchart. 2023-06-22 22:17:37 -03:00
anovazzi1
2d2d7e6c8c feat(PageComponent): add maxZoom prop to FlowChart to limit zooming to 4x to prevent visual artifacts and improve user experience 2023-06-22 22:16:31 -03:00
Gabriel Luiz Freitas Almeida
e3ee146b12 🔧 refactor(documentloaders.py): use Optional type hint for name parameter in format_field method
The `name` parameter in the `format_field` method of the `DocumentLoaderFrontNode` class now uses the `Optional` type hint to indicate that it can be None. This improves the code's readability and makes it easier to understand the expected behavior of the method.
2023-06-22 22:10:43 -03:00
Gabriel Luiz Freitas Almeida
7da5197f35 🔨 refactor(vector_store.py): refactor initialize_supabase function to improve readability and remove redundant code
The function now checks if "texts" is in the params dictionary and renames it to "documents" for consistency. The "supabase_url" and "supabase_service_key" are now removed from the params dictionary and passed directly to the create_client function. The function also removes the "documents" and "texts" keys from the params dictionary if there are no documents in the params. This improves the readability of the code and removes redundant code.
2023-06-22 22:10:29 -03:00
Gabriel Luiz Freitas Almeida
c8a5edb9ab 🔊 chore(base.py): change log level of sorted vertices to debug
The log level of the sorted vertices in the generator_build method of the Graph class has been changed from info to debug. This is because the sorted vertices are not critical information and are only useful for debugging purposes.
2023-06-22 22:10:19 -03:00
Gabriel Luiz Freitas Almeida
9417dd69f6 🐛 fix(vector_store.py): rename 'texts' parameter to 'documents' to improve semantics
 feat(vector_store.py): add support for Supabase client object to be passed in as a parameter
The 'texts' parameter has been renamed to 'documents' to improve semantics. This change makes it clearer that the parameter is a list of documents. Additionally, support for a Supabase client object has been added as a parameter. This allows for more flexibility in the initialization of the SupabaseVectorStore class.
2023-06-22 21:27:17 -03:00