Commit graph

2,286 commits

Author SHA1 Message Date
anovazzi1
01545f316e fix(RadialProgress): round percentage value to nearest integer to improve readability and consistency 2023-06-22 20:53:52 -03:00
Cristhian Zanforlin Lousa
0a0584c7ce Merge branch 'multipart_endpoint' of https://github.com/logspace-ai/langflow into multipart_endpoint 2023-06-22 20:08:09 -03:00
Cristhian Zanforlin Lousa
4470ca792c 🎨 style(inputFileComponent): add loading spinner to input file component to indicate file upload progress 2023-06-22 20:08:03 -03:00
Gabriel Luiz Freitas Almeida
eda3b1cef6 📦 chore(pyproject.toml): add pinecone-client dependency to dev dependencies
The pinecone-client dependency was added to the dev dependencies section of the pyproject.toml file. This was done to enable the use of Pinecone in the development environment.
2023-06-22 19:59:56 -03:00
Gabriel Luiz Freitas Almeida
9b4e65c121 🚀 feat(vector_store.py): add support for Weaviate and FAISS vector stores
This commit adds support for Weaviate and FAISS vector stores to the existing Pinecone, Qdrant, and Chroma vector stores. The `initialize_weaviate` function initializes Weaviate and returns the class object. The `initialize_faiss` function initializes FAISS and returns the class object. These functions are used to initialize the respective vector stores. The `docs_in_params` function is used to check if there are documents in the parameters.
2023-06-22 19:59:33 -03:00
Gabriel Luiz Freitas Almeida
935b85a218 🚀 feat(vectorstores.py): add support for FAISS vector store type
The FAISS vector store type is now supported and can be configured with the folder_path and index_name fields. The folder_path field specifies the local path to the FAISS index, while the index_name field specifies the name of the index. Additionally, a new client_kwargs field has been added to support additional client configuration options.
2023-06-22 19:59:23 -03:00
Cristhian Zanforlin Lousa
f3e6db4df1 feat(chat.py): add error handling to stream_build function and improve log messages
 feat(schemas.py): add StreamData class to handle SSE messages
 feat(frontend): add RadialProgress and ProgressBar components
🔧 chore(frontend): add daisyui to project dependencies

🎨 style(headerComponent): comment out unused code
 feat(ui/progress.tsx): add Progress component to reuse in other components
 feat(types/components): add ProgressBarType and RadialProgressType to use in components
🎨 style(tailwind.config.js): add daisyui plugin to tailwind configuration to use in the project
2023-06-22 19:48:37 -03:00
Gabriel Luiz Freitas Almeida
d936589c3d 🚀 feat(tools.py): add return_direct field to PythonFunctionToolNode
The return_direct field is a boolean field that allows the user to specify whether the output of the Python function should be returned directly or wrapped in a dictionary. This field is added to the TemplateField list of the PythonFunctionToolNode class.
2023-06-22 19:28:13 -03:00
Gabriel Luiz Freitas Almeida
9255f66a5d 🐛 fix(manager.py): prevent base64 encoding of already encoded image data
The code now checks if the image data is already a string before attempting to base64 encode it. This prevents double encoding of the image data.
2023-06-22 19:22:30 -03:00
Gabriel Luiz Freitas Almeida
2bad404c62 🐛 fix(constants.tsx): change payload key from "message" to "inputs" to match API requirements
The payload key was changed from "message" to "inputs" to match the API requirements. This change ensures that the API can correctly parse the request payload.
2023-06-22 19:22:04 -03:00
Gabriel Luiz Freitas Almeida
b548a642ff 🔥 refactor(schemas.py): remove commented out code for PredictRequest schema
The commented out code for the PredictRequest schema has been removed as it is no longer needed and only adds clutter to the file.
2023-06-22 19:04:48 -03:00
Gabriel Luiz Freitas Almeida
d5d6f7be57 🔨 refactor(schemas.py): rename PredictRequest to InputRequest and remove message field, add TweaksRequest and UpdateTemplateRequest
 feat(schemas.py): add ProcessResponse schema to represent the response of the process endpoint
