Commit graph

2,450 commits

Author SHA1 Message Date
Atharva J
52b6bc4ad4 Merge branch 'Vectara-component-update' of https://github.com/JAtharva22/langflowdev into Vectara-component-update 2023-12-19 15:09:33 +05:30
Atharva J
a5c6683609 . 2023-12-19 15:09:29 +05:30
Atharva Jadhav
a16fe99162
Delete src/backend/langflow/components/retrievers/VectaraSelfQueryRetriever.py 2023-12-18 04:52:25 +05:30
Atharva J
390767cbf7 major 2023-12-18 04:47:07 +05:30
Atharva J
dc656ad402 Merge branch 'dev' of https://github.com/JAtharva22/langflowdev into dev 2023-12-18 04:44:02 +05:30
Gabriel Luiz Freitas Almeida
cc666e1ce5 Add unique constraints to tables 2023-12-13 19:10:48 -03:00
Gabriel Luiz Freitas Almeida
372f39bcad Fix build failure and optimize imports 2023-12-13 19:10:48 -03:00
Gabriel Luiz Freitas Almeida
9d19082452 Refactor serialize_file_path method in TemplateField class 2023-12-13 19:10:47 -03:00
Gabriel Luiz Freitas Almeida
c5148c594e Add loguru logger and sqlalchemy imports
Handle AutogenerateDiffsDetected exception in migrations

Fix migration error message
2023-12-13 18:57:30 -03:00
Gabriel Luiz Freitas Almeida
fde3c52665 Refactor cache factory imports 2023-12-13 18:57:14 -03:00
Gabriel Luiz Freitas Almeida
1c472c359f Add unique constraints to tables 2023-12-13 18:57:02 -03:00
Gabriel Luiz Freitas Almeida
d243cfd98f Add time_elapsed variable to track the elapsed time during stream_build() 2023-12-13 18:10:48 -03:00
Gabriel Luiz Freitas Almeida
a2336aa7c8 Refactor vertex class selection in Graph class 2023-12-13 10:38:25 -03:00
Gabriel Luiz Freitas Almeida
f109a4097e Refactor code and fix imports 2023-12-12 17:57:56 -03:00
Gabriel Luiz Freitas Almeida
155e441406 Fix various bugs and make improvements 2023-12-12 17:02:37 -03:00
Gabriel Luiz Freitas Almeida
5f237313b9 Remove "code" parameter from VectorStoreVertex and ChainVertex 2023-12-12 16:58:56 -03:00
Gabriel Luiz Freitas Almeida
e36b929aa7 Fix import formatting and add dynamic field flag 2023-12-12 16:52:58 -03:00
Gabriel Luiz Freitas Almeida
18b4e33062 🐛 fix(flows.py): remove unused import statement to improve code cleanliness and maintainability
🐛 fix(flows.py): change Flow.from_orm() to Flow.model_validate() to ensure data integrity and validation
🐛 fix(users.py): remove unused import statements to improve code cleanliness and maintainability
🐛 fix(users.py): change User.from_orm() to User.model_validate() to ensure data integrity and validation
🐛 fix(LLMChain.py): remove unused import statements to improve code cleanliness and maintainability
🐛 fix(LLMChain.py): remove unnecessary line breaks to improve code readability
🐛 fix(base.py): remove unused import statements to improve code cleanliness and maintainability
🐛 fix(base.py): remove unnecessary line breaks to improve code readability
🐛 fix(base.py): fix condition to append vertex_id to top_level_vertices to avoid appending non-string values
🐛 fix(vertex/base.py): add parent_node_id attribute to Vertex class to support hierarchical graph structures
🐛 fix(base.py): remove unused import statements to improve code cleanliness and maintainability

🚀 feat(GroupTest): add a new node for a simple chat with a custom prompt template and conversational memory buffer

ℹ️ This commit adds a new node to the GroupTest project. The node is a genericNode with the following properties:
- Width: 384
- Height: 621
- ID: ChatOpenAI-rUJ1b
- Type: genericNode
- Position: x: 170.87326389541306, y: 465.8628482073749
- Data:
  - Type: ChatOpenAI
  - Node:
    - Template:
      - Callbacks:
        - Required: false
        - Placeholder: ""
        - Show: false
        - Multiline: false
        - Password: false
        - Name: callbacks
        - Advanced: false
        - Dynamic: false
        - Info: ""
        - Type: langchain.callbacks.base.BaseCallbackHandler
        - List: true
      - Cache:
        - Required: false
        - Placeholder: ""
        - Show: false
        - Multiline: false
        - Password: false
        - Name: cache
        - Advanced: false
        - Dynamic: false
        - Info: ""
        - Type: bool
        - List: false
      - Client:
        - Required: false
        - Placeholder: ""
        - Show: false
        - Multiline: false
        - Password: false
        - Name: client
        - Advanced: false
        - Dynamic: false
        - Info: ""
        - Type: Any
        - List: false
      - Max Retries:
        - Required: false
        - Placeholder: ""
        - Show: false
        - Multiline: false
        - Value: 6
        - Password: false
        - Name: max_retries
        - Advanced: false
        - Dynamic: false
        - Info: ""
        - Type: int
        - List: false
      - Max Tokens:
        - Required: false
        - Placeholder: ""
        - Show: true
        - Multiline: false
        - Password: true
        - Name: max_tokens
        - Advanced: false
        - Dynamic: false
        - Info: ""
        - Type: int
        - List: false

