feat: Refactor langflow Components - Consolidate Imports, Remove Unused Components, and Update Astra Assistant Icons (#4460)
* fix lint * fix lint * [autofix.ci] apply automated fixes * 📝 (message_to_data.py): refactor convert_message_to_data method to simplify code and improve readability 🔧 (conftest.py): update imports to organize them alphabetically for better code maintenance 🔧 (test_starter_projects.py): organize imports alphabetically for better code maintenance 🔧 (test_astra_component.py): organize imports alphabetically for better code maintenance 🔧 (test_parse_json_data.py): remove unnecessary whitespace for cleaner code 🔧 (test_chat_input.py): remove unnecessary whitespace for cleaner code 🔧 (test_text_input.py): remove unnecessary whitespace for cleaner code 🔧 (test_output_parser.py): remove unnecessary whitespace for cleaner code 🔧 (test_chat_output.py): remove unnecessary whitespace for cleaner code 🔧 (test_text_output.py): remove unnecessary whitespace for cleaner code 🔧 (test_prompt.py): remove unnecessary whitespace for cleaner code 🔧 (test_basic_prompting.py): remove unnecessary whitespace for cleaner code 🔧 (test_misc.py): remove unnecessary whitespace for cleaner code 🔧 (utils.py): remove unnecessary whitespace for cleaner code 🔧 (test_server_init.py): remove unnecessary whitespace for cleaner code 🔧 (test_endpoints.py): remove unnecessary whitespace for cleaner code 🔧 (test_component_toolkit.py): remove unnecessary whitespace for cleaner code 🔧 (test_agent_component.py): remove unnecessary whitespace for cleaner code 🔧 (test_agent_events.py): remove unnecessary whitespace for cleaner code 🔧 (test_tool_calling_agent.py): remove unnecessary whitespace for cleaner code 🔧 (test_structured_output_component.py): remove unnecessary whitespace for cleaner code 🔧 (test_chatollama_component.py): remove unnecessary whitespace for cleaner code 📝 (test_huggingface.py): Remove unnecessary import statement 📝 (test_create_data_component.py): Remove unnecessary import statement 📝 (test_update_data_component.py): Remove unnecessary import statement 📝 (test_componet_set_functionality.py): Remove unnecessary import statement 📝 (test_component.py): Remove unnecessary import statement 📝 (test_event_manager.py): Remove unnecessary import statement 📝 (test_edge_base.py): Remove unnecessary import statement 📝 (test_state_model.py): Remove unnecessary import statement 📝 (test_base.py): Remove unnecessary import statement 📝 (test_callback_graph.py): Remove unnecessary import statement 📝 (test_cycles.py): Remove unnecessary import statement 📝 (test_graph_state_model.py): Remove unnecessary import statement 📝 (test_runnable_vertices_manager.py): Remove unnecessary import statement 📝 (test_utils.py): Remove unnecessary import statement 📝 (test_graph.py): Remove unnecessary import statement 📝 (test_base_model_from_schema.py): Reorder import statements 📝 (test_memory_chatbot.py): Remove unnecessary import statement 📝 (test_vector_store_rag.py): Remove unnecessary import statement 📝 (test_inputs.py): Reorder import statements 📝 (test_io_schema.py): Remove unnecessary import statement 📝 (test_table_schema.py): Remove unnecessary import statement 📝 (test_schema_message.py): Remove unnecessary import statement 📝 (test_service.py): Reorder import statements 📝 (test_api_key.py): Remove unnecessary import statement 📝 (test_chat_endpoint.py): Remove unnecessary import statement 📝 (test_cli.py): Remove unnecessary import statement 📝 (test_custom_component.py): Add missing import statement in test_custom_component.py 📝 (test_custom_component_with_client.py): Add missing import statement in test_custom_component_with_client.py 📝 (test_data_class.py): Add missing import statement in test_data_class.py 📝 (test_data_components.py): Add missing import statement in test_data_components.py 📝 (test_database.py): Add missing import statement in test_database.py 📝 (test_endpoints.py): Add missing import statement in test_endpoints.py 📝 (test_files.py): Add missing import statement in test_files.py 📝 (test_frontend_nodes.py): Add missing import statement in test_frontend_nodes.py 📝 (test_initial_setup.py): Add missing import statement in test_initial_setup.py 📝 (test_kubernetes_secrets.py): Add missing import statement in test_kubernetes_secrets.py 📝 (test_logger.py): Add missing import statement in test_logger.py 📝 (test_login.py): Add missing import statement in test_login.py 📝 (test_messages.py): Add missing import statement in test_messages.py 📝 (test_messages_endpoints.py): Add missing import statement in test_messages_endpoints.py 📝 (test_schema.py): Add missing import statement in test_schema.py 📝 (test_telemetry.py): Add missing import statement in test_telemetry.py 📝 (test_template.py): Add missing import statement in test_template.py 📝 (test_user.py): Add missing import statement in test_user.py 📝 (test_validate_code.py): Add missing import statement in test_validate_code.py 📝 (test_connection_string_parser.py): Add missing import statement in test_connection_string_parser.py 📝 (test_format_directory_path.py): Add missing import statement in test_format_directory_path.py 📝 (test_rewrite_file_path.py): Add missing import statement in test_rewrite_file_path.py 📝 (test_truncate_long_strings.py): Add missing import statement in test_truncate_long_strings.py 📝 (test_truncate_long_strings_on_objects.py): Add missing import statement in test_truncate_long_strings_on_objects.py * [autofix.ci] apply automated fixes * formatting * Update import paths for MemoryComponent and HuggingFaceEndpointsComponent * fix tests * ✨ (decisionFlow.spec.ts): update test selectors to match changes in the application's UI for better test accuracy and reliability * [autofix.ci] apply automated fixes * ♻️ (test_output_parser.py): refactor import statements to improve code readability and maintainability * fix tests * ✅ (Simple Agent.spec.ts): enable test for "Simple Agent" by removing the skip flag to ensure it runs properly * [autofix.ci] apply automated fixes * Remove optional type from 'num_news' field in YahooFinanceSchema * Refactor JSON formatting for improved readability and maintainability across starter projects. * adding icon to flows * [autofix.ci] apply automated fixes * ✅ (similarity.spec.ts): update test selectors for filtering and connection nodes to match changes in the frontend implementation * [autofix.ci] apply automated fixes * removing init uncessary * ⬆️ (pyproject.toml): upgrade crewai dependency to version 0.76.9 to include the latest features and bug fixes * ✅ (Simple Agent.spec.ts): update test assertion to check if the count of "print(" is greater than or equal to 1 for better test coverage. * [autofix.ci] apply automated fixes * proposed changes * [autofix.ci] apply automated fixes * add zep icon * [autofix.ci] apply automated fixes * 🔧 (model.py): remove unused import and method 'cast_vector_store' from LCVectorStoreComponent 🔧 (openai_tools.py): remove beta flag from OpenAIToolsAgentComponent 🔧 (tool_calling.py): remove beta flag from ToolCallingAgentComponent 🔧 (Vector Store RAG.json): remove 'cast_vector_store' method from starter projects 🔧 (styleUtils.ts): add missing icon 'WolframAlphaAPI' to nodeIconsLucide in styleUtils module * add langwatch and mem0 icon * change mem0 name to mem0ai * ✨ (filterSidebar.spec.ts): update test to use first() method to select the first element with the specified test ID ♻️ (filterSidebar.spec.ts): remove unnecessary code related to checking the checkbox state in the test 🔧 (generalBugs-shard-2.spec.ts): update test to select the correct element with the test ID "dataWebhook" instead of "dataWebhook Input" * ♻️ (test_vector_store_rag.py): remove redundant code setting "vector_store" value in both ingestion_graph and rag_graph functions to improve code readability and maintainability * [autofix.ci] apply automated fixes * updating json test * [autofix.ci] apply automated fixes * ⬆️ (pyproject.toml): downgrade crewai dependency version from 0.76.9 to 0.74.2 to resolve compatibility issues * 🐛 (generalBugs-shard-5.spec.ts): fix typo in test case for component name 🐛 (generalBugs-shard-9.spec.ts): update endX calculation to move 600 pixels to the right instead of 300 🐛 (generalBugs-shard-9.spec.ts): fix typo in test case for component name and update test steps to click "fit_view" button twice --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
This commit is contained in:
parent
6b3bf7b523
commit
29e484465c
182 changed files with 7279 additions and 516 deletions
|
|
@ -1,6 +1,6 @@
|
|||
from abc import abstractmethod
|
||||
from functools import wraps
|
||||
from typing import TYPE_CHECKING, cast
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from loguru import logger
|
||||
|
||||
|
|
@ -64,11 +64,6 @@ class LCVectorStoreComponent(Component):
|
|||
name="search_results",
|
||||
method="search_documents",
|
||||
),
|
||||
Output(
|
||||
display_name="Vector Store",
|
||||
name="vector_store",
|
||||
method="cast_vector_store",
|
||||
),
|
||||
]
|
||||
|
||||
def _validate_outputs(self) -> None:
|
||||
|
|
@ -120,9 +115,6 @@ class LCVectorStoreComponent(Component):
|
|||
self.status = data
|
||||
return data
|
||||
|
||||
def cast_vector_store(self) -> VectorStore:
|
||||
return cast(VectorStore, self.build_vector_store())
|
||||
|
||||
def build_base_retriever(self) -> Retriever: # type: ignore[type-var]
|
||||
"""Builds the BaseRetriever object."""
|
||||
if self._cached_vector_store is not None:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
from .add_content_to_page import AddContentToPage
|
||||
from .create_page import NotionPageCreator
|
||||
from .list_database_properties import NotionDatabaseProperties
|
||||
from .list_pages import NotionListPages
|
||||
from .list_users import NotionUserList
|
||||
from .page_content_viewer import NotionPageContent
|
||||
from .search import NotionSearch
|
||||
from .update_page_property import NotionPageUpdate
|
||||
|
||||
__all__ = [
|
||||
"AddContentToPage",
|
||||
"NotionPageCreator",
|
||||
"NotionDatabaseProperties",
|
||||
"NotionListPages",
|
||||
"NotionUserList",
|
||||
"NotionPageContent",
|
||||
"NotionSearch",
|
||||
"NotionPageUpdate",
|
||||
]
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
from . import (
|
||||
agents,
|
||||
chains,
|
||||
custom_component,
|
||||
documentloaders,
|
||||
embeddings,
|
||||
helpers,
|
||||
inputs,
|
||||
link_extractors,
|
||||
memories,
|
||||
models,
|
||||
outputs,
|
||||
prompts,
|
||||
prototypes,
|
||||
retrievers,
|
||||
textsplitters,
|
||||
toolkits,
|
||||
tools,
|
||||
vectorstores,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"agents",
|
||||
"chains",
|
||||
"documentloaders",
|
||||
"embeddings",
|
||||
"helpers",
|
||||
"inputs",
|
||||
"link_extractors",
|
||||
"custom_component",
|
||||
"memories",
|
||||
"models",
|
||||
"output_parsers",
|
||||
"outputs",
|
||||
"prompts",
|
||||
"prototypes",
|
||||
"retrievers",
|
||||
"textsplitters",
|
||||
"toolkits",
|
||||
"tools",
|
||||
"vectorstores",
|
||||
]
|
||||
|
|
@ -1,29 +1,3 @@
|
|||
from .crewai import CrewAIAgentComponent
|
||||
from .csv import CSVAgentComponent
|
||||
from .hierarchical_crew import HierarchicalCrewComponent
|
||||
from .json import JsonAgentComponent
|
||||
from .openai_tools import OpenAIToolsAgentComponent
|
||||
from .openapi import OpenAPIAgentComponent
|
||||
from .sequential_crew import SequentialCrewComponent
|
||||
from .sequential_task import SequentialTaskAgentComponent
|
||||
from .sql import SQLAgentComponent
|
||||
from .tool_calling import ToolCallingAgentComponent
|
||||
from .vector_store import VectorStoreAgentComponent
|
||||
from .vector_store_router import VectorStoreRouterAgentComponent
|
||||
from .xml import XMLAgentComponent
|
||||
from .agent import AgentComponent
|
||||
|
||||
__all__ = [
|
||||
"CSVAgentComponent",
|
||||
"CrewAIAgentComponent",
|
||||
"HierarchicalCrewComponent",
|
||||
"JsonAgentComponent",
|
||||
"OpenAIToolsAgentComponent",
|
||||
"OpenAPIAgentComponent",
|
||||
"SQLAgentComponent",
|
||||
"SequentialCrewComponent",
|
||||
"SequentialTaskAgentComponent",
|
||||
"ToolCallingAgentComponent",
|
||||
"VectorStoreAgentComponent",
|
||||
"VectorStoreRouterAgentComponent",
|
||||
"XMLAgentComponent",
|
||||
]
|
||||
__all__ = ["AgentComponent"]
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ from langchain_core.tools import StructuredTool
|
|||
|
||||
from langflow.base.agents.agent import LCToolsAgentComponent
|
||||
from langflow.base.models.model_input_constants import ALL_PROVIDER_FIELDS, MODEL_PROVIDERS_DICT
|
||||
from langflow.components.agents.tool_calling import ToolCallingAgentComponent
|
||||
from langflow.components.helpers import CurrentDateComponent
|
||||
from langflow.components.helpers.memory import MemoryComponent
|
||||
from langflow.components.langchain_utilities.tool_calling import ToolCallingAgentComponent
|
||||
from langflow.components.memories.memory import MemoryComponent
|
||||
from langflow.io import BoolInput, DropdownInput, MultilineInput, Output
|
||||
from langflow.schema.dotdict import dotdict
|
||||
from langflow.schema.message import Message
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
from langchain.agents import AgentExecutor, create_vectorstore_agent
|
||||
from langchain.agents.agent_toolkits.vectorstore.toolkit import VectorStoreToolkit
|
||||
|
||||
from langflow.base.agents.agent import LCAgentComponent
|
||||
from langflow.inputs import HandleInput
|
||||
|
||||
|
||||
class VectorStoreAgentComponent(LCAgentComponent):
|
||||
display_name = "VectorStoreAgent"
|
||||
description = "Construct an agent from a Vector Store."
|
||||
name = "VectorStoreAgent"
|
||||
legacy: bool = True
|
||||
|
||||
inputs = [
|
||||
*LCAgentComponent._base_inputs,
|
||||
HandleInput(
|
||||
name="llm",
|
||||
display_name="Language Model",
|
||||
input_types=["LanguageModel"],
|
||||
required=True,
|
||||
),
|
||||
HandleInput(
|
||||
name="vectorstore",
|
||||
display_name="Vector Store",
|
||||
input_types=["VectorStoreInfo"],
|
||||
required=True,
|
||||
),
|
||||
]
|
||||
|
||||
def build_agent(self) -> AgentExecutor:
|
||||
toolkit = VectorStoreToolkit(vectorstore_info=self.vectorstore, llm=self.llm)
|
||||
return create_vectorstore_agent(llm=self.llm, toolkit=toolkit, **self.get_agent_kwargs())
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
from .assemblyai_get_subtitles import AssemblyAIGetSubtitles
|
||||
from .assemblyai_lemur import AssemblyAILeMUR
|
||||
from .assemblyai_list_transcripts import AssemblyAIListTranscripts
|
||||
from .assemblyai_poll_transcript import AssemblyAITranscriptionJobPoller
|
||||
from .assemblyai_start_transcript import AssemblyAITranscriptionJobCreator
|
||||
|
||||
__all__ = [
|
||||
"AssemblyAIGetSubtitles",
|
||||
"AssemblyAILeMUR",
|
||||
"AssemblyAIListTranscripts",
|
||||
"AssemblyAITranscriptionJobPoller",
|
||||
"AssemblyAITranscriptionJobCreator",
|
||||
]
|
||||
|
|
@ -18,7 +18,7 @@ from langflow.template import Output
|
|||
class AstraAssistantManager(ComponentWithCache):
|
||||
display_name = "Astra Assistant Manager"
|
||||
description = "Manages Assistant Interactions"
|
||||
icon = "bot"
|
||||
icon = "AstraDB"
|
||||
|
||||
inputs = [
|
||||
StrInput(
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from langflow.template import Output
|
|||
|
||||
|
||||
class AssistantsCreateAssistant(ComponentWithCache):
|
||||
icon = "bot"
|
||||
icon = "AstraDB"
|
||||
display_name = "Create Assistant"
|
||||
description = "Creates an Assistant and returns it's id"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from langflow.template import Output
|
|||
class AssistantsCreateThread(ComponentWithCache):
|
||||
display_name = "Create Assistant Thread"
|
||||
description = "Creates a thread and returns the thread id"
|
||||
|
||||
icon = "AstraDB"
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
name="env_set",
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ from langflow.template import Output
|
|||
class Dotenv(Component):
|
||||
display_name = "Dotenv"
|
||||
description = "Load .env file into env vars"
|
||||
|
||||
icon = "AstraDB"
|
||||
inputs = [
|
||||
MultilineSecretInput(
|
||||
name="dotenv_file_content",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from langflow.template import Output
|
|||
class AssistantsGetAssistantName(ComponentWithCache):
|
||||
display_name = "Get Assistant name"
|
||||
description = "Assistant by id"
|
||||
|
||||
icon = "AstraDB"
|
||||
inputs = [
|
||||
StrInput(
|
||||
name="assistant_id",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from langflow.template import Output
|
|||
class GetEnvVar(Component):
|
||||
display_name = "Get env var"
|
||||
description = "Get env var"
|
||||
icon = "code"
|
||||
icon = "AstraDB"
|
||||
|
||||
inputs = [
|
||||
StrInput(
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from langflow.template.field.base import Output
|
|||
class AssistantsListAssistants(ComponentWithCache):
|
||||
display_name = "List Assistants"
|
||||
description = "Returns a list of assistant id's"
|
||||
|
||||
icon = "AstraDB"
|
||||
outputs = [
|
||||
Output(display_name="Assistants", name="assistants", method="process_inputs"),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from langflow.template import Output
|
|||
class AssistantsRun(ComponentWithCache):
|
||||
display_name = "Run Assistant"
|
||||
description = "Executes an Assistant Run against a thread"
|
||||
icon = "AstraDB"
|
||||
|
||||
def __init__(self, **kwargs) -> None:
|
||||
super().__init__(**kwargs)
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
from .conversation import ConversationChainComponent
|
||||
from .llm_checker import LLMCheckerChainComponent
|
||||
from .llm_math import LLMMathChainComponent
|
||||
from .retrieval_qa import RetrievalQAComponent
|
||||
from .sql_generator import SQLGeneratorComponent
|
||||
|
||||
__all__ = [
|
||||
"ConversationChainComponent",
|
||||
"LLMCheckerChainComponent",
|
||||
"LLMMathChainComponent",
|
||||
"RetrievalQAComponent",
|
||||
"SQLGeneratorComponent",
|
||||
]
|
||||
3
src/backend/base/langflow/components/cohere/__init__.py
Normal file
3
src/backend/base/langflow/components/cohere/__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
from .cohere_rerank import CohereRerankComponent
|
||||
|
||||
__all__ = ["CohereRerankComponent"]
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
from .composio_api import ComposioAPIComponent
|
||||
|
||||
__all__ = ["ComposioAPIComponent"]
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
from .confluence import ConfluenceComponent
|
||||
|
||||
__all__ = ["ConfluenceComponent"]
|
||||
15
src/backend/base/langflow/components/crewai/__init__.py
Normal file
15
src/backend/base/langflow/components/crewai/__init__.py
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
from .crewai import CrewAIAgentComponent
|
||||
from .hierarchical_crew import HierarchicalCrewComponent
|
||||
from .hierarchical_task import HierarchicalTaskComponent
|
||||
from .sequential_crew import SequentialCrewComponent
|
||||
from .sequential_task import SequentialTaskComponent
|
||||
from .sequential_task_agent import SequentialTaskAgentComponent
|
||||
|
||||
__all__ = [
|
||||
"CrewAIAgentComponent",
|
||||
"HierarchicalCrewComponent",
|
||||
"HierarchicalTaskComponent",
|
||||
"SequentialCrewComponent",
|
||||
"SequentialTaskComponent",
|
||||
"SequentialTaskAgentComponent",
|
||||
]
|
||||
|
|
@ -1,7 +1,19 @@
|
|||
from .api_request import APIRequestComponent
|
||||
from .csv_to_data import CSVToDataComponent
|
||||
from .directory import DirectoryComponent
|
||||
from .file import FileComponent
|
||||
from .json_to_data import JSONToDataComponent
|
||||
from .sql_executor import SQLExecutorComponent
|
||||
from .url import URLComponent
|
||||
from .webhook import WebhookComponent
|
||||
|
||||
__all__ = ["APIRequestComponent", "DirectoryComponent", "FileComponent", "URLComponent", "WebhookComponent"]
|
||||
__all__ = [
|
||||
"APIRequestComponent",
|
||||
"CSVToDataComponent",
|
||||
"DirectoryComponent",
|
||||
"FileComponent",
|
||||
"SQLExecutorComponent",
|
||||
"URLComponent",
|
||||
"WebhookComponent",
|
||||
"JSONToDataComponent",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from langflow.schema import Data
|
|||
|
||||
|
||||
class JSONToDataComponent(Component):
|
||||
display_name = "JSON to Data"
|
||||
display_name = "Load JSON"
|
||||
description = (
|
||||
"Convert a JSON file, JSON from a file path, or a JSON string to a Data object or a list of Data objects"
|
||||
)
|
||||
|
|
@ -6,14 +6,14 @@ from langflow.schema import Data
|
|||
|
||||
|
||||
class WebhookComponent(Component):
|
||||
display_name = "Webhook Input"
|
||||
display_name = "Webhook"
|
||||
description = "Defines a webhook input for the flow."
|
||||
name = "Webhook"
|
||||
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
name="data",
|
||||
display_name="Data",
|
||||
display_name="JSON Payload",
|
||||
info="Use this field to quickly test the webhook component by providing a JSON payload.",
|
||||
)
|
||||
]
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ from .split_text import SplitTextComponent
|
|||
from .sub_flow import SubFlowComponent
|
||||
|
||||
__all__ = [
|
||||
"ConditionalRouterComponent",
|
||||
"ExtractKeyFromDataComponent",
|
||||
"FlowToolComponent",
|
||||
"ListFlowsComponent",
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
from .confluence import ConfluenceComponent
|
||||
from .git import GitLoaderComponent
|
||||
from .unstructured import UnstructuredComponent
|
||||
|
||||
__all__ = ["ConfluenceComponent", "GitLoaderComponent", "UnstructuredComponent"]
|
||||
|
|
@ -5,8 +5,13 @@ from .azure_openai import AzureOpenAIEmbeddingsComponent
|
|||
from .cohere import CohereEmbeddingsComponent
|
||||
from .google_generative_ai import GoogleGenerativeAIEmbeddingsComponent
|
||||
from .huggingface_inference_api import HuggingFaceInferenceAPIEmbeddingsComponent
|
||||
from .lmstudioembeddings import LMStudioEmbeddingsComponent
|
||||
from .mistral import MistralAIEmbeddingsComponent
|
||||
from .nvidia import NVIDIAEmbeddingsComponent
|
||||
from .ollama import OllamaEmbeddingsComponent
|
||||
from .openai import OpenAIEmbeddingsComponent
|
||||
from .similarity import EmbeddingSimilarityComponent
|
||||
from .text_embedder import TextEmbedderComponent
|
||||
from .vertexai import VertexAIEmbeddingsComponent
|
||||
|
||||
__all__ = [
|
||||
|
|
@ -17,7 +22,12 @@ __all__ = [
|
|||
"CohereEmbeddingsComponent",
|
||||
"GoogleGenerativeAIEmbeddingsComponent",
|
||||
"HuggingFaceInferenceAPIEmbeddingsComponent",
|
||||
"LMStudioEmbeddingsComponent",
|
||||
"MistralAIEmbeddingsComponent",
|
||||
"NVIDIAEmbeddingsComponent",
|
||||
"OllamaEmbeddingsComponent",
|
||||
"OpenAIEmbeddingsComponent",
|
||||
"EmbeddingSimilarityComponent",
|
||||
"TextEmbedderComponent",
|
||||
"VertexAIEmbeddingsComponent",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
from .firecrawl_crawl_api import FirecrawlCrawlApi
|
||||
from .firecrawl_scrape_api import FirecrawlScrapeApi
|
||||
|
||||
__all__ = ["FirecrawlCrawlApi", "FirecrawlScrapeApi"]
|
||||
3
src/backend/base/langflow/components/git/__init__.py
Normal file
3
src/backend/base/langflow/components/git/__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
from .git import GitLoaderComponent
|
||||
|
||||
__all__ = ["GitLoaderComponent"]
|
||||
5
src/backend/base/langflow/components/google/__init__.py
Normal file
5
src/backend/base/langflow/components/google/__init__.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
from .gmail import GmailLoaderComponent
|
||||
from .google_drive import GoogleDriveComponent
|
||||
from .google_drive_search import GoogleDriveSearchComponent
|
||||
|
||||
__all__ = ["GmailLoaderComponent", "GoogleDriveComponent", "GoogleDriveSearchComponent"]
|
||||
|
|
@ -1,45 +1,15 @@
|
|||
from .combine_text import CombineTextComponent
|
||||
from .create_list import CreateListComponent
|
||||
from .csv_to_data import CSVToDataComponent
|
||||
from .current_date import CurrentDateComponent
|
||||
from .data_conditional_router import DataConditionalRouterComponent
|
||||
from .extract_key import ExtractDataKeyComponent
|
||||
from .filter_data import FilterDataComponent
|
||||
from .filter_data_values import DataFilterComponent
|
||||
from .hierarchical_task import HierarchicalTaskComponent
|
||||
from .id_generator import IDGeneratorComponent
|
||||
from .json_to_data import JSONToDataComponent
|
||||
from .memory import MemoryComponent
|
||||
from .merge_data import MergeDataComponent
|
||||
from .message_to_data import MessageToDataComponent
|
||||
from .parse_data import ParseDataComponent
|
||||
from .parse_json_data import ParseJSONDataComponent
|
||||
from .sequential_task import SequentialTaskComponent
|
||||
from .output_parser import OutputParserComponent
|
||||
from .split_text import SplitTextComponent
|
||||
from .store_message import StoreMessageComponent
|
||||
from .structured_output import StructuredOutputComponent
|
||||
|
||||
__all__ = [
|
||||
"CSVToDataComponent",
|
||||
"CombineTextComponent",
|
||||
"CreateListComponent",
|
||||
"CurrentDateComponent",
|
||||
"DataConditionalRouterComponent",
|
||||
"DataFilterComponent",
|
||||
"ExtractDataKeyComponent",
|
||||
"FilterDataComponent",
|
||||
"FilterDataComponent",
|
||||
"HierarchicalTaskComponent",
|
||||
"IDGeneratorComponent",
|
||||
"IDGeneratorComponent",
|
||||
"JSONToDataComponent",
|
||||
"MemoryComponent",
|
||||
"MergeDataComponent",
|
||||
"MessageToDataComponent",
|
||||
"ParseDataComponent",
|
||||
"ParseJSONDataComponent",
|
||||
"SequentialTaskComponent",
|
||||
"OutputParserComponent",
|
||||
"SplitTextComponent",
|
||||
"StoreMessageComponent",
|
||||
"StructuredOutputComponent",
|
||||
]
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class CreateListComponent(Component):
|
|||
description = "Creates a list of texts."
|
||||
icon = "list"
|
||||
name = "CreateList"
|
||||
legacy = True
|
||||
|
||||
inputs = [
|
||||
StrInput(
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ class StructuredOutputComponent(Component):
|
|||
"Transforms LLM responses into **structured data formats**. Ideal for extracting specific information "
|
||||
"or creating consistent outputs."
|
||||
)
|
||||
icon = "braces"
|
||||
|
||||
inputs = [
|
||||
HandleInput(
|
||||
name="llm",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
from .character import CharacterTextSplitterComponent
|
||||
from .conversation import ConversationChainComponent
|
||||
from .csv import CSVAgentComponent
|
||||
from .html_link_extractor import HtmlLinkExtractorComponent
|
||||
from .json import JsonAgentComponent
|
||||
from .json_document_builder import JSONDocumentBuilder
|
||||
from .langchain_hub import LangChainHubPromptComponent
|
||||
from .language_recursive import LanguageRecursiveTextSplitterComponent
|
||||
from .language_semantic import SemanticTextSplitterComponent
|
||||
from .llm_checker import LLMCheckerChainComponent
|
||||
from .llm_math import LLMMathChainComponent
|
||||
from .natural_language import NaturalLanguageTextSplitterComponent
|
||||
from .openai_tools import OpenAIToolsAgentComponent
|
||||
from .openapi import OpenAPIAgentComponent
|
||||
from .recursive_character import RecursiveCharacterTextSplitterComponent
|
||||
from .retrieval_qa import RetrievalQAComponent
|
||||
from .runnable_executor import RunnableExecComponent
|
||||
from .self_query import SelfQueryRetrieverComponent
|
||||
from .spider import SpiderTool
|
||||
from .sql import SQLAgentComponent
|
||||
from .sql_database import SQLDatabaseComponent
|
||||
from .sql_generator import SQLGeneratorComponent
|
||||
from .tool_calling import ToolCallingAgentComponent
|
||||
from .vector_store import VectoStoreRetrieverComponent
|
||||
from .vector_store_info import VectorStoreInfoComponent
|
||||
from .vector_store_router import VectorStoreRouterAgentComponent
|
||||
from .xml import XMLAgentComponent
|
||||
|
||||
__all__ = [
|
||||
"CharacterTextSplitterComponent",
|
||||
"ConversationChainComponent",
|
||||
"CSVAgentComponent",
|
||||
"HtmlLinkExtractorComponent",
|
||||
"JSONDocumentBuilder",
|
||||
"JsonAgentComponent",
|
||||
"LangChainHubPromptComponent",
|
||||
"LanguageRecursiveTextSplitterComponent",
|
||||
"LLMCheckerChainComponent",
|
||||
"LLMMathChainComponent",
|
||||
"NaturalLanguageTextSplitterComponent",
|
||||
"OpenAIToolsAgentComponent",
|
||||
"OpenAPIAgentComponent",
|
||||
"RecursiveCharacterTextSplitterComponent",
|
||||
"RetrievalQAComponent",
|
||||
"RunnableExecComponent",
|
||||
"SelfQueryRetrieverComponent",
|
||||
"SpiderTool",
|
||||
"SQLAgentComponent",
|
||||
"SQLDatabaseComponent",
|
||||
"SQLGeneratorComponent",
|
||||
"ToolCallingAgentComponent",
|
||||
"VectoStoreRetrieverComponent",
|
||||
"VectorStoreInfoComponent",
|
||||
"VectorStoreRouterAgentComponent",
|
||||
"XMLAgentComponent",
|
||||
"SemanticTextSplitterComponent",
|
||||
]
|
||||
|
|
@ -12,6 +12,7 @@ class CharacterTextSplitterComponent(LCTextSplitterComponent):
|
|||
description = "Split text by number of characters."
|
||||
documentation = "https://docs.langflow.org/components/text-splitters#charactertextsplitter"
|
||||
name = "CharacterTextSplitter"
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
IntInput(
|
||||
|
|
@ -10,6 +10,7 @@ class ConversationChainComponent(LCChainComponent):
|
|||
description = "Chain to have a conversation and load context from memory."
|
||||
name = "ConversationChain"
|
||||
legacy: bool = True
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
|
|
@ -13,6 +13,7 @@ class CSVAgentComponent(LCAgentComponent):
|
|||
description = "Construct a CSV agent from a CSV and tools."
|
||||
documentation = "https://python.langchain.com/docs/modules/agents/toolkits/csv"
|
||||
name = "CSVAgent"
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
*LCAgentComponent._base_inputs,
|
||||
|
|
@ -12,6 +12,7 @@ class HtmlLinkExtractorComponent(LCDocumentTransformerComponent):
|
|||
description = "Extract hyperlinks from HTML content."
|
||||
documentation = "https://python.langchain.com/v0.2/api_reference/community/graph_vectorstores/langchain_community.graph_vectorstores.extractors.html_link_extractor.HtmlLinkExtractor.html"
|
||||
name = "HtmlLinkExtractor"
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
StrInput(name="kind", display_name="Kind of edge", value="hyperlink", required=False),
|
||||
|
|
@ -12,7 +12,7 @@ class LangChainHubPromptComponent(Component):
|
|||
display_name: str = "LangChain Hub"
|
||||
description: str = "Prompt Component that uses LangChain Hub prompts"
|
||||
beta = True
|
||||
icon = "prompts"
|
||||
icon = "LangChain"
|
||||
trace_type = "prompt"
|
||||
name = "LangChain Hub Prompt"
|
||||
|
||||
|
|
@ -11,6 +11,7 @@ class LanguageRecursiveTextSplitterComponent(LCTextSplitterComponent):
|
|||
description: str = "Split text into chunks of a specified length based on language."
|
||||
documentation: str = "https://docs.langflow.org/components/text-splitters#languagerecursivetextsplitter"
|
||||
name = "LanguageRecursiveTextSplitter"
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
IntInput(
|
||||
|
|
@ -21,6 +21,7 @@ class SemanticTextSplitterComponent(LCTextSplitterComponent):
|
|||
description: str = "Split text into semantically meaningful chunks using semantic similarity."
|
||||
documentation = "https://python.langchain.com/docs/how_to/semantic-chunker/"
|
||||
beta = True # this component is beta because it is imported from langchain_experimental
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
HandleInput(
|
||||
|
|
@ -11,7 +11,7 @@ class LLMCheckerChainComponent(LCChainComponent):
|
|||
documentation = "https://python.langchain.com/docs/modules/chains/additional/llm_checker"
|
||||
name = "LLMCheckerChain"
|
||||
legacy: bool = True
|
||||
|
||||
icon = "LangChain"
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
name="input_value",
|
||||
|
|
@ -12,7 +12,7 @@ class LLMMathChainComponent(LCChainComponent):
|
|||
documentation = "https://python.langchain.com/docs/modules/chains/additional/llm_math"
|
||||
name = "LLMMathChain"
|
||||
legacy: bool = True
|
||||
|
||||
icon = "LangChain"
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
name="input_value",
|
||||
|
|
@ -14,7 +14,7 @@ class NaturalLanguageTextSplitterComponent(LCTextSplitterComponent):
|
|||
"https://python.langchain.com/v0.1/docs/modules/data_connection/document_transformers/split_by_token/#nltk"
|
||||
)
|
||||
name = "NaturalLanguageTextSplitter"
|
||||
|
||||
icon = "LangChain"
|
||||
inputs = [
|
||||
IntInput(
|
||||
name="chunk_size",
|
||||
|
|
@ -11,7 +11,6 @@ class OpenAIToolsAgentComponent(LCToolsAgentComponent):
|
|||
display_name: str = "OpenAI Tools Agent"
|
||||
description: str = "Agent that uses tools via openai-tools."
|
||||
icon = "LangChain"
|
||||
beta = True
|
||||
name = "OpenAIToolsAgent"
|
||||
|
||||
inputs = [
|
||||
|
|
@ -15,7 +15,7 @@ class OpenAPIAgentComponent(LCAgentComponent):
|
|||
display_name = "OpenAPI Agent"
|
||||
description = "Agent to interact with OpenAPI API."
|
||||
name = "OpenAPIAgent"
|
||||
|
||||
icon = "LangChain"
|
||||
inputs = [
|
||||
*LCAgentComponent._base_inputs,
|
||||
HandleInput(name="llm", display_name="Language Model", input_types=["LanguageModel"], required=True),
|
||||
|
|
@ -12,6 +12,7 @@ class RecursiveCharacterTextSplitterComponent(LCTextSplitterComponent):
|
|||
description: str = "Split text trying to keep all related text together."
|
||||
documentation: str = "https://docs.langflow.org/components/text-splitters#recursivecharactertextsplitter"
|
||||
name = "RecursiveCharacterTextSplitter"
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
IntInput(
|
||||
|
|
@ -10,7 +10,7 @@ class RetrievalQAComponent(LCChainComponent):
|
|||
description = "Chain for question-answering querying sources from a retriever."
|
||||
name = "RetrievalQA"
|
||||
legacy: bool = True
|
||||
|
||||
icon = "LangChain"
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
name="input_value",
|
||||
|
|
@ -11,6 +11,7 @@ class RunnableExecComponent(Component):
|
|||
display_name = "Runnable Executor"
|
||||
name = "RunnableExecutor"
|
||||
beta: bool = True
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
MessageTextInput(name="input_value", display_name="Input", required=True),
|
||||
|
|
@ -11,7 +11,7 @@ class SQLAgentComponent(LCAgentComponent):
|
|||
display_name = "SQLAgent"
|
||||
description = "Construct an SQL agent from an LLM and tools."
|
||||
name = "SQLAgent"
|
||||
|
||||
icon = "LangChain"
|
||||
inputs = [
|
||||
*LCAgentComponent._base_inputs,
|
||||
HandleInput(name="llm", display_name="Language Model", input_types=["LanguageModel"], required=True),
|
||||
|
|
@ -17,6 +17,7 @@ class SQLGeneratorComponent(LCChainComponent):
|
|||
description = "Generate SQL from natural language."
|
||||
name = "SQLGenerator"
|
||||
legacy: bool = True
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
MultilineInput(
|
||||
|
|
@ -11,7 +11,6 @@ class ToolCallingAgentComponent(LCToolsAgentComponent):
|
|||
display_name: str = "Tool Calling Agent"
|
||||
description: str = "An agent designed to utilize various tools seamlessly within workflows."
|
||||
icon = "LangChain"
|
||||
beta = True
|
||||
name = "ToolCallingAgent"
|
||||
|
||||
inputs = [
|
||||
|
|
@ -9,6 +9,7 @@ class VectoStoreRetrieverComponent(CustomComponent):
|
|||
description = "A vector store retriever"
|
||||
name = "VectorStoreRetriever"
|
||||
legacy: bool = True
|
||||
icon = "LangChain"
|
||||
|
||||
def build_config(self):
|
||||
return {
|
||||
|
|
@ -10,6 +10,7 @@ class VectorStoreInfoComponent(Component):
|
|||
description = "Information about a VectorStore"
|
||||
name = "VectorStoreInfo"
|
||||
legacy: bool = True
|
||||
icon = "LangChain"
|
||||
|
||||
inputs = [
|
||||
MessageTextInput(
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
from .html_link_extractor import HtmlLinkExtractorComponent
|
||||
|
||||
__all__ = [
|
||||
"HtmlLinkExtractorComponent",
|
||||
]
|
||||
19
src/backend/base/langflow/components/logic/__init__.py
Normal file
19
src/backend/base/langflow/components/logic/__init__.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
from .conditional_router import ConditionalRouterComponent
|
||||
from .data_conditional_router import DataConditionalRouterComponent
|
||||
from .flow_tool import FlowToolComponent
|
||||
from .listen import ListenComponent
|
||||
from .notify import NotifyComponent
|
||||
from .pass_message import PassMessageComponent
|
||||
from .run_flow import RunFlowComponent
|
||||
from .sub_flow import SubFlowComponent
|
||||
|
||||
__all__ = [
|
||||
"DataConditionalRouterComponent",
|
||||
"FlowToolComponent",
|
||||
"ListenComponent",
|
||||
"NotifyComponent",
|
||||
"RunFlowComponent",
|
||||
"SubFlowComponent",
|
||||
"ConditionalRouterComponent",
|
||||
"PassMessageComponent",
|
||||
]
|
||||
|
|
@ -4,10 +4,11 @@ from langflow.schema.message import Message
|
|||
|
||||
|
||||
class ConditionalRouterComponent(Component):
|
||||
display_name = "Conditional Router"
|
||||
display_name = "If-Else"
|
||||
description = "Routes an input message to a corresponding output based on text comparison."
|
||||
icon = "equal"
|
||||
icon = "split"
|
||||
name = "ConditionalRouter"
|
||||
legacy = True
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
|
@ -16,7 +17,7 @@ class ConditionalRouterComponent(Component):
|
|||
inputs = [
|
||||
MessageTextInput(
|
||||
name="input_text",
|
||||
display_name="Input Text",
|
||||
display_name="Text Input",
|
||||
info="The primary text input for the operation.",
|
||||
),
|
||||
MessageTextInput(
|
||||
|
|
@ -30,7 +31,6 @@ class ConditionalRouterComponent(Component):
|
|||
options=["equals", "not equals", "contains", "starts with", "ends with"],
|
||||
info="The operator to apply for comparing the texts.",
|
||||
value="equals",
|
||||
advanced=True,
|
||||
),
|
||||
BoolInput(
|
||||
name="case_sensitive",
|
||||
|
|
@ -43,6 +43,7 @@ class ConditionalRouterComponent(Component):
|
|||
name="message",
|
||||
display_name="Message",
|
||||
info="The message to pass through either route.",
|
||||
advanced=True,
|
||||
),
|
||||
IntInput(
|
||||
name="max_iterations",
|
||||
|
|
@ -61,8 +62,8 @@ class ConditionalRouterComponent(Component):
|
|||
]
|
||||
|
||||
outputs = [
|
||||
Output(display_name="True Route", name="true_result", method="true_response"),
|
||||
Output(display_name="False Route", name="false_result", method="false_response"),
|
||||
Output(display_name="True", name="true_result", method="true_response"),
|
||||
Output(display_name="False", name="false_result", method="false_response"),
|
||||
]
|
||||
|
||||
def _pre_run_setup(self):
|
||||
|
|
@ -6,11 +6,12 @@ from langflow.schema import Data, dotdict
|
|||
|
||||
|
||||
class DataConditionalRouterComponent(Component):
|
||||
display_name = "Data Conditional Router"
|
||||
display_name = "Condition"
|
||||
description = "Route Data object(s) based on a condition applied to a specified key, including boolean validation."
|
||||
icon = "split"
|
||||
beta = True
|
||||
name = "DataConditionalRouter"
|
||||
legacy = True
|
||||
|
||||
inputs = [
|
||||
DataInput(
|
||||
|
|
@ -26,14 +27,14 @@ class DataConditionalRouterComponent(Component):
|
|||
),
|
||||
DropdownInput(
|
||||
name="operator",
|
||||
display_name="Comparison Operator",
|
||||
display_name="Operator",
|
||||
options=["equals", "not equals", "contains", "starts with", "ends with", "boolean validator"],
|
||||
info="The operator to apply for comparing the values. 'boolean validator' treats the value as a boolean.",
|
||||
value="equals",
|
||||
),
|
||||
MessageTextInput(
|
||||
name="compare_value",
|
||||
display_name="Compare Value",
|
||||
display_name="Match Text",
|
||||
info="The value to compare against (not used for boolean validator)",
|
||||
),
|
||||
]
|
||||
|
|
@ -20,6 +20,7 @@ class FlowToolComponent(LCToolComponent):
|
|||
trace_type = "tool"
|
||||
name = "FlowTool"
|
||||
beta = True
|
||||
icon = "hammer"
|
||||
|
||||
def get_flow_names(self) -> list[str]:
|
||||
flow_datas = self.list_flows()
|
||||
|
|
@ -7,6 +7,7 @@ class ListenComponent(CustomComponent):
|
|||
description = "A component to listen for a notification."
|
||||
name = "Listen"
|
||||
beta: bool = True
|
||||
icon = "Radio"
|
||||
|
||||
def build_config(self):
|
||||
return {
|
||||
|
|
@ -16,6 +16,8 @@ class RunFlowComponent(Component):
|
|||
description = "A component to run a flow."
|
||||
name = "RunFlow"
|
||||
beta: bool = True
|
||||
legacy: bool = True
|
||||
icon = "workflow"
|
||||
|
||||
def get_flow_names(self) -> list[str]:
|
||||
flow_data = self.list_flows()
|
||||
|
|
@ -16,6 +16,7 @@ class SubFlowComponent(Component):
|
|||
description = "Generates a Component from a Flow, with all of its inputs, and "
|
||||
name = "SubFlow"
|
||||
beta: bool = True
|
||||
icon = "Workflow"
|
||||
|
||||
def get_flow_names(self) -> list[str]:
|
||||
flow_data = self.list_flows()
|
||||
5
src/backend/base/langflow/components/mem0/__init__.py
Normal file
5
src/backend/base/langflow/components/mem0/__init__.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
from .mem0_chat_memory import Mem0MemoryComponent
|
||||
|
||||
__all__ = [
|
||||
"Mem0MemoryComponent",
|
||||
]
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
from .astra_db import AstraDBChatMemory
|
||||
from .cassandra import CassandraChatMemory
|
||||
from .memory import MemoryComponent
|
||||
from .redis import RedisIndexChatMemory
|
||||
from .store_message import StoreMessageComponent
|
||||
from .zep import ZepChatMemory
|
||||
|
||||
__all__ = [
|
||||
"AstraDBChatMemory",
|
||||
"CassandraChatMemory",
|
||||
"MemoryComponent",
|
||||
"RedisIndexChatMemory",
|
||||
"ZepChatMemory",
|
||||
"StoreMessageComponent",
|
||||
]
|
||||
|
|
@ -70,9 +70,8 @@ class MemoryComponent(Component):
|
|||
]
|
||||
|
||||
outputs = [
|
||||
Output(display_name="Messages (Data)", name="messages", method="retrieve_messages"),
|
||||
Output(display_name="Messages (Text)", name="messages_text", method="retrieve_messages_as_text"),
|
||||
Output(display_name="Memory", name="lc_memory", method="build_lc_memory"),
|
||||
Output(display_name="Data", name="messages", method="retrieve_messages"),
|
||||
Output(display_name="Text", name="messages_text", method="retrieve_messages_as_text"),
|
||||
]
|
||||
|
||||
def retrieve_messages(self) -> Data:
|
||||
|
|
@ -7,6 +7,7 @@ class ZepChatMemory(LCChatMemoryComponent):
|
|||
display_name = "Zep Chat Memory"
|
||||
description = "Retrieves and store chat messages from Zep."
|
||||
name = "ZepChatMemory"
|
||||
icon = "ZepMemory"
|
||||
|
||||
inputs = [
|
||||
MessageTextInput(name="url", display_name="Zep URL", info="URL of the Zep instance."),
|
||||
|
|
|
|||
|
|
@ -5,7 +5,12 @@ from .azure_openai import AzureChatOpenAIComponent
|
|||
from .baidu_qianfan_chat import QianfanChatEndpointComponent
|
||||
from .cohere import CohereComponent
|
||||
from .google_generative_ai import GoogleGenerativeAIComponent
|
||||
from .groq import GroqModel
|
||||
from .huggingface import HuggingFaceEndpointsComponent
|
||||
from .lmstudiomodel import LMStudioModelComponent
|
||||
from .maritalk import MaritalkModelComponent
|
||||
from .mistral import MistralAIModelComponent
|
||||
from .nvidia import NVIDIAModelComponent
|
||||
from .ollama import ChatOllamaComponent
|
||||
from .openai import OpenAIModelComponent
|
||||
from .perplexity import PerplexityComponent
|
||||
|
|
@ -20,9 +25,13 @@ __all__ = [
|
|||
"ChatVertexAIComponent",
|
||||
"CohereComponent",
|
||||
"GoogleGenerativeAIComponent",
|
||||
"GroqModel",
|
||||
"HuggingFaceEndpointsComponent",
|
||||
"LMStudioModelComponent",
|
||||
"MaritalkModelComponent",
|
||||
"MistralAIModelComponent",
|
||||
"NVIDIAModelComponent",
|
||||
"OpenAIModelComponent",
|
||||
"PerplexityComponent",
|
||||
"QianfanChatEndpointComponent",
|
||||
"base",
|
||||
]
|
||||
|
|
|
|||
3
src/backend/base/langflow/components/nvidia/__init__.py
Normal file
3
src/backend/base/langflow/components/nvidia/__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
from .nvidia_rerank import NvidiaRerankComponent
|
||||
|
||||
__all__ = ["NvidiaRerankComponent"]
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
from .output_parser import OutputParserComponent
|
||||
|
||||
__all__ = ["OutputParserComponent"]
|
||||
25
src/backend/base/langflow/components/processing/__init__.py
Normal file
25
src/backend/base/langflow/components/processing/__init__.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
from .combine_text import CombineTextComponent
|
||||
from .create_data import CreateDataComponent
|
||||
from .extract_key import ExtractDataKeyComponent
|
||||
from .filter_data_values import DataFilterComponent
|
||||
from .json_cleaner import JSONCleaner
|
||||
from .merge_data import MergeDataComponent
|
||||
from .message_to_data import MessageToDataComponent
|
||||
from .parse_data import ParseDataComponent
|
||||
from .parse_json_data import ParseJSONDataComponent
|
||||
from .select_data import SelectDataComponent
|
||||
from .update_data import UpdateDataComponent
|
||||
|
||||
__all__ = [
|
||||
"CreateDataComponent",
|
||||
"ExtractDataKeyComponent",
|
||||
"DataFilterComponent",
|
||||
"MergeDataComponent",
|
||||
"MessageToDataComponent",
|
||||
"ParseDataComponent",
|
||||
"SelectDataComponent",
|
||||
"UpdateDataComponent",
|
||||
"ParseJSONDataComponent",
|
||||
"JSONCleaner",
|
||||
"CombineTextComponent",
|
||||
]
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue