Commit graph

2,217 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
bdd2076deb 🔒 chore(loading.py): remove code that deletes files after loading in instantiate_documentloader function
The save_uploaded_file function now uses the folder_name parameter instead of file_name to improve semantics. The appdirs library is now used to get the user cache directory and a folder for langflow cache is created. The sha256 hash of the file content is now used as the file name to avoid collisions and improve security. A folder is now created for each flow_id in the save_uploaded_file function. The code that deletes files after loading in the instantiate_documentloader function has been removed as it is unnecessary and can cause issues.
🐛 fix(endpoints.py): change file_name parameter to folder_name in save_uploaded_file function
🔒 chore(utils.py): use appdirs to get user cache directory and create a folder for langflow cache
🔒 chore(utils.py): use sha256 hash of file content as file name to avoid collisions and improve security
🔒 chore(utils.py): create folder for each flow_id in save_uploaded_file function
2023-06-21 15:43:27 -03:00
Gabriel Luiz Freitas Almeida
59deed4009 🔨 refactor(inputFileComponent): remove unused flows and tabIndex variables, use tabId instead
The flows and tabIndex variables were not being used in the component, so they were removed. The tabId variable from the TabsContext is now being used instead to upload the file to the correct tab.
2023-06-21 13:42:52 -03:00
Gabriel Luiz Freitas Almeida
a42b6587c5 🔧 chore(config.yml): update Swagger API overview and paths
The Swagger API overview and paths have been updated to reflect the latest changes in the API. The changes include adding support for a new environment variable, `process.env.PORT`, to allow the application to run on a configurable port. Additionally, the Swagger API documentation has been updated to reflect the latest API version and routes.

🔍 chore(links): update links to use HTTPS instead of HTTP
The links were updated to use HTTPS instead of HTTP to improve security and prevent potential man-in-the-middle attacks.

🚨 fix(Openapi.json): fix invalid JSON syntax by removing trailing comma
The Openapi.json file had an invalid JSON syntax due to a trailing comma in the "file_path" field. This commit removes the trailing comma to fix the syntax error.

🔥 chore(test_graph.py): remove unnecessary comments and assertions
🚀 feat(test_graph.py): add file creation and deletion to test_file_tool_node_build and test_toolkit_node_build
The comments and assertions that were removed were unnecessary and did not add any value to the code. The test_file_tool_node_build and test_toolkit_node_build tests now create a file and delete it after the test is run. This ensures that the tests are self-contained and do not leave any artifacts behind.
2023-06-21 11:17:48 -03:00
Gabriel Luiz Freitas Almeida
57f322a0e6 🔥 refactor(endpoints.py): rename client_id to flow_id in create_upload_file endpoint
 feat(endpoints.py): add UploadFileResponse schema to standardize upload file response
The client_id parameter in the create_upload_file endpoint has been renamed to flow_id to improve semantics. The UploadFileResponse schema has been added to standardize the response of the create_upload_file endpoint. The response now includes the flowId and file_path fields.
2023-06-21 10:33:33 -03:00
Gabriel Luiz Freitas Almeida
c26ecd3bda 🔥 refactor(base.py): remove unused import statement
The import statement for cache_utils in base.py was not being used and has been removed.
2023-06-21 10:29:36 -03:00
Gabriel Luiz Freitas Almeida
5ad0bc6b65 🐛 fix(endpoints.py): add try-except block to handle exceptions when saving uploaded files
 feat(utils.py): remove unused functions and add docstring to save_uploaded_file function