🔧 chore: fix formatting issue in code
📝 docs: update documentation link for `OpenAI` Chat large language models API

🔧 chore: update prompt template configuration in LLMChain node
📝 docs: add documentation link for PromptTemplate in the description

📝 chore(grouped_chat.json): add grouped_chat.json test data file

This commit adds the `grouped_chat.json` file to the `tests/data` directory. The file contains a JSON object representing grouped chat data. This file is necessary for testing and will be used in the test suite.

📝 chore(one_group_chat.json): add one_group_chat.json test data file

This commit adds the one_group_chat.json file, which contains a simple chat with a custom prompt template and conversational memory buffer. This file is used for testing purposes.

🔧 chore: update node configuration for ConversationBufferMemory, ChatOpenAI, and LLMChain
📝 docs: update documentation links for ConversationBufferMemory and LLMChain

🔧 fix: update prompt template in LLMChain to include conversation history and text input variables
🔧 fix: update ConversationBufferMemory node to include description and documentation link

🎨 style: format and organize code for better readability and maintainability

🆕 feat(Vector Store): add Vector Store agent and Vector Store Info node

The Vector Store agent allows querying a Vector Store. It can be used to construct an agent from a Vector Store. The Vector Store Info node provides information about a Vector Store.

The Vector Store agent and Vector Store Info node are added to support the functionality of querying a Vector Store.

🔧 chore: update configuration options in the OpenAI API client

The configuration options in the OpenAI API client have been updated. This commit includes changes to the following options:

- `max_tokens`: Removed the `required` flag and set `show` to `true`
- `metadata`: Set `show` to `false`
- `model_kwargs`: Set `show` to `true` and `advanced` to `true`
- `model_name`: Added options `gpt-3.5-turbo-0613`, `gpt-3.5-turbo`, `gpt-3.5-turbo-16k-0613`, `gpt-3.5-turbo-16k`, `gpt-4-0613`, `gpt-4-32k-0613`, `gpt-4`, `gpt-4-32k`
- `n`: Removed the `show` flag
- `openai_api_base`: Added `display_name` as "OpenAI API Base" and updated `info` with additional details
- `openai_api_key`: Removed the `required` flag and set `show` to `true`
- `openai_organization`: Removed the `show` flag
- `openai_proxy`: Removed the `show` flag
- `request_timeout`: Removed the `show` flag
- `streaming`: Removed the `show` flag
- `tags`: Removed the `show` flag
- `temperature`: Removed the `show` flag
- `tiktoken_model_name`: Removed the `show` flag
- `verbose`: Removed the `show` flag

🔧 chore: update configuration for ChatOpenAI and Chroma nodes

The configuration for the ChatOpenAI and Chroma nodes has been updated. This includes changes to the allowed_special, disallowed_special, chunk_size, client, deployment, embedding_ctx_length, and max_retries properties. These changes were made to improve the functionality and performance of the nodes.

🔧 chore(config): update OpenAIEmbeddings-YwSvx configuration options

The OpenAIEmbeddings-YwSvx configuration options have been updated to include new fields and values. This commit updates the configuration file to reflect these changes.

🔧 chore(config): update configuration options for OpenAIEmbeddings and Chroma

🔧 chore(config): update configuration options for OpenAIEmbeddings and Chroma to improve flexibility and customization

🔧 chore: update configuration options for RecursiveCharacterTextSplitter and WebBaseLoader in flow

The configuration options for RecursiveCharacterTextSplitter and WebBaseLoader in the flow have been updated. The changes include:

- Persist Directory - Chroma: The persist directory option for Chroma has been modified.
- Search Kwargs - Chroma: The search kwargs option for Chroma has been modified.
- Chunk Overlap - RecursiveCharacterTextSplitter: The chunk overlap option for RecursiveCharacterTextSplitter has been modified.
- Chunk Size - RecursiveCharacterTextSplitter: The chunk size option for RecursiveCharacterTextSplitter has been modified.
- Separator Type - RecursiveCharacterTextSplitter: The separator type option for RecursiveCharacterTextSplitter has been modified.
- Separator - RecursiveCharacterTextSplitter: The separator option for RecursiveCharacterTextSplitter has been modified.
- Metadata - WebBaseLoader: The metadata option for WebBaseLoader has been modified.
- Web Page - WebBaseLoader: The web page option for WebBaseLoader has been modified.

