Commit graph

6,039 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
e24ad0513b 🔧 chore(memories.py): set 'url' field to be shown in the frontend
The 'url' field in the MemoryFrontendNode class is now set to be shown in the frontend. This change allows the 'url' field to be visible and accessible to users in the frontend interface.
2023-06-29 17:39:25 -03:00
Gabriel Luiz Freitas Almeida
26c42cac05 🔧 chore(util.py): exclude "self" parameter from template building
The "self" parameter is now excluded from the template building process. This change improves the accuracy of the generated template by removing unnecessary information.
2023-06-29 17:39:12 -03:00
Gabriel Luiz Freitas Almeida
9e44720ac8 🔧 chore(config.yaml): comment out unused integrations in memories and retrievers sections
The unused integrations in the memories and retrievers sections have been commented out to improve code readability and remove unnecessary clutter. These integrations are not currently being used in the application and can be safely ignored.
2023-06-29 17:38:58 -03:00
Rodrigo Nader
c0dbafe49f refactor(components): Update CSS classes in codeAreaComponent, floatComponent, intComponent, and dialog
- Update CSS classes in codeAreaComponent, floatComponent, intComponent, and dialog components to improve styling and maintain consistency.
- Replace specific color values with Tailwind CSS utility classes.
- Refactor input styles and focus styles for better user experience.
- Remove unused CSS classes from index.css.
2023-06-29 16:49:24 -03:00
Cristhian Zanforlin Lousa
a41c8552a8 🎨 style(parameterComponent): add full width to the div container for better layout consistency 2023-06-29 16:42:38 -03:00
Cristhian Zanforlin Lousa
5522b51d6b 🐛 fix(parameterComponent): add margin-top to the container divs to improve spacing between elements 2023-06-29 16:41:41 -03:00
Cristhian Zanforlin Lousa
9bf5adcd7a 🔧 chore(extraSidebarComponent/index.tsx): center align the input field in the extra sidebar component for better visual consistency 2023-06-29 15:24:01 -03:00
Gabriel Luiz Freitas Almeida
473bde940c 🐛 fix(loading.py): add error handling for missing 'cursor' attribute in instantiate_memory function
The instantiate_memory function now includes error handling for a specific AttributeError that occurs when the object does not have a 'cursor' attribute. If this error occurs, an AttributeError is raised with a specific error message indicating a failure to build a connection to the database. This change improves the error handling and provides more informative error messages for debugging purposes.
2023-06-29 15:17:23 -03:00
Gabriel Luiz Freitas Almeida
ac2e05d8cf
Fixed broken link (#568) 2023-06-29 14:31:48 -03:00
Cristhian Zanforlin Lousa
7c777bf692 🐛 fix(ApiModal/index.tsx): fix linting issues and improve code readability
 feat(ApiModal/index.tsx): add support for displaying tweaks code in a separate tab if there are any tweaks present
2023-06-29 14:17:55 -03:00
Gabriel Luiz Freitas Almeida
3ced33b678 🔧 chore(base.py): add method to remove unwanted base classes from the list of base classes
🐛 fix(base.py): call the method to remove unwanted base classes before converting the frontend node to a dict
The `process_base_classes` method is added to the `FrontendNode` class to remove unwanted base classes from the list of base classes. This method iterates over the base classes and filters out any classes that are present in the `CLASSES_TO_REMOVE` list. The method is then called before converting the frontend node to a dictionary representation in the `to_dict` method to ensure that the unwanted base classes are not included in the final output.
2023-06-29 13:07:04 -03:00
Gabriel Luiz Freitas Almeida
c180a6c644 🔀 chore(config.yaml): comment out unused wrapper and prompt template configurations
The configurations for the ChatPromptTemplate, SystemMessagePromptTemplate, and HumanMessagePromptTemplate wrappers have been commented out as they are currently not being used. This helps to improve code readability and reduces unnecessary clutter in the configuration file.
2023-06-29 12:59:25 -03:00
Gabriel Luiz Freitas Almeida
84718246e1 🔧 chore(config.yaml): add output_parsers section with StructuredOutputParser and ResponseSchema
The config.yaml file now includes an output_parsers section with the StructuredOutputParser and ResponseSchema as the specified parsers. This change was made to enhance the functionality of the backend by enabling the parsing of structured output and response schemas.
2023-06-29 12:57:31 -03:00
Gabriel Luiz Freitas Almeida
3167330cbc 🔧 fix(validate.py): add "BaseOutputParser" to the list of input_types in the template_field
🔧 fix(settings.py): add "output_parsers" attribute to the Settings class
The "input_types" list in the template_field of the post_validate_prompt function in validate.py was missing the "BaseOutputParser" type. This fix adds it to the list to ensure proper validation.

The Settings class in settings.py was missing the "output_parsers" attribute. This fix adds the attribute to the class to ensure that the list of output parsers can be properly configured and accessed.
2023-06-29 12:57:16 -03:00
Gabriel Luiz Freitas Almeida
e87a475584 🔀 refactor(constants.py): import vertex types from langflow.graph.vertex.types instead of individual imports
The import statements for vertex types in constants.py have been refactored to import all types from langflow.graph.vertex.types. This improves code readability and maintainability by reducing the number of import statements and consolidating them into a single import.
2023-06-29 12:57:04 -03:00
Gabriel Luiz Freitas Almeida
c6d8d62ffd 🚧 chore(types.py): add OutputParserVertex class to support output parsing functionality
The OutputParserVertex class is added to the types.py file. This class extends the Vertex class and is used to represent a vertex in the graph that performs output parsing. It takes a data parameter of type Dict in its constructor and calls the super constructor with the data and a base_type of "output_parsers". This change is made to support the implementation of output parsing functionality in the graph.
2023-06-29 12:56:50 -03:00
Gabriel Luiz Freitas Almeida
5e00debae4 🔧 fix(utils.py): add import statement for output_parsers module
🔧 fix(loading.py): add import statement for output_parser_creator
🔧 fix(listing.py): add import statement for output_parser_creator
🔧 fix(types.py): add import statement for output_parser_creator
The import statements for the `output_parsers` module were missing in the respective files. This fix adds the necessary import statements to ensure that the `output_parser_creator` is accessible and can be used in the code.
2023-06-29 12:56:36 -03:00
Gabriel Luiz Freitas Almeida
fa3bcdefee 📦 chore(output_parsers): add output parsers module and base classes
🚀 feat(output_parsers): add OutputParserCreator class to handle creation and loading of output parsers
🚀 feat(output_parsers): add OutputParserFrontendNode class to handle formatting of output parser fields
The commit adds the following changes:
- A new file `__init__.py` is added to the `output_parsers` module.
- A new file `base.py` is added to the `output_parsers` module.
- A new file `output_parsers.py` is added to the `frontend_node` module.
The `__init__.py` file initializes the `OutputParserCreator` class, which is responsible for creating and loading output parsers. It also defines a method to get the signature of an output parser.
The `base.py` file contains the base class `OutputParserCreator` which is a subclass of `LangChainTypeCreator`. It defines the type name as "output_parsers" and provides methods to get the frontend node class and the type to loader dictionary. It also defines a method to convert the output parsers to a list.
The `output_parsers.py` file contains the `OutputParserFrontendNode` class, which is a subclass of `FrontendNode`. It provides a method to format the field of an output parser.
These changes are done to add support for output parsers in the application. The `OutputParserCreator` class allows for dynamic creation and loading of output parsers, while the `OutputParserFrontendNode` class provides a way to format the fields of an output parser.
2023-06-29 12:55:58 -03:00
Gabriel Luiz Freitas Almeida
e9a907babe 🔧 chore(utils.ts): add support for output_parsers node color and icon
🚀 feat(utils.ts): add support for output_parsers node name and icon
The `nodeColors` object now includes a color for the `output_parsers` node type, allowing it to be visually distinguished. Similarly, the `nodeNames` object now includes a name for the `output_parsers` node type. Additionally, the `nodeIconsLucide` object now includes an icon for the `output_parsers` node type. These changes improve the consistency and completeness of the node types in the application.
2023-06-29 12:55:26 -03:00
anovazzi1
7d8304cb60 chore(codeAreaModal): adjust height of code area and error message container for better UI
fix(codeAreaModal): fix styling issue with scrollbar height in code area
2023-06-29 11:51:03 -03:00
Gabriel Luiz Freitas Almeida
2876afa79a 🐛 fix(loading.py): fix formatting of input variables in instantiate_prompt function
The instantiate_prompt function now properly formats the input variables before passing them to the prompt object. If the input variable is a string, it is passed as is. If the input variable is a list of Document objects, it is formatted to contain the page_content and metadata as one string separated by a newline. This ensures that the prompt object receives the correct input format.
2023-06-29 11:44:51 -03:00
Lucas Oliveira
1be3de50c5 Changes to only make the Prompt Check run once 2023-06-29 11:30:00 -03:00
Lucas Oliveira
18b2226b12 Fixed bug where the node internals are not updated at the PromptTemplate 2023-06-29 11:25:48 -03:00
Gabriel Luiz Freitas Almeida
549a8dedc5 🔧 chore(llms.py): add method to add extra base classes to improve extensibility
The `add_extra_base_classes` method is added to the `LLMFrontendNode` class. This method checks if the "BaseLLM" class is already present in the `base_classes` list and appends it if not. This change allows for easier extensibility by providing a way to add additional base classes to the `LLMFrontendNode` class.
2023-06-29 11:18:19 -03:00
Gabriel Luiz Freitas Almeida
8cc0497120 🔀 refactor(base.py): add from_method_nodes dictionary to RetrieverCreator class
The `from_method_nodes` dictionary is added to the `RetrieverCreator` class in order to map the "MultiQueryRetriever" node to the "from_llm" method. This refactor improves the readability and maintainability of the code by explicitly defining the mapping between nodes and methods.
2023-06-29 11:18:11 -03:00
Gabriel Luiz Freitas Almeida
72b6681f5a 🔧 chore(loading.py): add support for instantiating retrievers in the initialization process
🚀 feat(loading.py): implement the ability to instantiate retrievers based on node type and class object
The `instantiate_based_on_type` function now includes a new condition to handle the instantiation of retrievers. The `instantiate_retriever` function is introduced to handle the specific logic for creating retrievers. This change allows for the dynamic creation of retrievers based on the provided node type and class object.
2023-06-29 11:17:59 -03:00
Gabriel Luiz Freitas Almeida
6b893237d0 🐛 fix(utils.py): add import_retriever function to import retriever module
 feat(utils.py): add support for importing retriever module based on retriever name
The `import_retriever` function is added to the `utils.py` module to allow importing the retriever module based on the retriever name. This function uses the `import_module` function from the `importlib` module to dynamically import the retriever module from the `langchain.retrievers` package. This enhances the modularity and extensibility of the codebase by providing a convenient way to import retrievers based on their names.
2023-06-29 11:17:30 -03:00
anovazzi1
5fb31b864d getting error 2023-06-29 11:16:59 -03:00
anovazzi1
8fe7cd3472 Merge branch 'python_custom_node_component' of personal:logspace-ai/langflow into python_custom_node_component 2023-06-29 11:16:32 -03:00
Gabriel Luiz Freitas Almeida
6ef5e56c5c feat(graph): add RetrieverVertex to the list of available vertex types
The RetrieverVertex class is added to the list of available vertex types in the langflow.graph.vertex.types module. This allows for the creation of vertices that represent retrievers in the graph.
2023-06-29 11:16:05 -03:00
Gabriel Luiz Freitas Almeida
f1de9a554d 🔀 refactor(constants.py): import vertex types from langflow.graph.vertex.types as types for improved readability and maintainability
The import statements for vertex types in the constants.py file have been refactored to import from langflow.graph.vertex.types as types. This change improves the readability and maintainability of the code by making it clear where the vertex types are coming from.
2023-06-29 11:15:51 -03:00
Gabriel Luiz Freitas Almeida
f1e2bbb69c 🐛 fix(chat.py): change BuildStatus.IN_PROGRESS to BuildStatus.STARTED for better clarity
🐛 fix(chat.py): fix incorrect key used to retrieve graph_data from flow_data_store
The BuildStatus.IN_PROGRESS constant is changed to BuildStatus.STARTED to provide a more accurate representation of the flow status. Additionally, the incorrect key "data" is replaced with "graph_data" when retrieving the graph data from the flow_data_store dictionary.
2023-06-29 10:54:27 -03:00
Cristhian Zanforlin Lousa
c954f8d338 🐛 fix(AccordionComponent): fix the logic to set the initial value of the accordion based on the open prop array
 feat(AccordionComponent): add support for multiple open accordions by changing the open prop from boolean to string array
🐛 fix(constants.tsx): remove escape characters from the JSON stringified tweaks to fix parsing issues
 feat(constants.tsx): add support for tweaks dictionary in the getCurlCode and getPythonCode functions
🐛 fix(ApiModal): fix the logic to set the initial value of the openAccordion state based on the getTweak array
 feat(ApiModal): add support for opening accordions based on the getTweak array when switching to the Tweak tab
🐛 fix(ApiModal): fix the logic to filter and remove empty tweaks from the tweak.current array
 feat(ApiModal): add support for adding new tweaks to the tweak.current array and generating Python API code
🐛 fix(ApiModal): fix the logic to get the value of a specific tweak template based on the node id and template name
 feat(ApiModal): add support for opening accordions based on the tweak.current array when switching to the Tweak tab
🐛 fix(types): add missing newline at the end of the file
2023-06-29 10:44:32 -03:00
Gabriel Luiz Freitas Almeida
3faf5f5b96 🐛 fix(chatMessage): sanitize HTML content to prevent potential XSS attacks
 feat(chatMessage): improve rendering of multi-line messages
The `convert` variable is now imported before being used to convert ANSI to HTML. Additionally, the `DOMPurify` library is imported and used to sanitize the HTML content before rendering it, preventing potential XSS attacks. The rendering of multi-line messages has been improved by splitting the message by newline characters and rendering each line separately with a line break.
2023-06-29 10:02:28 -03:00
Gabriel Luiz Freitas Almeida
e1bf25a4ff 📦 chore(frontend): add dompurify package as a dependency
The dompurify package is added as a dependency to the frontend package.json file. This package is needed for sanitizing HTML to prevent cross-site scripting (XSS) attacks.
2023-06-29 09:59:31 -03:00
Gabriel Luiz Freitas Almeida
19828da830 🐛 fix(utils.ts): rename Search icon to FileSearch for better clarity and accuracy
The Search icon has been renamed to FileSearch to provide a more accurate representation of its purpose. This change improves clarity and ensures that the icon name aligns with its actual functionality.
2023-06-29 09:57:09 -03:00
Gabriel Luiz Freitas Almeida
894fd16e8e feat(retrievers): add base retriever class and frontend node class
🐛 fix(util.py): handle non-string types in format_dict function
The base retriever class is added to provide a common interface for all retrievers in the language chain. The frontend node class for retrievers is also added to handle the formatting of fields specific to retrievers.

In the util.py file, a fix is made to handle non-string types in the format_dict function. Previously, if the type of a field was not a string, an error would occur. This fix ensures that the type is converted to a string before further processing.
2023-06-29 09:56:59 -03:00
Gabriel Luiz Freitas Almeida
302efa103a feat(retrievers): add __init__.py file to retrievers directory
The __init__.py file is added to the retrievers directory to make it a Python package. This allows the directory to be recognized as a module and enables importing of modules and submodules within the retrievers directory.
2023-06-29 09:56:26 -03:00
Gabriel Luiz Freitas Almeida
28e770992b 🚀 feat(listing.py): add support for retrievers in the type dictionary
The type dictionary in the listing.py file now includes a "retrievers" key, which contains a list of retriever creators. This allows for the inclusion of retrievers as a supported type in the application.
2023-06-29 09:56:17 -03:00
Gabriel Luiz Freitas Almeida
f427e17166 🔀 refactor(endpoints.py): rename import of build_langchain_types_dict to langchain_types_dict for consistency
🔀 refactor(types.py): add langchain_types_dict as a separate variable to improve code readability and maintainability

The import statement in `endpoints.py` has been updated to import `langchain_types_dict` instead of `build_langchain_types_dict` for consistency with the variable name. This change improves code readability and maintainability.

In `types.py`, a new variable `langchain_types_dict` has been added as a separate variable to store the result of `build_langchain_types_dict()`. This change improves code readability and makes it easier to understand the purpose of the variable.
2023-06-29 09:55:59 -03:00
Gabriel Luiz Freitas Almeida
8a28fdf497 📝 docs(config.yaml): add documentation link for MultiQueryRetriever
🔧 chore(settings.py): add retrievers attribute to Settings class
The config.yaml file now includes a documentation link for the MultiQueryRetriever in the retrievers section. This link provides additional information on how to use the MultiQueryRetriever. In the settings.py file, the Settings class now includes a retrievers attribute to store retriever-related settings. This allows for easier management and configuration of retrievers in the application.
2023-06-29 09:54:38 -03:00
anovazzi1
97d5996353 fix(codeAreaModal): fix tabs rendering issue and add support for multiple tabs in CodeAreaModal component
feat(codeAreaModal): add functionality to switch between "code" and "errors" tabs in CodeAreaModal component
2023-06-29 09:50:25 -03:00
Gabriel Luiz Freitas Almeida
c9f8a27983 🔀 chore(NodeModal): update import and variable name for nodeIconsLucide to improve code readability
💄 style(NodeModal): remove unused import and variable to clean up code
The import and variable name for `nodeIconsLucide` has been updated to improve code readability. The unused import and variable `nodeIcons` and `toNormalCase` have been removed to clean up the code.
2023-06-29 09:34:19 -03:00
Gabriel Luiz Freitas Almeida
197f1f9e71 🔥 refactor(utils.ts): remove unused imports and icons to improve code cleanliness and reduce bundle size
🎨 style(utils.ts): reorganize nodeColors and nodeNames objects to improve readability and maintainability
The changes in this commit remove unused imports and icons from the `utils.ts` file, which helps improve code cleanliness and reduces the bundle size. Additionally, the `nodeColors` and `nodeNames` objects have been reorganized to improve readability and maintainability.
2023-06-29 09:34:01 -03:00
Gabriel Luiz Freitas Almeida
8ed5287ac4 🔧 chore(base.py): refactor field formatting logic into a separate class
💡 refactor(base.py): The field formatting logic in the FrontendNode class has been refactored into a separate class called FieldFormatters. This improves code organization and separation of concerns, making it easier to maintain and extend the field formatting functionality in the future.
2023-06-29 09:01:28 -03:00
Gabriel Luiz Freitas Almeida
3845a60bcf 🚀 feat(memories.py): add default value for connection_string field in PostgresChatMessageHistoryFrontendNode
The trailing whitespace has been removed for consistency and readability. The unused import of `DEFAULT_CONNECTION_STRING` from `langchain.memory.chat_message_histories.postgres` has been removed. The `PostgresChatMessageHistoryFrontendNode` now has a default value for the `connection_string` field, which is set to `DEFAULT_CONNECTION_STRING`. This ensures that the field has a default value when creating instances of the class.
🔧 chore(memories.py): remove trailing whitespace and unused import
2023-06-29 08:52:45 -03:00
Gabriel Luiz Freitas Almeida
5924aa4442 📦 chore(field_formatters.py): add field formatters for template frontend_node
🔧 refactor(field_formatters.py): refactor field formatters for template frontend_node
The commit adds a new file `field_formatters.py` to the `frontend_node/formatter` directory in the `langflow/template` backend. This file contains multiple field formatters for the template frontend_node. The formatters handle various formatting tasks such as formatting field names, setting field options, handling special fields, and formatting field types. The commit aims to improve the code organization and maintainability by separating the field formatting logic into dedicated formatters.
2023-06-29 08:52:26 -03:00
Gabriel Luiz Freitas Almeida
75f0a80ded 🎉 feat(formatter): add base FieldFormatter class for formatting template fields
The base.py file is a new addition to the project. It introduces the FieldFormatter class, which is an abstract base class (ABC) for formatting template fields. This class provides a format() method that takes a TemplateField object as input and is meant to be implemented by subclasses. This addition allows for the creation of custom field formatters in the project.
2023-06-29 08:52:21 -03:00
Gabriel Luiz Freitas Almeida
d272a682be 🔧 chore(chains.py): update field properties for "RetrievalQA" memory field
The "RetrievalQA" memory field in the template frontend node is updated to have the "show" and "required" properties set to False. This change is made to hide the memory field and make it optional. Additionally, the "advanced" property is set to False for all fields, and the "password" property is set to False for fields containing the word "key" in their name.
2023-06-29 08:26:23 -03:00
Gabriel Luiz Freitas Almeida
df0b316040 🔀 chore(pyproject.toml): update dependencies versions
⬆️ feat(pyproject.toml): update beautifulsoup4 to version 4.12.2
⬆️ feat(pyproject.toml): update langchain to version 0.0.219
⬆️ feat(pyproject.toml): update pandas to version 2.0.0
⬆️ feat(pyproject.toml): update huggingface-hub to version 0.15.0
⬆️ feat(pyproject.toml): update unstructured to version 0.7.0
⬆️ feat(pyproject.toml): update pypdf to version 3.11.0
⬆️ feat(pyproject.toml): update langchain-serve to version >0.0.47
⬆️ feat(pyproject.toml): update qdrant-client to version 1.3.0
⬆️ feat(pyproject.toml): update ctransformers to version 0.2.10
⬆️ feat(pyproject.toml): update cohere to version 4.11.0
⬆️ feat(pyproject.toml): update anthropic to version 0.3.0
⬆️ feat(pyproject.toml): update types-pyyaml to version 6.0.12.8

The dependencies in the pyproject.toml file have been updated to their latest versions. These updates include various bug fixes, performance improvements, and new features. It is important to keep the dependencies up to date to ensure compatibility and take advantage of the latest enhancements and fixes provided by the library maintainers.
2023-06-29 06:49:24 -03:00