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.
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.
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.
✨ 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
🐛 fix(parameterComponent): fix key prop warning by generating rando key
using new function getRandomKeyByssmm
✨ feat(parameterComponent): add support for dynamic rendering of
parameter component by grouping data by family
🐛 fix(menuBar): fix DropdownMenuTrigger component by adding asChild prop
🐛 fix(card.tsx): change p tag to div tag to fix accessibility issue
🐛 fix(extraSidebarComponent): fix key prop warning by adding key prop to
Tooltip component
✨ feat(utils.ts): add new function getRandomKeyByssmm to generate random
keys for components
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.
✨ feat(parameterComponent): add support for dynamic rendering of parameter component by grouping data by family
🐛 fix(menuBar): fix DropdownMenuTrigger component by adding asChild prop
🐛 fix(card.tsx): change p tag to div tag to fix accessibility issue
🐛 fix(extraSidebarComponent): fix key prop warning by adding key prop to Tooltip component
✨ feat(utils.ts): add new function getRandomKeyByssmm to generate random keys for components
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.
✨ 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.
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
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.
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.
🔀 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.
refactor(codeAreaComponent): change template to nodeClass and setTemplate to setNodeClass to improve semantics
refactor(API): change UpdateTemplate function parameter from template to nodeClass to improve semantics
refactor(codeAreaModal): change template to nodeClass and setTemplate to setNodeClass to improve semantics and fix bug
refactor(types): add APIClassType to import and change APITemplateType to import in relevant files to improve semantics
fix(API): fix UpdateTemplate function return type to match the actual response
fix(vite.config.ts): add dynamic_node route to apiRoutes array to proxy requests to backend
🎨 style(GenericNode): change nodeIcons import to nodeIconsLucide to match the new icon library
🎨 style(NodeModal): change Icon type to any to fix type error
🎨 style(chatInput): remove unnecessary array brackets
🎨 style(DisclosureComponent): change Icon size to 22 to match the new icon library
🎨 style(extraSidebarComponent): change nodeIcons import to nodeIconsLucide to match the new icon library and add Search icon
🎨 style(components/index): add SVGProps to import and change Icon type to any to fix type error
✨ feat(utils.ts): add support for Lucide icons to be used in the app to improve UI and UX.
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.
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.
🚀 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.
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.
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
📝 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.
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.
🐛 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.
✨ 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.