Commit graph

2,753 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
f0975ddf63 🚀 feat(langflow): add new chains to config.yaml and custom chains to interface/chains/custom.py
 feat(langflow): add new chains to config.yaml and custom chains to interface/chains/custom.py
The following chains were added to the config.yaml file: RetrievalQA, RetrievalQAWithSourcesChain, QAWithSourcesChain, ConversationalRetrievalChain, and CombineDocsChain. These chains were added to improve the functionality of the application and provide more options for users.

In addition, custom chains were added to the interface/chains/custom.py file. The CombineDocsChain was added to allow users to combine multiple documents into a single document for use in the question answering chains. The QA_CHAIN_TYPES constant was also added to the frontend_node/constants.py file to provide a list of available question answering chain types.
2023-06-07 19:48:51 -03:00
Gabriel Luiz Freitas Almeida
c8125b3386 🔀 refactor(customs.py): add load_qa_chain to CUSTOM_NODES
🔀 refactor(custom_lists.py): merge CUSTOM_AGENTS and CUSTOM_CHAINS into CUSTOM_NODES
🔀 refactor(loading.py): add instantiate_chains function to instantiate chains
🔀 refactor(base.py): add CustomChain class
The changes add support for a new chain called load_qa_chain to CUSTOM_NODES. CUSTOM_AGENTS and CUSTOM_CHAINS are merged into CUSTOM_NODES. A new function called instantiate_chains is added to instantiate chains. A new class called CustomChain is added to the base.py file. This class is used to define a custom chain.
2023-06-07 19:48:16 -03:00
Gabriel Luiz Freitas Almeida
b5ab95c4cc 🔨 refactor(custom.py): remove unused code
 feat(frontend_node): add extra fields to MemoryFrontendNode and ChainFrontendNode
The unused code in custom.py has been removed. The MemoryFrontendNode and ChainFrontendNode classes have been updated to include additional fields that are required for their respective templates. The MemoryFrontendNode now has a return_messages field, and the ChainFrontendNode now has a memory field. These fields are optional and can be toggled on or off as required.
2023-06-07 19:46:51 -03:00
Gabriel Luiz Freitas Almeida
2ca750f654 feat: add BaseRetriever as base class for VectorStores 2023-06-07 19:45:15 -03:00
Lucas Oliveira
62b33a19dc Changes to the menu structure 2023-06-07 19:44:52 -03:00
anovazzi1
5ab186bd88 Merge branch 'feat/node-toolbar' of personal:logspace-ai/langflow into feat/node-toolbar 2023-06-07 19:41:42 -03:00
anovazzi1
e148db41f0 keeping visual updates after node edition 2023-06-07 19:41:25 -03:00
Cristhian Zanforlin Lousa
354822813f adding tailwind animation 2023-06-07 19:40:16 -03:00
Cristhian Zanforlin Lousa
1373e336ff text-center input fields 2023-06-07 19:28:57 -03:00
Cristhian Zanforlin Lousa
b7c847930b adding index to alerts 2023-06-07 19:13:21 -03:00
Cristhian Zanforlin Lousa
dad98a47f6 formatting code 2023-06-07 18:59:47 -03:00
Cristhian Zanforlin Lousa
3cc8c8e6b5 changing code, export, python modal to shadcn ui 2023-06-07 18:59:11 -03:00
Alexandre Henrique
5862f19c20 Merge branch 'add_extra_fields_documentloaders' of https://github.com/logspace-ai/langflow into add_extra_fields_documentloaders 2023-06-07 16:52:58 -03:00
Gabriel Luiz Freitas Almeida
af6a8b902a fix: initialize_agent now is called AgentInitializer 2023-06-07 16:42:12 -03:00
Gabriel Luiz Freitas Almeida
259b66bb00 fix: vertex_type now comes directly from template.type_name 2023-06-07 16:41:48 -03:00
Alexandre Henrique
1c98506a5f Added RecursiveCharacterTextSplitter method 2023-06-07 16:40:46 -03:00
Alexandre Henrique
feb3423101 Added RecursiveCharacterTextSplitter method 2023-06-07 16:38:23 -03:00
Gabriel Luiz Freitas Almeida
b21bd3b8e0 fix: now the version badge text aligns when there's no version 2023-06-07 16:28:48 -03:00
Gabriel Luiz Freitas Almeida
bcba8e0931 Merge remote-tracking branch 'origin/main' into dev 2023-06-07 14:33:09 -03:00
anovazzi1
e3cfdcd136 update version 2023-06-07 10:54:46 -03:00
anovazzi1
b878e1af6a hotfix: fix bug that causes the blank screen 2023-06-07 10:53:45 -03:00
Gabriel Luiz Freitas Almeida
7bba3fd087 🐛 fix(chatModal): fix conditional statement to check for undefined and null values
The conditional statement in line 292 was not properly checking for undefined and null values, which could lead to unexpected behavior. The fix ensures that the statement checks for all falsy values, including undefined and null.
2023-06-07 06:25:08 -03:00
Gabriel Luiz Freitas Almeida
e7e510a218 fix: this commit tries to fix issue of blank UI 2023-06-06 23:31:06 -03:00
Gabriel Luiz Freitas Almeida
72afbb834c 🐛 fix(__main__.py): fix typo in sendAll function URL
 feat(__main__.py): add banner with title and info text to be displayed on server start