The try-except block in the create_upload_file function handles exceptions that may occur when saving uploaded files. The save_uploaded_file function now has a docstring that explains its purpose and returns the path to the saved file. The unused functions save_cache and load_cache have been removed.
2023-06-21 10:27:56 -03:00
Gabriel Luiz Freitas Almeida
a81a99f1c4 🎨 style(inputFileComponent): refactor file upload to use a separate function
The file upload functionality has been refactored to use a separate function called uploadFile, which is imported from the API controller. This improves the separation of concerns and makes the code more modular.
2023-06-21 10:21:20 -03:00
Gabriel Luiz Freitas Almeida
5216b519e0 🚀 feat(API): add uploadFile function to upload files to the server
The uploadFile function allows the user to upload a file to the server. It takes in a file and an ID of the flow to upload the file to. The function creates a FormData object and appends the file to it. It then sends a POST request to the server with the FormData object as the body. The server responds with a Promise containing the response data.
2023-06-21 10:21:05 -03:00
Gabriel Luiz Freitas Almeida
0d7df8a330 🚀 feat(api): add UploadFileTypeAPI type definition
This commit adds a new type definition for the UploadFileTypeAPI, which includes a single property file_path of type string. This type will be used to define the response of an API endpoint that handles file uploads.
2023-06-21 10:20:48 -03:00
Gabriel Luiz Freitas Almeida
1489da241d update lock 2023-06-21 10:09:02 -03:00
Gabriel Luiz Freitas Almeida
0dd16ee794 Merge remote-tracking branch 'origin/dev' into multipart_endpoint 2023-06-21 10:07:14 -03:00
Gabriel Luiz Freitas Almeida
2029b08d2e Merge remote-tracking branch 'origin/main' into dev 2023-06-20 16:18:37 -03:00
Rodrigo Nader
ba7157f155
Fix remove api key condition (#518)
Condition was reversed.
2023-06-20 16:17:43 -03:00
anovazzi1
8f86acecb0
zoom out 10x bigger (#517)
increase the zoom out limit of the flow
2023-06-20 16:14:18 -03:00
Gabriel Luiz Freitas Almeida
1c7485bb64 🔖 chore(pyproject.toml): bump version to 0.1.5
The version number has been updated from 0.1.4 to 0.1.5 to reflect the changes made in the package. This is a chore commit as it does not add any new features or fix any bugs, but rather updates the version number.
2023-06-20 16:12:47 -03:00
Gabriel Luiz Freitas Almeida
5f5bf06ab2 🐛 fix(flows.py): fix conditional statement in update_flow function
The conditional statement in the update_flow function was incorrect. The if statement was checking for the opposite of what was intended. The fix changes the if statement to check for the correct condition.
2023-06-20 16:11:33 -03:00
anovazzi1
46a30cf92e zoom out 10x bigger 2023-06-20 15:45:48 -03:00
Carlos Coelho
272be9f566
Update README.md
added discord link
2023-06-19 22:21:43 -03:00
Rodrigo Nader
53ff28ecde
Update README.md 2023-06-19 22:08:30 -03:00
Rodrigo Nader
06dbfb5faf
Update README.md (#515) 2023-06-19 21:43:39 -03:00
Rodrigo Nader
bf869232f7
Update README.md 2023-06-19 21:43:30 -03:00
Lucas Oliveira
c969bcca78 Fixed spearator 2023-06-19 19:33:07 -03:00
Gabriel Luiz Freitas Almeida
f511ddc20f Merge remote-tracking branch 'origin/main' into dev 2023-06-19 17:17:07 -03:00
Gustavo Schaedler
fa2d2fbc97
Small bugfixes and improvements (#514)
# Pull Request Description

## Summary

This Pull Request includes several code improvements, refactoring,
feature additions, and documentation updates mainly focused on enhancing
the functionality and maintainability of the codebase.

## Details

### Refactoring and Improvements:

- **Commit (5ea20aa) by @ogabrielluiz**: Unnecessary indentation in the
`getPythonCode` function within `constants.tsx` has been removed to
improve code readability.

- **Commit (6886828) by @ogabrielluiz**: 
- Changed the `load_flow_from_json` function signature in `process.py`
to accept either a JSON file path or a JSON object.
- Updated the import statement for `Chain` in `base.py` to be more
explicit by importing it from `langchain.chains.base` instead of
`langflow.graph.vertex.types`.
- Removed a print statement from the `process_tweaks` function in
`process.py`.
- Added an optional `tweaks` parameter to the `load_flow_from_json`
function.
- Changed the return type of the `build` method in the `Graph` class
from `List[Vertex]` to `Chain`.

- **Commit (83c28dc) by @ogabrielluiz**: The `process_tweaks` function
in `process.py` has been refactored to improve readability and
maintainability. An `apply_tweaks` function was added to apply tweaks to
the node, and a `validate_input` function was added for input
validation. The function now raises a `ValueError` if the input is not
in the expected format.

- **Commit (11185af) by @ogabrielluiz**: Refactored the
`fix_memory_inputs` function in `process.py` to improve readability by
reducing nesting. The function now checks if the `langchain_object` has
a `memory` attribute and if it is not `None` before proceeding. The
try-except block was also refactored to reduce nesting.

- **Commit (f180fa6) by @ogabrielluiz**: The input parameter in
`process.py` has been changed to accept a `Path` object in addition to a
string or dictionary, improving the flexibility of the function and
allowing for easier file handling.

### Features:

- **Commit (8a5525f) by @ogabrielluiz**: The `getPythonCode` function in
`constants.tsx` now accepts a `tweaks` parameter which is used to
customize the behavior of the flow. A `buildTweaks` function generates
the `tweaks` object which is passed to the `load_flow_from_json`
function.

- **Commit (c5d6f48) by @ogabrielluiz**: Added a `build_and_install`
target to the `Makefile` to build the package and install it without
running it. This is useful for building and installing on a remote
server. Additionally, fixed the path to the `langflow.main` module in
the backend target of the `Makefile`.

### Documentation:

- **Commit (76a1265) by @ogabrielluiz**: Updated the Langflow API usage
example in `README.md` to reflect the new API endpoint URL. Added a new
optional `tweaks` parameter to the `run_flow` function for flow
customization and updated the example code accordingly.

### Other:

- **Commit (0dcd93e) by @lucaseduoli**: Added Discord and Twitter icons,
and GitHub stars.

- **Commit (0dcd93e) by @lucaseduoli**: Fixed the Twitter link.
2023-06-19 21:10:41 +01:00
Gabriel Luiz Freitas Almeida
7b2849260c 🔖 chore(pyproject.toml): bump version to 0.1.4
The version number has been updated from 0.1.3 to 0.1.4. This is a chore commit as it does not introduce any new features or bug fixes, but rather updates the version number to reflect changes made in the package.
2023-06-19 16:27:08 -03:00
Lucas Oliveira
b616e0dd42 fixed twitter link 2023-06-19 16:16:58 -03:00
Lucas Oliveira
9be559397b removed api key 2023-06-19 16:14:25 -03:00
Gabriel Luiz Freitas Almeida
825f2798c3 🐛 fix(chat.py): fix node to vertex variable name in stream_build function
 feat(chat.py): add progress logging to stream_build function
The variable node was renamed to vertex to improve semantics and consistency with the naming conventions. Progress logging was added to the stream_build function to provide feedback to the user on the progress of the build process.

🐛 fix(index.tsx): fix typo in setSuccessData function call
 feat(index.tsx): add success logging to handleBuild function
A typo in the setSuccessData function call was fixed. Success logging was added to the handleBuild function to provide feedback to the user on the success of the build process.
2023-06-19 16:03:25 -03:00
Lucas Oliveira
0dcd93ef92 added discord and twitter icons, added github stars 2023-06-19 15:45:26 -03:00
Gabriel Luiz Freitas Almeida
c5d6f487fa feat(Makefile): add build_and_install target to build and install package without running it
The path to the langflow.main module was incorrect, causing the backend target to fail. The path has been updated to the correct location.

The build_and_install target has been added to build the package and install it without running it. This is useful when the package needs to be built and installed on a remote server.
🐛 fix(Makefile): fix path to langflow.main module in backend target
2023-06-19 14:28:29 -03:00
Gabriel Luiz Freitas Almeida
f180fa6f26 🐛 fix(process.py): change input parameter type hint to include Path type
The input parameter now accepts a Path object in addition to a string or dictionary. This improves the flexibility of the function and allows for easier file handling.
2023-06-19 14:25:10 -03:00
Gabriel Luiz Freitas Almeida
8a5525f465 🚀 feat(constants.tsx): add tweaks parameter to getPythonCode function to allow for customization of flow behavior
The `getPythonCode` function now accepts a `tweaks` parameter which is used to customize the behavior of the flow. The `buildTweaks` function is called to generate the `tweaks` object which is then passed to the `load_flow_from_json` function. This allows for more flexibility in the usage of the flow.
2023-06-19 14:24:48 -03:00
Gabriel Luiz Freitas Almeida
98f3c708e4 🚚 chore(pyproject.toml): move dev dependencies to group.dev
The dev dependencies were moved to the group.dev section to improve the organization of the pyproject.toml file.
2023-06-19 12:49:36 -03:00
Gabriel Luiz Freitas Almeida
76a1265eee 📝 docs(README.md): update Langflow API usage example and add tweaks parameter
The Langflow API usage example has been updated to reflect the new API endpoint URL. Additionally, a new optional `tweaks` parameter has been added to the `run_flow` function to allow customization of the flow. The example code has been updated to demonstrate how to use the `tweaks` parameter.
2023-06-19 12:37:33 -03:00
Gabriel Luiz Freitas Almeida
11185affdd 🐛 fix(process.py): refactor fix_memory_inputs function to improve readability and reduce nesting
The fix_memory_inputs function was refactored to reduce nesting and improve readability. The function now checks if the langchain_object has a memory attribute and if it is not None before proceeding. The try-except block was also refactored to reduce nesting.
2023-06-19 12:02:15 -03:00
Gabriel Luiz Freitas Almeida
83c28dcabe 🔨 refactor(process.py): refactor process_tweaks function to improve readability and maintainability
 feat(process.py): add input validation to process_tweaks function
The process_tweaks function has been refactored to improve readability and maintainability. The apply_tweaks function has been added to apply the tweaks to the node. The validate_input function has been added to validate the input parameters. The process_tweaks function now raises a ValueError if the input is not in the expected format.
2023-06-19 11:59:34 -03:00
Gabriel Luiz Freitas Almeida
6886828ddd 🔀 refactor(process.py): change load_flow_from_json function signature to accept either a JSON file path or a JSON object
🔀 refactor(base.py): import Chain from langchain.chains.base instead of importing it from langflow.graph.vertex.types
🔀 refactor(process.py): remove print statement from process_tweaks function
🔀 refactor(process.py): change load_flow_from_json function signature to accept optional tweaks parameter
🔀 refactor(process.py): change return type of build method in Graph class from List[Vertex] to Chain
🧪 test(loading.py): add test case for loading a flow from a JSON file and applying tweaks
🧪 test(loading.py): remove unused import statement
The import statement for Chain in base.py is now more explicit and imports it from langchain.chains.base instead of importing it from langflow.graph.vertex.types. The load_flow_from_json function in process.py now accepts either a JSON file path or a JSON object. The print statement in process_tweaks function has been removed. The load_flow_from_json function in process.py now accepts an optional tweaks parameter. The return type of the build method in the Graph class has been changed from List[Vertex] to Chain. A new test case has been added to loading.py to test loading a flow from a JSON file and applying tweaks. An unused import statement has been removed from loading.py.
2023-06-19 11:36:43 -03:00
Gabriel Luiz Freitas Almeida
7b165ad5d2 🐛 fix(Dockerfile): remove unnecessary files after installing dependencies
🚀 chore(pyproject.toml): rename dev-dependencies to dev.dependencies
The Dockerfile now removes unnecessary files after installing dependencies to reduce the image size. The pyproject.toml file now uses the correct naming convention for dev dependencies, which is dev.dependencies instead of dev-dependencies.
2023-06-19 11:24:03 -03:00
Gabriel Luiz Freitas Almeida
899b0b13f0
dockerfile update (#497) 2023-06-19 14:22:35 +00:00
Gabriel Luiz Freitas Almeida
5ea20aa2f0 🔨 refactor(constants.tsx): remove unnecessary indentation in getPythonCode function
The indentation of the commented line in the getPythonCode function was unnecessary and has been removed to improve code readability.
2023-06-19 10:55:18 -03:00
Gustavo Schaedler
8b71af9848
Fix to launching on Windows (#511)
Fallback to previous launch if on Windows.

Fixes #502
2023-06-19 14:09:06 +01:00
Gabriel Luiz Freitas Almeida
a3f902d479 🔖 chore(pyproject.toml): bump version to 0.1.3
The version number has been updated from 0.1.2 to 0.1.3 to reflect the changes made in the package. This is a chore commit as it does not add any new features or fix any bugs, but rather updates the version number.
2023-06-19 09:59:10 -03:00
Gabriel Luiz Freitas Almeida
e01993b7f1 🐛 fix(__main__.py): add support for running Langflow on Windows
 feat(__main__.py): add support for running Langflow on MacOS and Linux using gunicorn
The changes add support for running Langflow on Windows by using uvicorn instead of gunicorn. This is because Windows doesn't support gunicorn. The changes also add support for running Langflow on MacOS and Linux using gunicorn. This is because MacOS requires an env variable to be set to use gunicorn.
2023-06-19 09:55:29 -03:00
Gabriel Luiz Freitas Almeida
422b922a71 Merge remote-tracking branch 'origin/main' into dev 2023-06-18 10:02:50 -03:00
Gabriel Luiz Freitas Almeida
5e1ff76118
🔼 chore(pyproject.toml): update dependencies to latest versions (#509) 2023-06-18 12:32:01 +00:00
Gabriel Luiz Freitas Almeida
dfb7d2db7f 🔼 chore(pyproject.toml): update dependencies to latest versions
This commit updates the dependencies in the pyproject.toml file to their latest versions. Specifically, fastapi is updated to version 0.97.0, uvicorn is updated to version 0.22.0, typer is updated to version 0.9.0, rich is updated to version 13.4.2, llama-cpp-python is updated to version ~0.1.0, pyarrow is updated to version 12.0.0, and weaviate-client is updated to version 3.21.0.
2023-06-18 09:30:12 -03:00
Gabriel Luiz Freitas Almeida
b383934946
build(deps-dev): bump vite from 4.3.5 to 4.3.9 in /src/frontend (#508) 2023-06-18 12:15:45 +00:00
dependabot[bot]
7111bee8db
build(deps-dev): bump vite from 4.3.5 to 4.3.9 in /src/frontend
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.5 to 4.3.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.3.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-18 12:05:35 +00:00
Gabriel Luiz Freitas Almeida
74278ba1c7 Merge remote-tracking branch 'origin/main' into dev 2023-06-18 08:44:23 -03:00
Rodrigo Nader
663c5c0ed4
Update README.md (#506) 2023-06-18 02:32:18 -03:00