Commit graph

724 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
5924aa4442 📦 chore(field_formatters.py): add field formatters for template frontend_node
🔧 refactor(field_formatters.py): refactor field formatters for template frontend_node
The commit adds a new file `field_formatters.py` to the `frontend_node/formatter` directory in the `langflow/template` backend. This file contains multiple field formatters for the template frontend_node. The formatters handle various formatting tasks such as formatting field names, setting field options, handling special fields, and formatting field types. The commit aims to improve the code organization and maintainability by separating the field formatting logic into dedicated formatters.
2023-06-29 08:52:26 -03:00
Gabriel Luiz Freitas Almeida
75f0a80ded 🎉 feat(formatter): add base FieldFormatter class for formatting template fields
The base.py file is a new addition to the project. It introduces the FieldFormatter class, which is an abstract base class (ABC) for formatting template fields. This class provides a format() method that takes a TemplateField object as input and is meant to be implemented by subclasses. This addition allows for the creation of custom field formatters in the project.
2023-06-29 08:52:21 -03:00
Gabriel Luiz Freitas Almeida
d272a682be 🔧 chore(chains.py): update field properties for "RetrievalQA" memory field
The "RetrievalQA" memory field in the template frontend node is updated to have the "show" and "required" properties set to False. This change is made to hide the memory field and make it optional. Additionally, the "advanced" property is set to False for all fields, and the "password" property is set to False for fields containing the word "key" in their name.
2023-06-29 08:26:23 -03:00
Gabriel Luiz Freitas Almeida
b61a0a624e
Merge branch 'release' into dev 2023-06-29 06:28:14 -03:00
zhenjianpeng
78831f1051 remove memory support and make it a proposal 2023-06-29 11:54:28 +08:00
zhenjianpeng
83b7ee337f Merge branch 'dev' of https://github.com/PepperYan/langflow into dev 2023-06-29 10:38:50 +08:00
zhenjianpeng
d1fbbd5fff fix bug about extra fields 2023-06-29 10:38:45 +08:00
zhenjianpeng
df43dbc6bc add custom nodes for signature, fix some problem 2023-06-29 10:26:27 +08:00
Gabriel Luiz Freitas Almeida
b276cc9dd6
🚀 feat(llms.py): add method to format ctransformers field in LLMFrontendNode (#519) 2023-06-28 22:58:41 -03:00
Gabriel Luiz Freitas Almeida
85b7ff1d31 🔧 chore(chat.py): update init_build endpoint to include flow_id as a path parameter
The unnecessary imports have been removed from the chat.py file to improve code cleanliness and readability. The init_build endpoint in the chat.py file has been updated to include the flow_id as a path parameter instead of extracting it from the graph_data dictionary. This change allows for a more explicit and consistent API design.
🔧 chore(chat.py): remove unnecessary imports and reformat code for better readability
2023-06-28 22:45:37 -03:00
Gabriel Luiz Freitas Almeida
48d40bfdd3 feat(chat.py): add status field to flow_data_store to track build status of flows
The import statement for the BuildStatus enum in the schemas module has been updated to ensure the correct import. Additionally, a new "status" field has been added to the flow_data_store dictionary to track the build status of flows. The status is set to BuildStatus.IN_PROGRESS when a flow is being built, BuildStatus.SUCCESS when the build is successful, and BuildStatus.FAILURE when there is an error during the build process. This allows for better tracking and management of flow builds.
🐛 fix(chat.py): change import statement for BuildStatus in schemas module
2023-06-28 22:29:56 -03:00
Gabriel Luiz Freitas Almeida
5da374b713 feat(schemas.py): add BuildStatus enum to represent the status of a build
The BuildStatus enum is added to represent the different statuses that a build can have: SUCCESS, FAILURE, and IN_PROGRESS. This enum will be used to provide a more structured and consistent way of handling build statuses in the application.
2023-06-28 22:29:46 -03:00
Gabriel Luiz Freitas Almeida
1bad93c02c Merge branch 'release' into add_params_to_llms 2023-06-28 22:29:37 -03:00
Gabriel Luiz Freitas Almeida
36212884e4 🐛 fix(loading.py): refactor instantiate_textsplitter function to improve readability and remove unnecessary code
The `instantiate_textsplitter` function has been refactored to improve readability and remove unnecessary code. The condition for creating the `text_splitter` object has been simplified and the `separator_type` parameter is now removed from the `params` dictionary if it exists. Additionally, the `language` parameter is now passed as an instance of the `Language` class from the `langchain.text_splitter` module. This change ensures that the `text_splitter` object is created correctly and the `split_documents` method is called with the appropriate parameters.
2023-06-28 18:16:13 -03:00
Gabriel Luiz Freitas Almeida
3485893be0 🔀 refactor(textsplitters.py): extract options list into a variable for reusability and sorting
The options list for the separator_type field in the TextSplittersFrontendNode class has been extracted into a variable called options. This improves code readability and allows for easier modification and sorting of the options list.
2023-06-28 18:16:04 -03:00
Gabriel Luiz Freitas Almeida
8c12e17ad0 📝 docs(config.yaml): update documentation link for ConversationBufferMemory in memories section
The documentation link for ConversationBufferMemory in the memories section has been updated to point to the correct URL "https://python.langchain.com/docs/modules/memory/how_to/buffer". This change ensures that users can access the correct documentation for using ConversationBufferMemory.
2023-06-28 18:06:46 -03:00
Gabriel Luiz Freitas Almeida
7364ba41f8 🐛 fix(loading.py): handle case where metadata is an empty dict and document already has metadata
🐛 fix(loading.py): handle case where separator_type is not provided in params
The first fix ensures that if the metadata is an empty dict, it will not be added to the documents if they already have metadata. This prevents overwriting existing metadata.

The second fix handles the case where the separator_type is not provided in the params. In this case, the text_splitter will be instantiated using the class_object and the params as is.
2023-06-28 08:59:31 -03:00
hibad
b25207a33a
Merge branch 'logspace-ai:dev' into dev 2023-06-28 15:20:40 +08:00
zhenjianpeng
d157fffee3 adding pg support for external message persistance 2023-06-28 15:20:06 +08:00
Gabriel Luiz Freitas Almeida
23cf37eee5 🔖 chore(pyproject.toml): update package version to 0.2.3
🔥 refactor(manager.py): remove unnecessary blank line at the end of the file
The package version has been updated to 0.2.3 in the pyproject.toml file. This is a chore as it does not affect the functionality of the package. The blank line at the end of the manager.py file has been removed as it is unnecessary and does not add any value to the code. This is a refactor as it improves the code readability.
2023-06-27 13:21:40 -03:00
Gabriel Luiz Freitas Almeida
3a5cd957c3
Added info parameter to fields (#552) 2023-06-27 12:10:53 -03:00
Gabriel Luiz Freitas Almeida
93c3f7a2a6 feat(__main__.py): add optional static_files_dir parameter to setup_app function
The variable name static_files_dir was changed to improve semantics. It is now more clear that it is a directory path. An optional static_files_dir parameter was added to the setup_app function to allow for a directory path to be passed in. This allows for more flexibility in serving static files.
🐛 fix(__main__.py): fix static_files_dir variable name to improve semantics
2023-06-27 11:09:26 -03:00
Gabriel Luiz Freitas Almeida
b741853454 🔧 chore(utils.py): use ChatConfig to set streaming option
The first change removes an extra blank line in the ChatManager class. The second change updates the try_setting_streaming_options function to use the ChatConfig class to set the streaming option instead of hardcoding it. This makes the code more modular and easier to maintain.
2023-06-27 10:16:41 -03:00
Gabriel Luiz Freitas Almeida
7c6845b15e 🔧 chore(loading.py): add instantiate_llm function to handle LLM instantiation and set ChatConfig.streaming based on openai_api_base parameter
This commit adds a new function `instantiate_llm` to handle LLM (Language Model) instantiation. It also sets the `ChatConfig.streaming` attribute based on the `openai_api_base` parameter. This is a workaround to ensure that JinaChat works until streaming is implemented.
2023-06-27 10:16:19 -03:00
Gabriel Luiz Freitas Almeida
c86f72e7a6 🎉 feat(config.py): add ChatConfig class with streaming attribute set to True
The ChatConfig class is added to the project with a single attribute, streaming, set to True. This attribute is used to determine whether the chatbot should use streaming or request-response communication with the client.
2023-06-27 10:11:39 -03:00
Gabriel Luiz Freitas Almeida
b005f8d87c
Merge pull request #553 from logspace-ai:setup_app
Added a setup_app function to reuse the app object
2023-06-27 09:47:18 -03:00
Gabriel Luiz Freitas Almeida
f78088bdb2 🔧 refactor(__main__.py, main.py): move setup_static_files function to main.py and rename create_app to setup_app
 feat(__main__.py, main.py): add support for a custom static files directory to be passed as an argument to the app
The `setup_static_files` function has been moved from `__main__.py` to `main.py` to improve code organization. The function has also been renamed to `setup_app` to better reflect its purpose. The `create_app` function has been renamed to `setup_app` to follow the naming convention of the new function. The `setup_app` function now accepts an optional argument `static_files_dir` which allows the user to specify a custom directory for static files. This improves the flexibility of the app as it can now be run with a custom frontend.
2023-06-27 09:44:20 -03:00
Gabriel Luiz Freitas Almeida
0d84d19657 📝 docs(constants.py): update OpenAI API base info to include additional API options
This commit updates the documentation in the constants.py file to include additional API options that can be used instead of the default OpenAI API. The new options are JinaChat, LocalAI, and Prem. This change provides more information to the user and allows them to make an informed decision when choosing an API to use.
2023-06-27 07:44:20 -03:00
Gabriel Luiz Freitas Almeida
415bee7384 🔧 chore(base.py, constants.py, llms.py): add info field to TemplateField and OPENAI_API_BASE_INFO constant
The `info` field is added to the `TemplateField` class to provide additional information about the field. The `OPENAI_API_BASE_INFO` constant is added to the `constants.py` file to provide information about the base URL of the OpenAI API and how it can be changed to use other APIs like Prem and LocalAI. The `info` field is set to `OPENAI_API_BASE_INFO` for the `openai_api_base` field in the `LLMFrontendNode` class in `llms.py`.
2023-06-27 07:33:35 -03:00
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