🐛 fix(App.tsx): fix API endpoint URL
The sendAll function URL had an extra forward slash. The API endpoint URL in App.tsx was incorrect and has been fixed. A banner with a title and info text has been added to be displayed on server start to provide users with more information about the application.
2023-06-06 23:29:42 -03:00
Cristhian Zanforlin Lousa
b8aae5f702 starting migration modals to shadcn 2023-06-06 22:55:15 -03:00
Cristhian Zanforlin Lousa
c797b98984 changing the package.json installation 2023-06-06 18:32:39 -03:00
Cristhian Zanforlin Lousa
a2137364a4 adding edit nodes 2023-06-06 18:30:33 -03:00
Cristhian Zanforlin Lousa
de37410e54 adding validator when there are no options 2023-06-06 18:11:38 -03:00
Gabriel Luiz Freitas Almeida
496ad0ede5 Merge remote-tracking branch 'origin/dev' into add_extra_fields_documentloaders 2023-06-06 17:48:13 -03:00
Gabriel Luiz Freitas Almeida
9823b4c9c5
🚀 feat(customs.py): re-add PythonFunction to CUSTOM_NODES (#450) 2023-06-06 17:47:24 -03:00
Gabriel Luiz Freitas Almeida
683b7ab4d0 🚀 feat(config.yaml): add PythonFunction to the list of available tools
The PythonFunction tool has been added to the list of available tools in the config.yaml file. This allows the backend to use Python functions as part of the language processing pipeline.
2023-06-06 17:41:17 -03:00
Gabriel Luiz Freitas Almeida
2feeeb9ecd 🐛 fix(flow.py): make flow field optional to allow creation of flows without a flow
🧪 test(test_database.py): add test case for creating flows without a flow
The flow field is now optional to allow creation of flows without a flow. This is useful when creating a flow that will be populated later. A test case was added to ensure that flows can be created without a flow.
2023-06-06 17:37:05 -03:00
Gabriel Luiz Freitas Almeida
1d33933d64 🐛 fix(__main__.py): make database_url parameter optional in update_settings function
🐛 fix(llms.py): add name check before checking if "azure" is in name.lower()
🔨 refactor(test_database.py): rename updated_flow_style variable to to_update_flow_style for clarity
The update_settings function now has an optional database_url parameter to allow for more flexibility in updating settings. The llms.py file now checks if the name variable is not None before checking if "azure" is in name.lower(). In test_database.py, the updated_flow_style variable is renamed to to_update_flow_style for clarity.
2023-06-06 16:30:34 -03:00
Gabriel Luiz Freitas Almeida
ce9b3bfbd3 🎨 refactor(schemas.py): add FlowListRead schema and SQLModelSerializable base model
The FlowListRead schema is added to support reading a list of flows with their styles. The SQLModelSerializable base model is added to support serialization of SQLModel objects to JSON using orjson. This improves performance and reduces memory usage.

🐛 fix(flow.py): add optional style relationship to Flow model
The style relationship is now optional to allow for flows without styles. This is achieved by setting the uselist parameter of the sa_relationship_kwargs to False.

 feat(flow.py): add FlowReadWithStyle and FlowUpdate models
The FlowReadWithStyle model is added to support reading a flow with its style. The FlowUpdate model is added to support updating a flow.
2023-06-06 16:24:56 -03:00
Gabriel Luiz Freitas Almeida
32ae6fe0ef 🎉 feat(flow_style.py): add FlowStyle model and its CRUD classes
The FlowStyle model is added to the project, which represents the style of a flow. It has a color and an emoji field, and a foreign key to the Flow model. The CRUD classes are also added to the file, which are FlowStyleCreate, FlowStyleRead, and FlowStyleUpdate. These classes are used to create, read, and update FlowStyle instances respectively.
2023-06-06 16:24:20 -03:00
Gabriel Luiz Freitas Almeida
cac0cbc374 🔥 chore(flow_styles.py): remove unused imports and update comments
The imports for the deleted FlowStyle model are removed from flow_styles.py. The comments for the FlowStyleCreate class are updated to reflect the fields it contains.
2023-06-06 16:24:01 -03:00
Gabriel Luiz Freitas Almeida
183f80b1fc 🔥 chore(database.py): remove unused code and endpoints related to flows
 feat(router.py): add new routers for flows and flow styles
🔧 refactor(__init__.py): add new routers to __all__ list
🔧 refactor(conftest.py): update import statement for get_session function
The unused code and endpoints related to flows have been removed from the database.py file. New routers for flows and flow styles have been added to the router.py file. The __all__ list in the __init__.py file has been updated to include the new routers. The import statement for the get_session function in the conftest.py file has been updated to reflect the new location of the function.
2023-06-06 16:23:37 -03:00
Gabriel Luiz Freitas Almeida
f5f0983116 Merge remote-tracking branch 'origin/dev' into db 2023-06-06 12:57:46 -03:00
Gabriel Luiz Freitas Almeida
0eb60c0bf0
API Refactor and structure changes (#449) 2023-06-06 12:52:41 -03:00
Gabriel Luiz Freitas Almeida
73bad871f2 🐛 fix(llms.py): add null check for name variable in azure field formatting
The code was updated to add a null check for the name variable before checking if it contains the string "azure". This prevents a potential runtime error if the name variable is null.
2023-06-06 11:44:57 -03:00
Gabriel Luiz Freitas Almeida
3de23e345f 🚀 feat(customs.py): add PythonFunction to CUSTOM_NODES
🚀 feat(loading.py): add support for PythonFunction node type
🚀 feat(constants.py): add PythonFunction to CUSTOM_TOOLS
🚀 feat(custom.py): add PythonFunction class
🚀 feat(frontend_node/tools.py): add PythonFunctionNode class
🧪 test(test_custom_types.py): add test for PythonFunction class
🧪 test(test_llms_template.py): comment out tests for AzureOpenAI and AzureChatOpenAI
The changes add support for a new node type, PythonFunction, which allows users to define a Python function to be executed. The node type is added to CUSTOM_NODES in customs.py, and support for the node type is added to loading.py. The node type is also added to CUSTOM_TOOLS in constants.py, and the PythonFunction class is added to custom.py. The PythonFunctionNode class is added to frontend_node/tools.py. Tests for the new PythonFunction class are added to test_custom_types.py. Tests for AzureOpenAI and AzureChatOpenAI are commented out in test_llms_template.py.
2023-06-06 11:40:39 -03:00
Gabriel Luiz Freitas Almeida
94b346196b
Initial support for Azure LLM nodes. (#443) 2023-06-06 10:14:31 -03:00
Gabriel Luiz Freitas Almeida
478bb446c3 🐛 fix(frontend): add missing api/v1 prefix to API routes
🐛 fix(frontend): add missing api/v1 prefix to WebSocket URL
🐛 fix(frontend): add missing api/v1 prefix to Vite proxy target
The API routes, WebSocket URL, and Vite proxy target were missing the "api/v1" prefix, causing the frontend to not be able to communicate with the backend. This commit adds the missing prefix to all three locations to fix the issue.
2023-06-06 10:06:14 -03:00
Gabriel Luiz Freitas Almeida
228f938cd8 🔨 refactor(types.py): move extract_input_variables_from_prompt import to interface.utils module
🔨 refactor(custom.py, loading.py, prompts/custom.py, run.py): update import statements to use extract_input_variables_from_prompt from interface.utils module
🔨 refactor(run.py): remove unused imports and functions
🔨 refactor(utils.py): add type hinting to extract_input_variables_from_prompt function and remove unused imports
The extract_input_variables_from_prompt function has been moved to the interface.utils module to improve code organization. The import statements in the affected modules have been updated to reflect this change. Unused imports and functions have been removed from the run.py module. Type hinting has been added to the extract_input_variables_from_prompt function in the interface.utils module.

🚀 feat(processing): add processing module with get_result_and_steps and fix_memory_inputs functions
The processing module was added to the project with two functions: get_result_and_steps and fix_memory_inputs. The get_result_and_steps function extracts the result and thought from a LangChain object and returns them. The fix_memory_inputs function checks if a LangChain object has a memory attribute and if that memory key exists in the object's input variables. If not, it gets a possible new memory key using the get_memory_key function and updates the memory keys using the update_memory_keys function.
2023-06-06 10:05:46 -03:00
Gabriel Luiz Freitas Almeida
3bfee4d445 🚀 feat(graph): add from_payload class method to Graph class
🚀 feat(utils.py): import extract_input_variables_from_prompt from langflow.interface.utils
The `from_payload` class method is added to the `Graph` class to create a graph from a payload. This method takes a dictionary as input and returns a `Graph` object. The `extract_input_variables_from_prompt` function is imported from `langflow.interface.utils` to extract input variables from a prompt. This function is used in other parts of the codebase to extract input variables from prompts.
2023-06-06 10:05:01 -03:00
Gabriel Luiz Freitas Almeida
7f4eea1e59 🚀 feat(chat): add ChatManager and ChatHistory classes to manage chat history and active connections
 feat(utils.py): add process_graph function to process graph data and generate result and thought
The ChatManager class manages active connections and chat history. The ChatHistory class manages the chat history for a client. The process_graph function processes graph data and generates a result and thought. This function is used in the ChatManager class to generate a response back to the frontend.
2023-06-06 10:02:21 -03:00
Gabriel Luiz Freitas Almeida
2bfe93e0b8 🚀 feat(langflow): add new API endpoints for chat, validation, and version
This commit adds new API endpoints for chat, validation, and version. The chat endpoint is a websocket endpoint for chat. The validation endpoint has three sub-endpoints for validating code, prompt, and node. The version endpoint returns the version of LangFlow.
2023-06-06 10:01:44 -03:00
Gabriel Luiz Freitas Almeida
3e5878ddc2 🎉 feat(langflow): add new files base.py and callback.py
The base.py file contains the following classes and functions:
- CacheResponse: a pydantic BaseModel that represents a response containing a dictionary of data
- Code: a pydantic BaseModel that represents a code string
- Prompt: a pydantic BaseModel that represents a prompt template string
- CodeValidationResponse: a pydantic BaseModel that represents a response containing the validation results of code
- PromptValidationResponse: a pydantic BaseModel that represents a response containing the validation results of a prompt
- validate_prompt: a function that validates a prompt template string and returns a PromptValidationResponse object
- check_input_variables: a function that checks if input variables contain invalid characters and returns a list of fixed input variables

The callback.py file contains the following classes:
- AsyncStreamingLLMCallbackHandler: an AsyncCallbackHandler that handles streaming LLM responses asynchronously
- StreamingLLMCallbackHandler: a BaseCallbackHandler that handles streaming LLM responses

These files were added to provide support for Langflow's backend API.
2023-06-06 10:01:18 -03:00
Gabriel Luiz Freitas Almeida
bdbb4a8127 🚀 feat(api): add versioning to the API and restructure the router
The API now has versioning, with the prefix "/api/v1". The router has been restructured to include the chat, endpoints, and validate routers. This improves the organization of the code and makes it easier to add new routers in the future.
2023-06-06 10:00:38 -03:00
Gabriel Luiz Freitas Almeida
ac42e8a66c chore: remove refactored files 2023-06-06 10:00:15 -03:00