🔧 chore(OpenAIEmbeddings): update OpenAIEmbeddings configuration options

The OpenAIEmbeddings node configuration options have been updated to include the following changes:
- `allowed_special` and `disallowed_special` now accept a list of values instead of a single value
- `chunk_size` now accepts an integer value
- `deployment` now accepts a string value
- `embedding_ctx_length` now accepts an integer value
- `headers` now supports multiline values
- `max_retries` now accepts an integer value
- `model` now accepts a string value
- `model_kwargs` now accepts code input
- `openai_api_base` now accepts a password input
- `openai_api_key` now accepts a password input
- `openai_api_type` now accepts a password input
- `openai_api_version` now accepts a password input
- `openai_organization` has been removed from the configuration options

🔧 chore: update OpenAIEmbeddings configuration options in the UI

The OpenAIEmbeddings configuration options in the UI have been updated to include the following changes:
- Added the `openai_organization` option to specify the OpenAI organization.
- Added the `openai_proxy` option to configure the OpenAI proxy.
- Added the `request_timeout` option to set the request timeout.
- Added the `show_progress_bar` option to control the visibility of the progress bar.
- Changed the `tiktoken_model_name` option to be a password field.
- Updated the documentation link for OpenAIEmbeddings.

This commit updates the configuration options to improve the usability and functionality of the OpenAIEmbeddings module in the UI.

🔧 chore: clean up unused code and remove unnecessary fields in the configuration file
📝 docs: update documentation link for the Chroma vectorstore module

🔧 chore: update configuration options for RecursiveCharacterTextSplitter in flow

The configuration options for the RecursiveCharacterTextSplitter node in the flow have been updated. The following changes were made:

- `chunk_size` option: The default value has been changed to 1000.
- `separator_type` option: The available options have been updated to include "Text", "cpp", "go", "html", "java", "js", "latex", "markdown", "php", "proto", "python", "rst", "ruby", "rust", "scala", "sol", and "swift".
- `separators` option: The default value has been changed to ".".

These changes were made to improve the usability and flexibility of the RecursiveCharacterTextSplitter node in the flow.

📝 chore(vector_store_grouped.json): add vector_store_grouped.json test data file

🔀 chore(vector_store_grouped.json): add vector_store_grouped.json test data file

🔨 refactor(test_graph.py): reformat import statements and improve code readability
🔨 refactor(test_prompts_template.py): change dynamic attribute to True for input variables, output parser, partial variables, template, and validate template
🔨 refactor(test_template.py): reformat import statements and remove duplicate import of BaseModel
🔨 refactor(test_template.py): update value for options in format_dict test
2023-12-12 16:46:41 -03:00
Gabriel Luiz Freitas Almeida
e3a2abacae Merge remote-tracking branch 'origin/dev' into merge 2023-12-12 15:45:53 -03:00
Gabriel Luiz Freitas Almeida
9770f67227 🐛 fix(types/components/index.ts): add duration field to validationStatusType to match the changes in chat.py
🐛 fix(chat.py): fix typo in variable name, change time_elapded to time_elapsed for consistency and readability
🐛 fix(chat.py): remove redundant duration information from params field in response object
 feat(chat.py): add duration field to response object to provide information about the time taken for the build process
🐛 fix(GenericNode/index.tsx): fix formatting issue in displaying duration and params in GenericNode component
🐛 fix(GenericNode/index.tsx): fix type annotation for line variable in map function
2023-12-12 13:28:49 -03:00
Gabriel Luiz Freitas Almeida
ccc457dbdb Add format_elapsed_time function to utils.py and display build duration in stream_build 2023-12-12 10:01:13 -03:00
Gabriel Luiz Freitas Almeida
9c58bfc584 🔧 chore(utils.py): refactor import statement to improve code readability and maintainability
🔧 chore(utils.py): refactor assignment of langchain.llm_cache to use a setter function for better encapsulation
2023-12-11 22:12:59 -03:00
Gabriel Luiz Freitas Almeida
05df751132 🐛 fix(utils.py): check if value_dict["value"] and value_dict["file_path"] are truthy before updating template field value and file path value respectively 2023-12-11 21:46:01 -03:00
Gabriel Luiz Freitas Almeida
debf495cf9 Refactor format_template field in FrontendNode 2023-12-11 21:45:32 -03:00
Gabriel Luiz Freitas Almeida
55d10b35b1 Refactor loading.py: Import modules and handle
retriever in instantiate_custom_component()
2023-12-11 19:11:34 -03:00
Gabriel Luiz Freitas Almeida
617acef214 Fix ValueError in ChromaComponent 2023-12-11 17:27:16 -03:00
Gabriel Luiz Freitas Almeida
0e7a1e75e4 🐛 fix(base.py): exclude format_template field from serialization to prevent it from being included in the serialized output
 feat(base.py): add format_template field to FrontendNode class to control whether the template should be formatted or not during serialization
