Commit graph

2,526 commits

Author SHA1 Message Date
gustavoschaedler
cf7cd979dc feat: Add ClassCodeExtractor and is_valid_class_template functions, and custom_component endpoint
This commit adds a new file called `extract_info_from_class.py` containing a `ClassCodeExtractor` class that can extract information (imports, class details and functions) from a Python class code. It also adds a function called `is_valid_class_template` that checks if a given Python class code matches a certain template. Additionally, the commit adds a new endpoint in the `/custom_component` route of `endpoints.py` that returns a dictionary of all `langchain` types created by a specific creator. Finally, the commit adds a new section to `types.py` named `template_node`, which describes a default dictionary that can be used to define a new node for Langflow's template editor.
2023-06-23 02:54:43 +01:00
Cristhian Zanforlin Lousa
7a61791058 🐛 fix(chatMessage): remove unnecessary text-sm class from message sender name to improve readability 2023-06-22 22:51:21 -03:00
Cristhian Zanforlin Lousa
bc1d6885ed 🔧 chore(frontend): fix formatting issues in multiple files
🚀 feat(frontend): add hover effect to file search icon in InputFileComponent
🚀 feat(frontend): add support for dark mode in alert icons
🚀 feat(frontend): add support for dark mode in dropdown chevron icon
🚀 feat(frontend): add support for dark mode in success alert icon
🚀 feat(frontend): add support for dark mode in notice alert icon
🚀 feat(frontend): add support for dark mode in error alert icon
🚀 feat(frontend): add support for process.env.PORT environment variable to be able to run app on a configurable port
🚀 feat(frontend): add parameter types to GenericNode component
🚀 feat(frontend): add hover effect to external link icon in CodeAreaComponent
🚀 feat(frontend): add hover effect to plus icon in MenuBar component
🚀 feat(frontend): add hover effect to settings icon in MenuBar component
🚀 feat(frontend): add hover effect to undo icon in MenuBar component
🚀 feat(frontend): add hover effect to redo icon in MenuBar component

🎨 style(inputListComponent): add space before self-closing tag to improve readability
🎨 style(promptComponent): add space before self-closing tag to improve readability
🎨 style(ApiModal): fix indentation to improve readability
🎨 style(chatInput): add space before self-closing tag to improve readability
🎨 style(chatMessage): remove unnecessary line breaks to improve readability
🎨 style(fileComponent): add space before self-closing tag to improve readability
🎨 style(chatModal): remove unnecessary line breaks to improve readability
🎨 style(codeAreaModal): fix indentation to improve readability
🎨 style(genericModal): fix indentation to improve readability
🎨 style(DisclosureComponent): add space before self-closing tag to improve readability
🎨 style(extraSidebarComponent): fix indentation to improve readability
2023-06-22 22:49:42 -03:00
Cristhian Zanforlin Lousa
198b2c6c75 🐛 fix(chatMessage): remove unnecessary text-sm class from message sender name to improve readability 2023-06-22 22:47:37 -03:00
Gabriel Luiz Freitas Almeida
eb7f8838be 🔥 refactor(schemas.py): remove extra blank line in UploadFileResponse schema
The extra blank line in the UploadFileResponse schema has been removed to improve code readability and consistency.
2023-06-22 22:44:24 -03:00
Gabriel Luiz Freitas Almeida
7f90956d20 🐛 fix(vector_store.py): add type ignore comments to suppress import errors
The import statements for the weaviate and pinecone libraries were causing import errors. Adding the `# type: ignore` comment suppresses these errors and allows the code to run without issues.
2023-06-22 22:43:59 -03:00
Gabriel Luiz Freitas Almeida
4b5c3a0c53 🔨 refactor(process.py): add type hinting to function arguments
This commit adds type hinting to the function arguments of `get_result_and_thought` and `process_graph_cached` functions in `process.py` file. This improves code readability and maintainability.
2023-06-22 22:43:51 -03:00
Gabriel Luiz Freitas Almeida
3c89e893e7 🔨 refactor(vectorstores.py): change import statement to import List from typing
The import statement for Optional was changed to import List from typing to improve readability and consistency with the use of List in the code.
2023-06-22 22:43:37 -03:00
Cristhian Zanforlin Lousa
0c4e1f11e7 🎨 style(frontend): replace heroicons with lucide-react icons for consistency and smaller bundle size
🐛 fix(chatMessage): replace ChatBubbleOvalLeftEllipsisIcon with MessageCircle icon for consistency and better semantics

