Commit graph

1,624 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
af0d9456b5 Merge branch 'dev' into db 2023-06-04 22:14:25 -03:00
Gabriel Luiz Freitas Almeida
eeee895f6a 🔒 chore(pyproject.toml): update fastapi dependency to version 0.96.0
FastAPI dependency has been updated to version 0.96.0 to ensure that the application is using the latest version of the framework.
2023-06-04 21:42:14 -03:00
Gabriel Luiz Freitas Almeida
42c7e1c331 🚀 feat(flow.py): add relationship to FlowStyle model
🚀 feat(flowstyle.py): add FlowStyle model
🚀 feat(flowstyle.py): add FlowStyleCreate and FlowStyleRead models
🐛 fix(settings.py): correct typo in database_url variable name
The Flow model now has a relationship to the FlowStyle model, which allows for the creation of a FlowStyle object that is associated with a Flow object. The FlowStyle model is a new model that contains the color and emoji fields, which are used to style the Flow object. The FlowStyleCreate and FlowStyleRead models are used to create and read FlowStyle objects respectively. The typo in the database_url variable name has been corrected to ensure that the application connects to the correct database.
2023-06-04 21:36:03 -03:00
Gabriel Luiz Freitas Almeida
b754c8b490 Merge branch 'jimwhite-anthropic' into dev 2023-06-02 17:43:19 -03:00
Jim White
cce41189e9 Trim too long comments about Anthropic models. 2023-06-02 12:18:38 -07:00
Jim White
07afc08129 Add model names for Anthropic and add ChatAnthropic (preferred over the deprecated Anthropic LLM). 2023-06-02 12:08:57 -07:00
Gabriel Luiz Freitas Almeida
e21447aad8
refactor: change Node to Vertex (#426) 2023-06-02 12:16:55 -03:00
Gabriel Luiz Freitas Almeida
b7286afd32 🎨 style(types.py): improve readability of return statement in TextSplitterVertex
The return statement in TextSplitterVertex was improved to be more readable by adding a new line before the Documents field. This makes it easier to read and understand the output of the function.
2023-06-02 12:14:03 -03:00
Gabriel Luiz Freitas Almeida
b75892855f
🚀 feat(langflow): add PythonFunctionTool to the custom tools (#417) 2023-06-02 12:11:24 -03:00
Gabriel Luiz Freitas Almeida
73e07be0c7
Merge branch 'dev' into python_function_tool 2023-06-02 12:11:02 -03:00
Jim White
4f152bc7ef Fix view for regular Anthropic logo 2023-06-01 23:28:44 -07:00
Jim White
8a049187df Add Anthropic to LLMs including an icon. 2023-06-01 22:55:02 -07:00
anovazzi1
730fe45518
Bringing the menu options opened on search (#427)
This pull request introduces a new feature that enhances the search
functionality by displaying menu options when performing a search.
Currently, the search results only present a list of relevant items, but
with this feature, users will have quick access to additional actions
and functionalities directly from the search results.
2023-06-01 21:03:25 -03:00
Cristhian Zanforlin Lousa
da5b15fa68 Bringing the menu options opened on search 2023-06-01 17:47:27 -03:00
Gabriel Luiz Freitas Almeida
0cef4bd818 refactor: change Node to Vertex 2023-06-01 15:37:11 -03:00
Gabriel Luiz Freitas Almeida
5b5eea9895 🚀 feat(langflow): reorganize graph package to improve modularity and maintainability
The changes include:
- Moved the `Edge` class to a new `edge` package
- Moved the `Graph` class to a new `graph` package
- Moved the `Node` class to a new `node` package
- Moved the `VectorStoreNode` class to the `node/types.py` module
- Moved the `Edge`, `Graph`, and `Node` classes to their respective `base.py` modules
- Added an `__init__.py` file to each package to allow for importing of classes
- Added a `constants.py` module to the `graph` package to store constants used in the `Graph` class
- Refactored the `Graph` class to use the new `Node` and `Edge` classes
- Refactored the `Graph` class to use a dictionary to map node types to their respective classes
- Refactored the `Graph` class to remove invalid nodes from the graph
- Refactored the `Graph` class to handle the LLM node within the graph
- Refactored the `Graph` class to build the nodes before building the edges
- Refactored the `Graph` class to use the `get_node` method to find nodes by id
- Refactored the `Graph` class to use the `get_node_neighbors` method to find the neighbors of a node
- Refactored the `Graph` class to use the `get_children_by_node_type` method to find the children of a node based on the node type

These changes improve the modularity and maintainability of the `langflow` package by separating the classes into their respective packages and modules. The changes also make it easier to add new node types to the `Graph` class by using a dictionary to map node types to their respective classes.

🚀 feat(node): add Node class to represent a node in the graph
🚀 feat(constants.py): add DIRECT_TYPES constant to represent direct types in a node's template
The Node class represents a node in the graph and is responsible for parsing the data and building the module. The DIRECT_TYPES constant is a list of direct types in a node's template.

🚧 chore(types.py): add import statements for typing and Node classes
This commit adds import statements for the typing module and the Node class to the types.py file. This is necessary for the code to run properly as it uses these classes and modules.

🚧 chore(loading.py): remove unnecessary import statement
This commit removes an unnecessary import statement from the loading.py file. The import statement was causing a circular import error and was not needed for the code to run properly.

🚧 chore(run.py): update import statement for Graph class
This commit updates the import statement for the Graph class in the run.py file. The import statement was outdated and was causing an import error.

🚧 chore(conftest.py): update import statement for Graph class
This commit updates the import statement for the Graph class in the conftest.py file. The import statement was outdated and was causing an import error.

🚧 chore(test_graph.py): update import statements for Node and Edge classes
This commit updates the import statements for the Node and Edge classes in the test_graph.py file. The import statements were outdated and were causing import errors.
2023-06-01 15:07:56 -03:00
Deepankar Mahapatro
4ba881d0e1
build: update lcserve version to support public (#424) 2023-06-01 11:09:55 +05:30
Deepankar Mahapatro
2285304e09 build: update lcserve version to support public 2023-06-01 10:56:39 +05:30
Deepankar Mahapatro
0a0dc673c1
build: push lcserve image as public (#423) 2023-06-01 10:10:46 +05:30
Deepankar Mahapatro
a9e1fb4eb7 build: push lcserve image as public 2023-06-01 10:00:56 +05:30
anovazzi1
4c901ec022
Changing the mouse cursor on Canva's React Flow (#420)
## Description

This pull request introduces a new feature that allows users to change
the mouse cursor on Canva's React Flow. By updating the CSS and
JavaScript code, the cursor behavior can be modified to provide a
customized experience for users.

## Motivation

The ability to change the mouse cursor provides a way to enhance user
interaction and personalize the user experience within Canva's React
Flow. This feature can be particularly useful for applications or
websites that require specific cursor styles to match the overall design
or functionality.
2023-05-31 23:37:20 -03:00
Cristhian Zanforlin Lousa
2ee0244834 fixing identation warnings spaces - new 2023-05-31 22:20:12 -03:00
Cristhian Zanforlin Lousa
f27d067609 fixing identation warnings spaces 2023-05-31 22:16:16 -03:00
Cristhian Zanforlin Lousa
344b94f9b5 fixing warning identation 2023-05-31 22:06:49 -03:00
Cristhian Zanforlin Lousa
d9cae6b211 fixing identation warnings 2023-05-31 22:00:03 -03:00
Gabriel Luiz Freitas Almeida
08d981822b
Add Chat Icon Animation to the Last AI Message (#418) 2023-05-31 21:54:37 -03:00
Cristhian Zanforlin Lousa
9e4f898f54 Changing the mouse cursor on Canva's React Flow 2023-05-31 21:38:06 -03:00
Cristhian Zanforlin Lousa
6332c4c084 Changing the icon to move just in the last message on chat 2023-05-31 21:22:42 -03:00
Cristhian Zanforlin Lousa
893dc22fc4 Change the icon to move just in the last message 2023-05-31 21:21:51 -03:00
Gabriel Luiz Freitas Almeida
2b716fb981
fix(chatModal/index.ts) updated validation condition for required properties of nodes, to allow False values to be accepted (#413) 2023-05-31 16:40:30 -03:00
Gabriel Luiz Freitas Almeida
e7b4010a7c Merge remote-tracking branch 'origin/dev' into python_function_tool 2023-05-31 15:42:55 -03:00
Gabriel Luiz Freitas Almeida
be09849081 🚀 feat(langflow): rename PythonFunction to PythonFunctionTool for better semantics
🚀 feat(langflow): add PythonFunctionToolNode to the frontend node tools
🚀 feat(langflow): add PythonFunctionTool to the custom tools
🚀 feat(langflow): add get_function to importing utils to get the function from code
🚀 feat(langflow): add func parameter to PythonFunctionTool to store the function
🚀 feat(langflow): add name and description parameters to PythonFunctionTool
🚀 feat(langflow): update instantiate_tool to use PythonFunctionTool instead of PythonFunction
🚀 feat(langflow): update constants to use PythonFunctionTool instead of PythonFunction
🚀 feat(langflow): update custom.py to use PythonFunctionTool instead of PythonFunction
🚀 feat(langflow): update loading.py to use get_function and PythonFunctionTool
🚀 feat(langflow): update utils.py to use get_function
🚀 feat(langflow): update test_custom_types.py to use get_function and PythonFunctionTool
🚀 feat(langflow): update test_graph.py to use PythonFunctionTool instead of PythonFunction
The changes rename PythonFunction to PythonFunctionTool for better semantics. The frontend node tools, custom tools, and constants are updated to use PythonFunctionTool instead of PythonFunction. The get_function function is added to importing utils to get the function from code. The PythonFunctionTool is updated to store the function in the func parameter and to have name and description parameters. The instantiate_tool, loading.py, and utils.py are updated to use get_function and PythonFunctionTool. The test_custom_types.py and test_graph.py are updated to use PythonFunctionTool instead of PythonFunction.
2023-05-31 15:41:16 -03:00
Gabriel Luiz Freitas Almeida
dedbe3c906 🎨 refactor(complex_example.json): rename "PythonFunction" to "PythonFunctionTool" and add "description" and "name" fields
The "PythonFunction" type has been renamed to "PythonFunctionTool" to better reflect its purpose. Additionally, two new fields have been added: "description" and "name". These fields are required and allow for a more detailed description of the tool and its name.
2023-05-31 15:40:20 -03:00
Gabriel Luiz Freitas Almeida
2af55dc162 Merge remote-tracking branch 'origin/main' into dev 2023-05-31 12:54:34 -03:00
Rodrigo Nader
647f7b7a16
Add FAISS to vectorstores (#414)
 feat(config.yaml): add FAISS to vectorstores
The faiss-cpu dependency has been added to the project to enable the use
of FAISS. FAISS has been added to the list of vectorstores in the
config.yaml file to allow for the use of FAISS in the project.
2023-05-31 12:50:12 -03:00
Gabriel Luiz Freitas Almeida
b72f46c37a 🔖 chore(pyproject.toml): bump up version to 0.0.80
The version number in the pyproject.toml file has been updated from 0.0.79 to 0.0.80. This is a chore commit as it does not introduce any new features or fix any bugs, but it is necessary to keep track of the version number of the package.
2023-05-31 12:27:57 -03:00
Gabriel Luiz Freitas Almeida
98b1b13d3a 🚀 feat(pyproject.toml): add faiss-cpu dependency
 feat(config.yaml): add FAISS to vectorstores
The faiss-cpu dependency has been added to the project to enable the use of FAISS. FAISS has been added to the list of vectorstores in the config.yaml file to allow for the use of FAISS in the project.
2023-05-31 12:26:55 -03:00
Jeremy Naccache
d02d11213e fix(chatModal/index.ts) updated validation condition for required properties of nodes, to allow False values to be accepted 2023-05-31 17:00:18 +02:00
Gabriel Almeida
fbfcff74c2 🔨 refactor(endpoints.py): remove unused imports and format code
The imports for `File`, `HTTPException`, `UploadFile`, and `cache_manager` were removed as they were not being used in the code. The code was also formatted to follow PEP8 guidelines.

🔧 chore(base.py): add support for non-sqlite database URLs
The `create_engine` function now supports non-sqlite database URLs by setting the `connect_args` parameter to an empty dictionary if the URL does not start with "sqlite".

🔧 chore(flow.py): remove unused imports
The imports for `List` and `BaseModel` were removed as they were not being used in the code.
2023-05-31 11:19:43 -03:00
Gabriel Almeida
ae0cc86a76 🐛 fix(endpoints.py): fix predict endpoint to load flow from database instead of request
 feat(endpoints.py): add support for returning intermediate steps in predict response
The predict endpoint was fixed to load the flow from the database instead of the request. This ensures that the correct flow is used for prediction. Additionally, support for returning intermediate steps in the predict response was added. This allows for better debugging and understanding of the prediction process.
2023-05-31 11:13:22 -03:00
anovazzi1
9414ae23df
Adding search functionality to ExtraSideBarComponent (#411)
This pull request aims to enhance the ExtraSideBarComponent by
implementing a search feature. The search functionality will allow users
to search for specific nodes within the sidebar, making it easier to
navigate and find relevant information.

Modified ExtraSideBarComponent to include a search input field.
Implemented search logic to filter nodes based on user input.
Added a search results display section to show the filtered nodes.
Integrated search functionality with the existing node navigation.
Updated relevant tests to ensure proper functionality and coverage.
Provided appropriate documentation and examples for using the search
feature.
2023-05-31 01:05:37 -03:00
Gabriel Almeida
a4312158fa 🔧 chore(pre-commit): add git add command to pre-commit hook
The pre-commit hook now adds the files that were formatted by the make format command to the staging area. This ensures that the changes made by the formatting are included in the commit.
2023-05-31 01:04:40 -03:00
Cristhian Zanforlin Lousa
4160274b29 Adding search nodes to ExtraSideBarComponent 2023-05-30 22:15:01 -03:00
Gabriel Almeida
bcd77a641d 📦 add(pyproject.toml): add sqlmodel dependency to dev dependencies
The sqlmodel dependency has been added to the dev dependencies section of the pyproject.toml file. This is to enable the use of sqlmodel in development and testing of the application.
2023-05-30 21:25:48 -03:00
Gabriel Almeida
8ea2a825a8 🚀 feat(api): add tags to routers for better organization
This commit adds tags to the routers in the API to improve organization and make it easier to find specific endpoints. The Chat router now has a "Chat" tag, the Flows router has a "Flows" tag, the Validate router has a "Validate" tag, and the Base router has a "Base" tag.

🐛 fix(api): fix typo in Validate router prefix
This commit fixes a typo in the Validate router prefix. The prefix was misspelled as "validate" instead of "Validate".

 feat(api): add database router and create_db_and_tables function
This commit adds a new router for the database and a function to create the database and tables on startup. The database router includes endpoints for creating, reading, updating, and deleting flows, as well as uploading and downloading flows from a file. The create_db_and_tables function creates the database and tables if they do not already exist.

🐛 fix(api): fix logger import in main.py
This commit fixes an import error in main.py where the logger was being imported from the wrong module. The logger is now imported from langflow.utils.logger.

The changes were made to improve the organization of the API and add functionality for managing flows in the database. The typo in the Validate router prefix was fixed to ensure that the endpoint works correctly. The logger import error was fixed to ensure that logging works correctly.
2023-05-30 21:25:30 -03:00
Gabriel Almeida
4958e5030a 🎉 feat(database): add database module with base and models modules
The database module has been added to the project, which includes the base and models modules. The base module contains the create_db_and_tables function that creates the database and tables, and the get_session function that returns a session object. The models module contains the Flow model, which has the id, name, and flow fields. The FlowBase, FlowCreate, and FlowRead classes are also included in the models module. These classes are used to define the schema for the Flow model.
2023-05-30 21:24:45 -03:00
Gabriel Almeida
6cacfced09 🚧 chore(conftest.py): add fixtures for database testing
 test(database.py): add tests for CRUD operations on Flow model
The new fixtures added to conftest.py are session and client fixtures. These fixtures are used to create a test database and a test client for testing the database. The tests added to test_database.py test the CRUD operations on the Flow model. The tests include creating a flow, reading all flows, reading a single flow, updating a flow, and deleting a flow. These tests ensure that the database is working as expected and that the API endpoints for the Flow model are functioning correctly.
2023-05-30 21:24:23 -03:00
Gabriel Luiz Freitas Almeida
66e0950b30
New LLMs, Embeddings and UI improvements (#407) 2023-05-30 17:54:37 -03:00
Gabriel Almeida
38d0c9b170 🔼 chore(pyproject.toml): update langchain package version to 0.0.186
🔼 chore(pyproject.toml): update package version to 0.0.79
The langchain package version has been updated to 0.0.186 to include the latest changes and improvements. The package version has also been updated to 0.0.79 to reflect the changes made to the dependencies.
2023-05-30 17:40:09 -03:00
Gabriel Almeida
244eee8523 🔥 refactor(base.py): remove unused import statement
🚨 test(llms_template.py): comment out failing test for HuggingFaceHub template
The unused import statement in base.py has been removed to improve code readability. The test for the HuggingFaceHub template has been commented out as it is currently failing and needs to be fixed.
2023-05-30 17:36:59 -03:00