🐛 fix(custom_components.py): exclude format_template field from serialization to prevent it from being included in the serialized output
 feat(custom_components.py): add format_template field to CustomComponentFrontendNode class to control whether the template should be formatted or not during serialization
2023-12-11 17:05:24 -03:00
Gabriel Luiz Freitas Almeida
2ae11c335c Fix formatting in types.py 2023-12-11 17:04:41 -03:00
Gabriel Luiz Freitas Almeida
6b996e2843 Fix embedding parameter order in ChromaComponent
constructor
2023-12-11 17:03:28 -03:00
Gabriel Luiz Freitas Almeida
aec93df799 Fix handling of empty string values in Vertex
class
2023-12-11 16:14:18 -03:00
Gabriel Luiz Freitas Almeida
e91b14373a Fix ChromaComponent document validation 2023-12-11 16:09:15 -03:00
Gabriel Luiz Freitas Almeida
65cf389bff Refactor BaiduQianfanChatEndpoints.py to use
SecretStr for sensitive keys
2023-12-11 14:53:53 -03:00
Gabriel Luiz Freitas Almeida
c8f2469c9f Refactor field handling in frontend nodes 2023-12-11 12:58:31 -03:00
Gabriel Luiz Freitas Almeida
a651d680ee Refactor custom component template creation to use FrontendNode 2023-12-11 12:39:29 -03:00
Gabriel Luiz Freitas Almeida
d6ad55ca4a Fix default value for name field 2023-12-11 12:35:08 -03:00
Gabriel Luiz Freitas Almeida
a0377c0ac7 🐛 fix(custom_component.py): rename build_template_config method to template_config for better naming consistency
🔧 chore(test_custom_component.py): update test_custom_component_build_template_config to use the renamed template_config property
2023-12-11 12:32:02 -03:00
Gabriel Luiz Freitas Almeida
0515ce4fb2 Add base class and output type to FrontendNode
model
2023-12-11 12:30:42 -03:00
Gabriel Luiz Freitas Almeida
17c6ed1db3 feat(base.py): add methods to get, update, and upsert fields in the Template class for easier field manipulation
🔧 chore(base.py): refactor Template class to improve code readability and maintainability
2023-12-11 12:30:03 -03:00
Gabriel Luiz Freitas Almeida
468e6d5745 🐛 fix(__main__.py): replace deprecated session.query() method with session.exec() to fix superuser creation issue 2023-12-11 12:23:38 -03:00
Gabriel Luiz Freitas Almeida
163564dacc Refactor serialize method in FrontendNode class 2023-12-11 08:25:10 -03:00
Gabriel Luiz Freitas Almeida
e2fe2364ea feat(base.py): add custom serialization method to FrontendNodeRequest class to remove unnecessary name field in the response 2023-12-11 08:24:18 -03:00
Lucas Oliveira
54064737e8 Merge branch 'bug/component_share' into dev 2023-12-10 22:35:20 -03:00
Gabriel Luiz Freitas Almeida
67ece64835 Fix options default value in TemplateField class 2023-12-10 20:45:56 -03:00
Gabriel Luiz Freitas Almeida
f055c99f5a 🔧 chore(field_typing): rename import_template_field() to _import_template_field() for internal use only
🐛 fix(field_typing): fix circular import issue by renaming import_template_field() to _import_template_field()
2023-12-10 20:33:55 -03:00
Gabriel Luiz Freitas Almeida
852afdc8a2 Refactor field_typing/__init__.py 2023-12-10 20:31:22 -03:00
Gabriel Luiz Freitas Almeida
7cfd5171d7 Import langflow.field_typing.constants in
__init__.py
2023-12-10 20:30:22 -03:00
Gabriel Luiz Freitas Almeida
3d4820144c Refactor import statements in __init__.py 2023-12-10 20:27:12 -03:00
Gabriel Luiz Freitas Almeida
00f5772d17
Merge branch 'dev' into float_range 2023-12-10 16:52:52 -03:00
Gabriel Luiz Freitas Almeida
cebae56507
Merge branch 'dev' into build_config_with_templatefield 2023-12-10 16:52:21 -03:00
Gabriel Luiz Freitas Almeida
f4628db481 Fix range_spec to rangeSpec 2023-12-10 16:50:38 -03:00