🎨 style(frontend): replace heroicons with lucide-react icons for consistency and better performance
🐛 fix(ApiModal): replace CodeBracketSquareIcon with Code2 icon for better semantics and consistency

🎨 style(frontend): replace heroicons with lucide-react icons for consistency and better design

🎨 style(genericModal/index.tsx): replace DocumentTextIcon with FileText icon from lucide-react library
🎨 style(importModal/buttonBox/index.tsx): remove unused imports
🎨 style(DisclosureComponent/index.tsx): replace ChevronRightIcon with ChevronRight icon from lucide-react library
🎨 style(extraSidebarComponent/index.tsx): replace Bars2Icon with Menu icon from lucide-react library
🔥 chore(entities/index.ts): remove unused HomeIcon import from heroicons-react library
2023-06-22 22:43:21 -03:00
Gabriel Luiz Freitas Almeida
8bb11f66e9 🔺 chore(pyproject.toml): update langchain dependency from 0.0.208 to 0.0.209
This commit updates the langchain dependency from version 0.0.208 to version 0.0.209. This is a minor version update and is done to keep the dependency up-to-date with the latest features and bug fixes.
2023-06-22 22:34:32 -03:00
Gabriel Luiz Freitas Almeida
7e72ba43fa 🐛 fix(vector_store.py): fix variable naming to follow PEP8 guidelines
The variables PINECONE_API_KEY and PINECONE_ENV were renamed to pinecone_api_key and pinecone_env, respectively, to follow PEP8 guidelines.
2023-06-22 22:32:04 -03:00
Gabriel Luiz Freitas Almeida
d069ab5d6d 🚨 test(agents_template.py): add openai-multi-functions to the list of agents
🐛 fix(graph.py): change message variable to a dictionary to match the expected input of get_result_and_thought function and update the assertion to check if the result is a dictionary instead of a string
The test for agents_template.py was updated to include the openai-multi-functions agent in the list of agents. This was done to ensure that the test coverage for the agent is complete.

The test for graph.py was updated to change the message variable to a dictionary to match the expected input of the get_result_and_thought function. The assertion was also updated to check if the result is a dictionary instead of a string. This was done to ensure that the test coverage for the function is complete.
2023-06-22 22:31:13 -03:00
Gabriel Luiz Freitas Almeida
7cebb8215f 🐛 fix(vector_store.py): remove redundant code and fix parameter naming
The `initialize_chroma` function had redundant code that was removed. The `embedding_function` parameter was renamed to `embedding` to match the parameter name used in the `class_object` constructor. The `documents` and `texts` parameters were being used interchangeably, so the code was updated to use only `documents`.
2023-06-22 22:18:01 -03:00
anovazzi1
1103a22870 feat(PageComponent): adjust minZoom and maxZoom values to improve user experience when zooming in and out of the flowchart. 2023-06-22 22:17:37 -03:00
anovazzi1
2d2d7e6c8c feat(PageComponent): add maxZoom prop to FlowChart to limit zooming to 4x to prevent visual artifacts and improve user experience 2023-06-22 22:16:31 -03:00
Gabriel Luiz Freitas Almeida
e3ee146b12 🔧 refactor(documentloaders.py): use Optional type hint for name parameter in format_field method
The `name` parameter in the `format_field` method of the `DocumentLoaderFrontNode` class now uses the `Optional` type hint to indicate that it can be None. This improves the code's readability and makes it easier to understand the expected behavior of the method.
2023-06-22 22:10:43 -03:00
Gabriel Luiz Freitas Almeida
7da5197f35 🔨 refactor(vector_store.py): refactor initialize_supabase function to improve readability and remove redundant code
The function now checks if "texts" is in the params dictionary and renames it to "documents" for consistency. The "supabase_url" and "supabase_service_key" are now removed from the params dictionary and passed directly to the create_client function. The function also removes the "documents" and "texts" keys from the params dictionary if there are no documents in the params. This improves the readability of the code and removes redundant code.
2023-06-22 22:10:29 -03:00
Gabriel Luiz Freitas Almeida
c8a5edb9ab 🔊 chore(base.py): change log level of sorted vertices to debug
The log level of the sorted vertices in the generator_build method of the Graph class has been changed from info to debug. This is because the sorted vertices are not critical information and are only useful for debugging purposes.
2023-06-22 22:10:19 -03:00
Gabriel Luiz Freitas Almeida
9417dd69f6 🐛 fix(vector_store.py): rename 'texts' parameter to 'documents' to improve semantics
 feat(vector_store.py): add support for Supabase client object to be passed in as a parameter
