Commit graph

691 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
e362cfcf16
Adds an Info button that links to docs (#539) 2023-06-26 23:16:58 +00:00
Gabriel Luiz Freitas Almeida
92aec903ea 📝 docs(config.yaml): add documentation links for various document loaders, embeddings, and llms
Added documentation links for various document loaders, embeddings, and llms to improve the readability and usability of the config.yaml file. These links provide a quick reference to the documentation for each of the modules, making it easier for developers to understand and use them.
2023-06-26 19:53:51 -03:00
Gabriel Luiz Freitas Almeida
c51a90c537 🚀 feat(custom.py): add AgentType enum to improve readability and type safety
The `AgentType` enum is added to the `langchain.agents.custom` module to improve readability and type safety. The `InitializeAgent` class now uses the `AgentType` enum to ensure that the `agent` parameter is a valid value from the enum.
2023-06-26 13:27:05 -03:00
Gabriel Luiz Freitas Almeida
2d77aaaa15 🐛 fix(loading.py): fix instantiation of TextSplitter by removing unnecessary check for RecursiveCharacterTextSplitter
The import of RecursiveCharacterTextSplitter was removed as it was not being used in the code. The instantiation of TextSplitter was fixed by removing the unnecessary check for RecursiveCharacterTextSplitter and simplifying the code.
🔥 refactor(loading.py): remove unused import of RecursiveCharacterTextSplitter
2023-06-26 07:58:49 -03:00
Gabriel Luiz Freitas Almeida
6459a27777 🐛 fix(loading.py): use 'is' instead of '==' to compare object types
The commit changes the comparison operator from '==' to 'is' to compare object types. This is because 'is' compares the object identity while '==' compares the object value. In this case, we want to compare the object identity, so 'is' is the correct operator to use.
2023-06-25 21:37:24 -03:00
Gabriel Luiz Freitas Almeida
a3efa8fe5d 🐛 fix(utils.py): fix import order to avoid import errors
The import order was changed to avoid import errors. The import of langchain was moved to the top of the file to avoid circular import errors.
2023-06-25 19:52:49 -03:00
Gabriel Luiz Freitas Almeida
0c398fb6c5 🔨 refactor(loading.py): add type hinting to instantiate_agent function
🐛 fix(loading.py): fix type hinting in instantiate_embedding function
🔨 refactor(loading.py): add type hinting to instantiate_textsplitter function
The changes in this commit add type hinting to the `instantiate_agent`, `instantiate_embedding`, and `instantiate_textsplitter` functions to improve code readability and maintainability. The `instantiate_embedding` function had a bug in its type hinting which has been fixed.
2023-06-25 19:34:25 -03:00
Gabriel Luiz Freitas Almeida
9510474aa6 📝 docs(config.yaml): add documentation links to vectorstores integrations
Added documentation links to the vectorstores integrations in the config.yaml file. This will make it easier for developers to access the documentation for each integration.
2023-06-25 18:59:40 -03:00
Gabriel Luiz Freitas Almeida
005e7ec51c 🚀 feat(textsplitters.py): add a field for separator type in RecursiveCharacterTextSplitter
The RecursiveCharacterTextSplitter class in textsplitters.py now has a new field called separator_type. This field is used to specify the type of separator to be used in the splitter. The separator_type field is a string and can take any value from the Language enum or "Text". This change was made to improve the flexibility of the RecursiveCharacterTextSplitter class.
2023-06-25 18:57:45 -03:00
Gabriel Luiz Freitas Almeida
217225467f 🔨 refactor(loading.py): add type hints to function parameters and return types
This commit adds type hints to the function parameters and return types in the loading.py file. This improves the readability and maintainability of the codebase by making it easier to understand the expected types of the parameters and return values of the functions.
2023-06-25 18:57:35 -03:00
Gabriel Luiz Freitas Almeida
d4599a52b3 📝 docs(config.yaml): add documentation links for new integrations and memories
Added documentation links for new integrations and memories to improve the documentation of the project. The new integrations are Cohere and HuggingFaceHub, and the new memories are ConversationBufferWindowMemory and VectorStoreRetrieverMemory.
2023-06-25 18:37:18 -03:00
Gabriel Luiz Freitas Almeida
a45947c01b 🚀 feat(vectorstores.py): add VectorStoreRetriever as an extra base class to VectorStoreFrontendNode
The VectorStoreFrontendNode class now has VectorStoreRetriever as an extra base class in addition to BaseRetriever. This change was made to improve the functionality of the class by allowing it to inherit from VectorStoreRetriever.
2023-06-25 18:37:05 -03:00
Gabriel Luiz Freitas Almeida
5f56384dce 🚀 feat(__main__.py): add support for cache configuration
The `update_settings` function now accepts a `cache` parameter that allows the user to specify the type of cache to use. The `cache` parameter is set to a default value of `SQLiteCache` and can be overridden by setting the `LANGCHAIN_CACHE` environment variable. This feature improves the flexibility of the application as it allows the user to choose the type of cache that best suits their needs.
2023-06-25 18:20:21 -03:00
Gabriel Luiz Freitas Almeida
a15da8eb0d 🚀 feat(settings.py): add cache configuration option
The cache configuration option has been added to the settings file with a default value of "InMemoryCache". This allows the user to choose the cache implementation they want to use.
2023-06-25 18:20:13 -03:00
Gabriel Luiz Freitas Almeida
89c2e5b064 🚀 feat(utils.py): add support for configurable LLM caching
This commit adds support for configurable LLM caching. The `setup_llm_caching` function now imports the cache class from the `langchain.cache` module based on the `settings.cache` value. If the import is successful, the `langchain.llm_cache` is set to an instance of the cache class. If the import fails, a warning is logged. If an exception is raised during the setup, a warning is logged with the error message.
2023-06-25 18:19:59 -03:00
Gabriel Luiz Freitas Almeida
02befe5052 📝 docs(config.yaml): add documentation links for LlamaCpp and CTransformers integrations
This commit adds documentation links for the LlamaCpp and CTransformers integrations in the config.yaml file. The links point to the relevant documentation pages on the LangChain website. This improves the accessibility of the documentation for these integrations.
2023-06-25 09:27:44 -03:00
Gabriel Luiz Freitas Almeida
d523b7f8b0 fix: removing placeholders 2023-06-25 09:26:13 -03:00
Gabriel Luiz Freitas Almeida
29542f4cf8 🔧 chore(utils.py): add setup_llm_caching function to set up LLM caching
 feat(main.py): call setup_llm_caching function on app startup
The `setup_llm_caching` function is added to `utils.py` to set up LLM caching. The function is then called on app startup in `main.py` using the `app.on_event("startup")` method. This improves the performance of the application by caching LLM objects.
2023-06-25 09:12:41 -03:00
Gabriel Luiz Freitas Almeida
e7ce83562f 🐛 fix(settings.py): change default values of settings attributes from list to dictionary
The default values of the settings attributes were changed from an empty list to an empty dictionary. This change was made to avoid errors that could occur when trying to access a non-existent key in the dictionary.
2023-06-24 16:38:24 -03:00
Gabriel Luiz Freitas Almeida
2de86cbac4 📝 docs(frontend_node): add set_documentation method to set the documentation of the frontend node
 feat(frontend_node): add documentation field to the frontend node dict representation
The `set_documentation` method is added to the `FrontendNode` class to allow setting the documentation of the frontend node. The `to_dict` method is updated to include the `documentation` field in the dict representation of the frontend node. This improves the readability and usability of the frontend node by providing documentation for the node.
2023-06-24 16:32:00 -03:00
Gabriel Luiz Freitas Almeida
08cdc15d98 🔍 refactor(base.py): add documentation support to LangChainTypeCreator
This commit adds a new property to the LangChainTypeCreator class called docs_map, which is a dictionary that maps the name of the component to its documentation link. The docs_map property is used to set the documentation of the component in the signature of the component. This change improves the readability and maintainability of the code by making it easier to add and update documentation for components.
2023-06-24 16:31:47 -03:00
Gabriel Luiz Freitas Almeida
3be8ac0d72 Update settings structure 2023-06-24 16:31:39 -03:00
Gabriel Luiz Freitas Almeida
363e6459cb 🚀 feat(documentloaders.py): add SlackDirectoryLoader to the list of document loaders
The SlackDirectoryLoader is added to the list of document loaders in the DocumentLoaderFrontNode class. This allows users to load zip files from Slack into the application.
2023-06-23 17:52:59 -03:00
Gabriel Luiz Freitas Almeida
d9ec262752 formatting 2023-06-23 16:51:54 -03:00
Gabriel Luiz Freitas Almeida
0bab7ae714 🚀 feat(documentloaders.py): add fields to GitLoader template to support repository path, clone URL, branch, and file filter
The GitLoader template now has four new fields: repo_path, clone_url, branch, and file_filter. These fields allow the user to specify the repository path, clone URL, branch, and file extensions to be loaded. This improves the flexibility of the GitLoader template and allows it to be used in a wider range of scenarios. Additionally, a minor change was made to the add_extra_fields method to ensure that the field.show attribute is set to True for all fields.
2023-06-23 16:50:22 -03:00
Gabriel Luiz Freitas Almeida
15ac75ecc5 🔨 refactor(loading.py): add support for filtering files by extension in document loader
The `instantiate_documentloader` function now supports filtering files by extension using a `file_filter` parameter. The parameter is a string of comma-separated extensions, and the function now converts it into a lambda function that filters files based on whether their name contains any of the specified extensions. This improves the flexibility of the document loader by allowing it to load only specific types of files.
2023-06-23 16:50:11 -03:00
Gabriel Luiz Freitas Almeida
96bab94b14 🔥 chore(chains.py): remove unnecessary commented line
The commented line is not needed and can be safely removed.
2023-06-23 16:13:16 -03: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
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
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
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
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
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
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
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
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