The PredictRequest schema has been renamed to InputRequest to better reflect its purpose. The message field has been removed as it is not needed. TweaksRequest has been added to represent the request body for the tweaks endpoint. UpdateTemplateRequest has been added to represent the request body for updating a template. ProcessResponse has been added to represent the response of the process endpoint, which returns a dictionary as the result.
2023-06-22 19:04:19 -03:00
Gabriel Luiz Freitas Almeida
bfef9495f1 feat(vector_store.py): add support for initializing Pinecone and ChromaDB objects from existing indexes
The code has been refactored to improve readability by adding type hints and reformatting the code. The initialize_pinecone and initialize_chroma functions have been updated to support initializing objects from existing indexes. If there are no docs in the params, the functions will return an existing index. If there are docs in the params, the functions will create a new index. The initialize_qdrant function has not been changed.
🔨 refactor(vector_store.py): improve code readability by adding type hints and reformatting code
2023-06-22 19:03:53 -03:00
Gabriel Luiz Freitas Almeida
60886a93c4 🔨 refactor(process.py): remove unused imports and variables, simplify get_result_and_thought function
This commit removes unused imports and variables from the process.py file. The get_result_and_thought function has been simplified to take a dictionary of inputs instead of a single message string. The function now returns the output of the langchain_object instead of a tuple of result and thought.
2023-06-22 19:03:35 -03:00
Gabriel Luiz Freitas Almeida
2c44cde2e0 🚀 feat(memories.py): add input_key and output_key fields to MemoryFrontendNode template
The MemoryFrontendNode template now includes two new fields, input_key and output_key, which are string fields that are not required and are shown in the advanced section of the template. These fields can be used to specify the input and output keys for the memory node.
2023-06-22 19:03:05 -03:00
Gabriel Luiz Freitas Almeida
176738987b 🔀 refactor(endpoints.py): rename predict_flow endpoint to process_flow and update its functionality
🔀 refactor(constants.tsx): update BASE_API_URL to reflect the changes in the predict_flow endpoint name
The predict_flow endpoint has been renamed to process_flow to better reflect its functionality. The inputs are now passed as a dictionary instead of a PredictRequest object. The tweaks parameter is now optional and is passed as a dictionary. The response model has been updated to reflect the changes in the response. The BASE_API_URL constant in constants.tsx has been updated to reflect the changes in the endpoint name.
2023-06-22 18:57:17 -03:00
Gabriel Luiz Freitas Almeida
141c55643d 🚀 feat(vectorstores.py): add support for Pinecone vector store type
The VectorStoreFrontendNode class now supports the Pinecone vector store type. Two new fields, pinecone_api_key and pinecone_env, have been added to the extra_fields list. The add_extra_fields method has been updated to add these fields to the template if the type_name is Pinecone. The add_field method has been updated to add all fields in the extra_fields list to the template. The add_field method has also been updated to remove the text_key field if the field name is "text_key". Finally, the fields list has been updated to include the new fields.
2023-06-22 14:56:25 -03:00
Gabriel Luiz Freitas Almeida
228127289b 🚀 feat(config.yaml): add GitLoader and Pinecone to documentloaders and vectorstores respectively
GitLoader is added to documentloaders to allow loading of documents from a Git repository. Pinecone is added to vectorstores to allow for vector similarity search. These additions improve the functionality of the application by allowing for more diverse sources of data and more efficient search capabilities.
2023-06-22 13:51:53 -03:00
Gabriel Luiz Freitas Almeida
1a0d448e82 🚀 feat(validate.py): remove unused imports and endpoint for node validation
🚀 feat(base.py): update import statement for loading module
🚀 feat(vector_store.py): add initialization functions for pinecone, chroma, and qdrant
The unused imports and endpoint for node validation were removed from validate.py. The import statement for the loading module was updated in base.py. Initialization functions for pinecone, chroma, and qdrant were added to vector_store.py to allow for the creation of objects from the respective services.
2023-06-22 13:51:18 -03:00
Gabriel Luiz Freitas Almeida
1e61500f38 🚀 feat(chains.py): add return_source_documents field to template
The `return_source_documents` field is added to the template as a boolean field. It is not a required field and is set to `True` by default. This field is used to determine whether the source documents should be returned or not. It is displayed in the frontend and can be toggled by the user.
2023-06-22 13:48:44 -03:00
Gabriel Luiz Freitas Almeida
9ecba59d81 🔥 chore(types.py): remove unused _built_object_repr method from VectorStoreVertex
The _built_object_repr method was not being used and was therefore removed to improve code readability and maintainability.
2023-06-22 13:48:21 -03:00
Gabriel Luiz Freitas Almeida
796ce298f6 feat(documentloaders.py): add metadata field to document loader template
The function build_template was renamed to build_file_field to improve naming consistency. A metadata field of type dict was added to the document loader template to allow for additional information to be passed along with the document. The format_field method was updated to show the metadata field when it is present.
🔨 refactor(documentloaders.py): rename build_template function to build_file_field for better semantics
2023-06-22 13:47:43 -03:00
Gabriel Luiz Freitas Almeida
b8141dca7d 🚀 feat(loading.py): move loading into initialize module
📝 docs(initialize): add empty __init__.py file to initialize directory
The initialize directory was added to the project, but it was missing an __init__.py file. This file is necessary to make the directory a package and allow importing modules from it. An empty __init__.py file was added to the directory to fix this issue.
2023-06-22 13:45:04 -03:00
Gabriel Luiz Freitas Almeida
2854633814 🔥 refactor(API): remove unused postValidateNode function
The postValidateNode function is not used in the codebase and has been removed to improve code readability and maintainability.
2023-06-22 11:45:55 -03:00
Gabriel Luiz Freitas Almeida
e5c6c92ecc feat(frontend): add Pinecone icon to nodeIcons
A new PineconeIcon component was added to the nodeIcons object in utils.ts. This allows the Pinecone icon to be used in the frontend application. The icon was added to improve the visual representation of the Pinecone node in the application.
2023-06-22 11:45:44 -03:00
Gabriel Luiz Freitas Almeida
05bd7b415a
Adding Building Progress Bar with DaisyUI and Radial Progress (#522) 2023-06-22 00:20:01 +00:00
Gabriel Luiz Freitas Almeida
a534fa9337 Merge remote-tracking branch 'origin/main' into multipart_endpoint 2023-06-21 18:21:35 -03:00
Gabriel Luiz Freitas Almeida
96bce3da81 🐛 fix(utils.py): remove file extension from saved file name
🐛 fix(process.py): correctly update template_data with tweak_value
The file extension is no longer included in the saved file name to avoid issues with file extensions that may not be supported. In process.py, the tweak_value is now correctly updated in the template_data dictionary. The key is now set to "value" for all tweaks except for "file_path" where the key is set to the name of the tweak.
2023-06-21 17:45:12 -03:00
Gabriel Luiz Freitas Almeida
3781f1ddda 🔨 refactor(loading.py): extract persist parameter from params for Chroma vector store instantiation
 feat(loading.py): add persist parameter to Chroma vector store instantiation to enable persistence of vector store
The persist parameter is now extracted from the params dictionary before instantiating the Chroma vector store. This improves readability and reduces the complexity of the code. The persist parameter is now added to the Chroma vector store instantiation to enable persistence of the vector store. This allows the vector store to be reused across multiple sessions, improving performance and reducing the time required to load the vector store.
2023-06-21 17:27:57 -03:00
Gabriel Luiz Freitas Almeida
b7eab50672 🚀 feat(vectorstores.py): add support for Chroma vector store type
🐛 fix(vectorstores.py): add persist field to Weaviate vector store type
The `VectorStoreFrontendNode` class now supports the Chroma vector store type. A new boolean field `persist` has been added to the Chroma vector store type. The `add_extra_fields` method has been updated to add the `persist` field to the Chroma vector store type. The `format_field` method has been updated to include the `persist` field in the basic fields. Additionally, the `add_extra_fields` method has been updated to add the `weaviate_url` field to the Weaviate vector store type.
2023-06-21 17:27:40 -03:00
Gabriel Luiz Freitas Almeida
100833f40f
🔖 chore(pyproject.toml): bump version to 0.1.7 (#528) 2023-06-21 19:19:20 +00:00
Gabriel Luiz Freitas Almeida
dbbba573e3 style: formatting 2023-06-21 16:18:31 -03:00
Gabriel Luiz Freitas Almeida
860c36146e 🎨 style(documentloaders.py): fix indentation and formatting issues
The changes in this commit are purely cosmetic. The indentation and formatting issues in the code have been fixed to improve readability and maintainability.
2023-06-21 16:18:11 -03:00
Gabriel Luiz Freitas Almeida
3d49b67e3d
Merge branch 'main' into release 2023-06-21 19:17:22 +00:00
Gabriel Luiz Freitas Almeida
c1bb928451 🔖 chore(pyproject.toml): bump version to 0.1.7
The version number has been updated from 0.1.6 to 0.1.7 to reflect the changes made in the package. This is a chore commit as it does not add any new features or fix any bugs, but rather updates the version number.
2023-06-21 16:16:29 -03:00
Gabriel Luiz Freitas Almeida
e0d9b21d28
Update LangChain to the latest version (#527) 2023-06-21 19:13:02 +00:00
Gabriel Luiz Freitas Almeida
10db240a6b 🐛 fix(custom.py): rename QueryCheckerTool to QuerySQLCheckerTool to match the correct class name
The QueryCheckerTool class was renamed to QuerySQLCheckerTool to match the correct class name. This change ensures that the correct class is being used and avoids any potential errors that may arise from using the wrong class name.
2023-06-21 16:08:37 -03:00
Gabriel Luiz Freitas Almeida
19a5eb0467
Merge branch 'main' into release 2023-06-21 19:02:26 +00:00
Gabriel Luiz Freitas Almeida
2650cb013c 🔼 chore(pyproject.toml): bump package version to 0.1.6
The langchain dependency has been updated to version 0.0.208 to ensure compatibility with the latest version of the package. The package version has been bumped to 0.1.6 to reflect the changes made.
🔼 chore(pyproject.toml): update langchain dependency to version 0.0.208
2023-06-21 15:55:13 -03:00
Gabriel Luiz Freitas Almeida
b6c10206e2 📦 chore(pyproject.toml): add appdirs package to dev dependencies
The appdirs package is added to the dev dependencies to support the development of the application.
2023-06-21 15:44:02 -03:00
Gabriel Luiz Freitas Almeida
bdd2076deb 🔒 chore(loading.py): remove code that deletes files after loading in instantiate_documentloader function
The save_uploaded_file function now uses the folder_name parameter instead of file_name to improve semantics. The appdirs library is now used to get the user cache directory and a folder for langflow cache is created. The sha256 hash of the file content is now used as the file name to avoid collisions and improve security. A folder is now created for each flow_id in the save_uploaded_file function. The code that deletes files after loading in the instantiate_documentloader function has been removed as it is unnecessary and can cause issues.
🐛 fix(endpoints.py): change file_name parameter to folder_name in save_uploaded_file function
🔒 chore(utils.py): use appdirs to get user cache directory and create a folder for langflow cache
🔒 chore(utils.py): use sha256 hash of file content as file name to avoid collisions and improve security
🔒 chore(utils.py): create folder for each flow_id in save_uploaded_file function
2023-06-21 15:43:27 -03:00
Cristhian Zanforlin Lousa
1aa91587cc refactor: Use specific event parameter type in BuildTrigger
This change updates an event parameter type in BuildTrigger to improve type safety. Specifically, an event parameter type was modified from 'any' to a more specific type to avoid invalid use of the event parameter.
2023-06-21 15:11:49 -03:00
Gabriel Luiz Freitas Almeida
d3d33162e8 🐛 fix(chat.py): change event name from "node" to "message" in stream_build function
The event name was changed from "node" to "message" to better reflect the nature of the data being sent. The data being sent is a message response from the server, not a node in the graph.
2023-06-21 15:04:36 -03:00
Gabriel Luiz Freitas Almeida
0a1ceba765 🔥 chore(buildTrigger): remove unused TODO comment
The TODO comment regarding the implementation of progress has been removed as it is no longer relevant.
2023-06-21 14:55:22 -03:00
Gabriel Luiz Freitas Almeida
b9231aad8f 🔥 refactor(buildTrigger): remove unused imports and ProgressBarComponent
🐛 fix(buildTrigger): handle error response from server when starting a build
The ProgressBarComponent import was removed as it was not being used. The error handling was improved to handle the case where the server returns an error response when starting a build. The error message is now displayed to the user and the build state is reset.
2023-06-21 14:53:55 -03:00
Gabriel Luiz Freitas Almeida
38c2eaa897 🔥 refactor(chat.py): remove unused import statement
🐛 fix(chat.py): fix StreamData class import statement
 feat(chat.py): add progress tracking and node building events to stream_build function
The unused import statement has been removed to improve code readability. The StreamData class import statement has been fixed to avoid errors. Progress tracking and node building events have been added to the stream_build function to provide more information to the user about the build process.
2023-06-21 14:53:54 -03:00
Gabriel Luiz Freitas Almeida
fae1ca349f 🔧 chore(schemas.py): add StreamData model and __str__ method to improve readability of stream data
The StreamData model is added to represent the data that is streamed from the server. The __str__ method is added to improve the readability of the stream data by returning a formatted string that includes the event and data attributes.
2023-06-21 14:53:53 -03:00
Cristhian Zanforlin Lousa
22e24226a3 Refactor buildTrigger component to use progress state instead of myValue
The buildTrigger component was updated to use progress state instead of myValue to better represent the progress of the building process. This change allowed us to make improvements in the way progress is tracked, which will improve the user experience.
2023-06-21 14:50:38 -03:00
Cristhian Zanforlin Lousa
3a9315ed77 Merge branch 'feat/progressbar' of https://github.com/logspace-ai/langflow into feat/progressbar 2023-06-21 14:05:26 -03:00
Cristhian Zanforlin Lousa
0caab2e9ea Refactor buildTrigger event handling to handle end-of-stream event properly
This commit refactors buildTrigger event handling to ensure that end-of-stream events are handled by closing the connection without logging them.
2023-06-21 14:05:22 -03:00