The 'texts' parameter has been renamed to 'documents' to improve semantics. This change makes it clearer that the parameter is a list of documents. Additionally, support for a Supabase client object has been added as a parameter. This allows for more flexibility in the initialization of the SupabaseVectorStore class.
2023-06-22 21:27:17 -03:00
Gabriel Luiz Freitas Almeida
c4f3476646 🆕 feat(config.yaml, utils.ts): add support for SupabaseVectorStore in vectorstores and add SupabaseIcon to nodeIcons
The SupabaseVectorStore is now supported in the vectorstores configuration in the config.yaml file. The SupabaseIcon has been added to the nodeIcons object in the utils.ts file to be able to display the icon for the SupabaseVectorStore.
2023-06-22 21:01:40 -03:00
Gabriel Luiz Freitas Almeida
fe9918cb8c 🚀 feat(vectorstores.py): add support for SupabaseVectorStore type
The SupabaseVectorStore type requires additional fields such as table_name, query_name, supabase_url, and supabase_service_key. These fields are added to the extra_fields list and are then added to the list of fields that are displayed to the user. This change allows the user to create a SupabaseVectorStore with the required fields.
2023-06-22 21:01:25 -03:00
Gabriel Luiz Freitas Almeida
6fc57bff5e 🚀 feat(loading.py): add support for initializing new vector store types
🚀 feat(vector_store.py): add support for initializing SupabaseVectorStore
This commit adds support for initializing new vector store types in the loading.py file. Specifically, the initialize_weaviate, initialize_faiss, and initialize_supabase functions were added to support the Weaviate, FAISS, and SupabaseVectorStore vector stores, respectively. The vector_store.py file was also updated to include the SupabaseVectorStore class and the initialize_supabase function. This allows for more flexibility in choosing vector stores for the application.
2023-06-22 21:01:11 -03:00
Gabriel Luiz Freitas Almeida
7da52ca9a1 feat(vector_store.py): add support for Supabase as a vector store
The websockets version was downgraded to 10.3 to fix compatibility issues with other dependencies. Supabase was added to the dependencies to support it as a vector store. The initialize_supabase function was added to initialize the Supabase client and return the class object. This allows the use of Supabase as a vector store in the application.
🚀 chore(pyproject.toml): downgrade websockets version to 10.3
🚀 chore(pyproject.toml): add supabase to dependencies
2023-06-22 21:00:46 -03:00
anovazzi1
4056cd09d4 fix(RadialProgress): round percentage value to nearest integer using Math.trunc() to improve display accuracy 2023-06-22 20:58:35 -03:00
anovazzi1
7050452473 feat(frontend): add SupabaseIcon component and its SVG file to the project to be used in the UI 2023-06-22 20:58:03 -03:00
anovazzi1
01545f316e fix(RadialProgress): round percentage value to nearest integer to improve readability and consistency 2023-06-22 20:53:52 -03:00
Cristhian Zanforlin Lousa
0a0584c7ce Merge branch 'multipart_endpoint' of https://github.com/logspace-ai/langflow into multipart_endpoint 2023-06-22 20:08:09 -03:00
Cristhian Zanforlin Lousa
4470ca792c 🎨 style(inputFileComponent): add loading spinner to input file component to indicate file upload progress 2023-06-22 20:08:03 -03:00
Gabriel Luiz Freitas Almeida
eda3b1cef6 📦 chore(pyproject.toml): add pinecone-client dependency to dev dependencies
The pinecone-client dependency was added to the dev dependencies section of the pyproject.toml file. This was done to enable the use of Pinecone in the development environment.
2023-06-22 19:59:56 -03:00
Gabriel Luiz Freitas Almeida
9b4e65c121 🚀 feat(vector_store.py): add support for Weaviate and FAISS vector stores
This commit adds support for Weaviate and FAISS vector stores to the existing Pinecone, Qdrant, and Chroma vector stores. The `initialize_weaviate` function initializes Weaviate and returns the class object. The `initialize_faiss` function initializes FAISS and returns the class object. These functions are used to initialize the respective vector stores. The `docs_in_params` function is used to check if there are documents in the parameters.
2023-06-22 19:59:33 -03:00
Gabriel Luiz Freitas Almeida
935b85a218 🚀 feat(vectorstores.py): add support for FAISS vector store type
The FAISS vector store type is now supported and can be configured with the folder_path and index_name fields. The folder_path field specifies the local path to the FAISS index, while the index_name field specifies the name of the index. Additionally, a new client_kwargs field has been added to support additional client configuration options.
2023-06-22 19:59:23 -03:00
Cristhian Zanforlin Lousa
f3e6db4df1 feat(chat.py): add error handling to stream_build function and improve log messages
 feat(schemas.py): add StreamData class to handle SSE messages
 feat(frontend): add RadialProgress and ProgressBar components
🔧 chore(frontend): add daisyui to project dependencies

🎨 style(headerComponent): comment out unused code
 feat(ui/progress.tsx): add Progress component to reuse in other components
 feat(types/components): add ProgressBarType and RadialProgressType to use in components
🎨 style(tailwind.config.js): add daisyui plugin to tailwind configuration to use in the project
2023-06-22 19:48:37 -03:00
anovazzi1
76ce2f9cfa
General BugFixes (#530)
🐛 fix(parameterComponent): fix key prop warning by generating rando key
using new function getRandomKeyByssmm
 feat(parameterComponent): add support for dynamic rendering of
parameter component by grouping data by family
🐛 fix(menuBar): fix DropdownMenuTrigger component by adding asChild prop
🐛 fix(card.tsx): change p tag to div tag to fix accessibility issue
🐛 fix(extraSidebarComponent): fix key prop warning by adding key prop to
Tooltip component
 feat(utils.ts): add new function getRandomKeyByssmm to generate random
keys for components
2023-06-22 19:38:04 -03:00
Cristhian Zanforlin Lousa
6ac10679a4 🎨 style(DisclosureComponent): replace ChevronRightIcon with ChevronRight from lucide-react to improve consistency with other icons
🎨 style(extraSidebarComponent): remove unused import of MagnifyingGlassIcon from heroicons-react/outline to improve code readability
2023-06-22 19:35:00 -03:00
Gabriel Luiz Freitas Almeida
d936589c3d 🚀 feat(tools.py): add return_direct field to PythonFunctionToolNode
The return_direct field is a boolean field that allows the user to specify whether the output of the Python function should be returned directly or wrapped in a dictionary. This field is added to the TemplateField list of the PythonFunctionToolNode class.
2023-06-22 19:28:13 -03:00
Gabriel Luiz Freitas Almeida
9255f66a5d 🐛 fix(manager.py): prevent base64 encoding of already encoded image data
The code now checks if the image data is already a string before attempting to base64 encode it. This prevents double encoding of the image data.
2023-06-22 19:22:30 -03:00
Cristhian Zanforlin Lousa
49a2935ab3 🐛 fix(parameterComponent): fix key prop warning by generating random key using new function getRandomKeyByssmm
 feat(parameterComponent): add support for dynamic rendering of parameter component by grouping data by family
🐛 fix(menuBar): fix DropdownMenuTrigger component by adding asChild prop
🐛 fix(card.tsx): change p tag to div tag to fix accessibility issue
🐛 fix(extraSidebarComponent): fix key prop warning by adding key prop to Tooltip component
 feat(utils.ts): add new function getRandomKeyByssmm to generate random keys for components
2023-06-22 19:22:04 -03:00
Gabriel Luiz Freitas Almeida
2bad404c62 🐛 fix(constants.tsx): change payload key from "message" to "inputs" to match API requirements
The payload key was changed from "message" to "inputs" to match the API requirements. This change ensures that the API can correctly parse the request payload.
2023-06-22 19:22:04 -03:00
Gabriel Luiz Freitas Almeida
b548a642ff 🔥 refactor(schemas.py): remove commented out code for PredictRequest schema
The commented out code for the PredictRequest schema has been removed as it is no longer needed and only adds clutter to the file.
2023-06-22 19:04:48 -03:00
Gabriel Luiz Freitas Almeida
d5d6f7be57 🔨 refactor(schemas.py): rename PredictRequest to InputRequest and remove message field, add TweaksRequest and UpdateTemplateRequest
 feat(schemas.py): add ProcessResponse schema to represent the response of the process endpoint
The PredictRequest schema has been renamed to InputRequest to better reflect its purpose. The message field has been removed as it is not needed. TweaksRequest has been added to represent the request body for the tweaks endpoint. UpdateTemplateRequest has been added to represent the request body for updating a template. ProcessResponse has been added to represent the response of the process endpoint, which returns a dictionary as the result.
2023-06-22 19:04:19 -03:00
Gabriel Luiz Freitas Almeida
bfef9495f1 feat(vector_store.py): add support for initializing Pinecone and ChromaDB objects from existing indexes
The code has been refactored to improve readability by adding type hints and reformatting the code. The initialize_pinecone and initialize_chroma functions have been updated to support initializing objects from existing indexes. If there are no docs in the params, the functions will return an existing index. If there are docs in the params, the functions will create a new index. The initialize_qdrant function has not been changed.
🔨 refactor(vector_store.py): improve code readability by adding type hints and reformatting code
2023-06-22 19:03:53 -03:00
Gabriel Luiz Freitas Almeida
60886a93c4 🔨 refactor(process.py): remove unused imports and variables, simplify get_result_and_thought function
This commit removes unused imports and variables from the process.py file. The get_result_and_thought function has been simplified to take a dictionary of inputs instead of a single message string. The function now returns the output of the langchain_object instead of a tuple of result and thought.
2023-06-22 19:03:35 -03:00
Gabriel Luiz Freitas Almeida
2c44cde2e0 🚀 feat(memories.py): add input_key and output_key fields to MemoryFrontendNode template
The MemoryFrontendNode template now includes two new fields, input_key and output_key, which are string fields that are not required and are shown in the advanced section of the template. These fields can be used to specify the input and output keys for the memory node.
2023-06-22 19:03:05 -03:00
Gabriel Luiz Freitas Almeida
176738987b 🔀 refactor(endpoints.py): rename predict_flow endpoint to process_flow and update its functionality
🔀 refactor(constants.tsx): update BASE_API_URL to reflect the changes in the predict_flow endpoint name
The predict_flow endpoint has been renamed to process_flow to better reflect its functionality. The inputs are now passed as a dictionary instead of a PredictRequest object. The tweaks parameter is now optional and is passed as a dictionary. The response model has been updated to reflect the changes in the response. The BASE_API_URL constant in constants.tsx has been updated to reflect the changes in the endpoint name.
2023-06-22 18:57:17 -03:00
anovazzi1
19be2e8178 refactor(parameterComponent): change setTemplate to setNodeClass to improve semantics and fix bug
refactor(codeAreaComponent): change template to nodeClass and setTemplate to setNodeClass to improve semantics
refactor(API): change UpdateTemplate function parameter from template to nodeClass to improve semantics
refactor(codeAreaModal): change template to nodeClass and setTemplate to setNodeClass to improve semantics and fix bug
refactor(types): add APIClassType to import and change APITemplateType to import in relevant files to improve semantics
2023-06-22 18:21:41 -03:00
gustavoschaedler
37e1ea05b4 Base classes data moved 2023-06-22 22:15:59 +01:00
gustavoschaedler
531b3b3f7a Base classes data added 2023-06-22 21:49:22 +01:00
gustavoschaedler
6736288e6f Add code section 2023-06-22 21:37:01 +01:00
anovazzi1
a47dc9ae92 feat(frontend): add support for updating node template on code change in CodeAreaModal
fix(API): fix UpdateTemplate function return type to match the actual response
fix(vite.config.ts): add dynamic_node route to apiRoutes array to proxy requests to backend
2023-06-22 17:30:04 -03:00
gustavoschaedler
a458b2d91c Change type str to bool 2023-06-22 21:26:25 +01:00