From e28093234b82824b7640469fa46a6b361bdf648f Mon Sep 17 00:00:00 2001 From: Edwin Jose Date: Wed, 2 Jul 2025 15:11:59 -0500 Subject: [PATCH] ref: sidebar experience improvement with new bundles (#8824) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * cohere sidebar * side bar embeddings * move memories * sort style utils * [autofix.ci] apply automated fixes * serach components add * Update __init__.py * Update styleUtils.ts * [autofix.ci] apply automated fixes * Update model_input_constants.py * fix lint * update to wikipedia * ✨ (tableInputComponent.spec.ts): Refactor test to use for loops for better readability and efficiency ✨ (filterEdge-shard-1.spec.ts): Update model names for better clarity and consistency 🐛 (duckduckgo.spec.ts): Update selector for search button to match changes in the frontend 🐛 (generalBugs-shard-11.spec.ts): Update selector for search button to match changes in the frontend * [autofix.ci] apply automated fixes * update tests path * update tests * Update test_arxiv_component.py * [autofix.ci] apply automated fixes * make embeddings functions --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: cristhianzl --- .../base/models/model_input_constants.py | 8 +- .../langflow/components/arxiv/__init__.py | 3 + .../components/{search => arxiv}/arxiv.py | 0 .../langflow/components/baidu/__init__.py | 3 + .../baidu_qianfan_chat.py | 0 .../base/langflow/components/bing/__init__.py | 3 + .../{search => bing}/bing_search_api.py | 0 .../components/cloudflare/__init__.py | 3 + .../{embeddings => cloudflare}/cloudflare.py | 0 .../langflow/components/cohere/__init__.py | 4 +- .../cohere.py => cohere/cohere_embeddings.py} | 0 .../cohere.py => cohere/cohere_models.py} | 2 +- .../langflow/components/deepseek/__init__.py | 3 + .../{languagemodels => deepseek}/deepseek.py | 0 .../components/duckduckgo/__init__.py | 3 + .../duck_duck_go_search_run.py | 0 .../components/embeddings/__init__.py | 6 - .../components/embeddings/similarity.py | 1 + .../components/embeddings/text_embedder.py | 1 + .../base/langflow/components/exa/__init__.py | 3 + .../components/{search => exa}/exa_search.py | 0 .../langflow/components/glean/__init__.py | 3 + .../{search => glean}/glean_search_api.py | 0 .../google_search_api_core.py | 0 .../google_serper_api_core.py | 0 .../base/langflow/components/groq/__init__.py | 3 + .../{languagemodels => groq}/groq.py | 0 .../components/languagemodels/__init__.py | 31 ----- .../langflow/components/lmstudio/__init__.py | 4 + .../lmstudioembeddings.py | 0 .../lmstudiomodel.py | 0 .../langflow/components/maritalk/__init__.py | 3 + .../{languagemodels => maritalk}/maritalk.py | 0 .../base/langflow/components/mem0/__init__.py | 3 + .../{memories => mem0}/mem0_chat_memory.py | 0 .../langflow/components/memories/__init__.py | 9 -- .../langflow/components/mistral/__init__.py | 4 + .../{languagemodels => mistral}/mistral.py | 0 .../mistral_embeddings.py} | 0 .../langflow/components/novita/__init__.py | 3 + .../{languagemodels => novita}/novita.py | 0 .../components/openrouter/__init__.py | 3 + .../openrouter.py | 0 .../components/perplexity/__init__.py | 3 + .../perplexity.py | 0 .../langflow/components/redis/__init__.py | 3 + .../components/{memories => redis}/redis.py | 0 .../langflow/components/sambanova/__init__.py | 3 + .../sambanova.py | 0 .../langflow/components/search/__init__.py | 29 ----- .../langflow/components/searchapi/__init__.py | 0 .../{search => searchapi}/search.py | 0 .../langflow/components/serpapi/__init__.py | 3 + .../components/{search => serpapi}/serp.py | 0 .../langflow/components/wikipedia/__init__.py | 4 + .../{search => wikipedia}/wikidata.py | 0 .../{search => wikipedia}/wikipedia.py | 0 .../components/wolframalpha/__init__.py | 3 + .../wolfram_alpha_api.py | 0 .../base/langflow/components/xai/__init__.py | 3 + .../components/{languagemodels => xai}/xai.py | 0 .../components/yahoosearch/__init__.py | 3 + .../{search => yahoosearch}/yahoo.py | 0 .../base/langflow/components/zep/__init__.py | 3 + .../components/{memories => zep}/zep.py | 0 .../Custom Component Generator.json | 28 ++--- .../starter_projects/Research Agent.json | 40 +++---- .../Research Translation Loop.json | 28 ++--- .../Sequential Tasks Agents.json | 44 +++---- .../languagemodels/test_baidu_qianfan.py | 2 +- .../languagemodels/test_deepseek.py | 2 +- .../components/languagemodels/test_xai.py | 8 +- .../components/search/test_arxiv_component.py | 4 +- .../search/test_google_search_api.py | 2 +- .../search/test_google_serper_api_core.py | 2 +- .../components/search/test_wikidata_api.py | 2 +- .../components/search/test_wikipedia_api.py | 2 +- .../components/search/test_yfinance_tool.py | 6 +- .../unit/components/tools/test_serp_api.py | 6 +- src/frontend/src/utils/styleUtils.ts | 108 ++++++++++-------- .../core/unit/tableInputComponent.spec.ts | 17 +-- .../features/filterEdge-shard-1.spec.ts | 20 ++-- .../extended/integrations/duckduckgo.spec.ts | 11 +- .../regression/generalBugs-shard-11.spec.ts | 4 +- 84 files changed, 264 insertions(+), 238 deletions(-) create mode 100644 src/backend/base/langflow/components/arxiv/__init__.py rename src/backend/base/langflow/components/{search => arxiv}/arxiv.py (100%) create mode 100644 src/backend/base/langflow/components/baidu/__init__.py rename src/backend/base/langflow/components/{languagemodels => baidu}/baidu_qianfan_chat.py (100%) create mode 100644 src/backend/base/langflow/components/bing/__init__.py rename src/backend/base/langflow/components/{search => bing}/bing_search_api.py (100%) create mode 100644 src/backend/base/langflow/components/cloudflare/__init__.py rename src/backend/base/langflow/components/{embeddings => cloudflare}/cloudflare.py (100%) rename src/backend/base/langflow/components/{embeddings/cohere.py => cohere/cohere_embeddings.py} (100%) rename src/backend/base/langflow/components/{languagemodels/cohere.py => cohere/cohere_models.py} (97%) create mode 100644 src/backend/base/langflow/components/deepseek/__init__.py rename src/backend/base/langflow/components/{languagemodels => deepseek}/deepseek.py (100%) create mode 100644 src/backend/base/langflow/components/duckduckgo/__init__.py rename src/backend/base/langflow/components/{search => duckduckgo}/duck_duck_go_search_run.py (100%) create mode 100644 src/backend/base/langflow/components/exa/__init__.py rename src/backend/base/langflow/components/{search => exa}/exa_search.py (100%) create mode 100644 src/backend/base/langflow/components/glean/__init__.py rename src/backend/base/langflow/components/{search => glean}/glean_search_api.py (100%) rename src/backend/base/langflow/components/{search => google}/google_search_api_core.py (100%) rename src/backend/base/langflow/components/{search => google}/google_serper_api_core.py (100%) create mode 100644 src/backend/base/langflow/components/groq/__init__.py rename src/backend/base/langflow/components/{languagemodels => groq}/groq.py (100%) delete mode 100644 src/backend/base/langflow/components/languagemodels/__init__.py create mode 100644 src/backend/base/langflow/components/lmstudio/__init__.py rename src/backend/base/langflow/components/{embeddings => lmstudio}/lmstudioembeddings.py (100%) rename src/backend/base/langflow/components/{languagemodels => lmstudio}/lmstudiomodel.py (100%) create mode 100644 src/backend/base/langflow/components/maritalk/__init__.py rename src/backend/base/langflow/components/{languagemodels => maritalk}/maritalk.py (100%) create mode 100644 src/backend/base/langflow/components/mem0/__init__.py rename src/backend/base/langflow/components/{memories => mem0}/mem0_chat_memory.py (100%) delete mode 100644 src/backend/base/langflow/components/memories/__init__.py create mode 100644 src/backend/base/langflow/components/mistral/__init__.py rename src/backend/base/langflow/components/{languagemodels => mistral}/mistral.py (100%) rename src/backend/base/langflow/components/{embeddings/mistral.py => mistral/mistral_embeddings.py} (100%) create mode 100644 src/backend/base/langflow/components/novita/__init__.py rename src/backend/base/langflow/components/{languagemodels => novita}/novita.py (100%) create mode 100644 src/backend/base/langflow/components/openrouter/__init__.py rename src/backend/base/langflow/components/{languagemodels => openrouter}/openrouter.py (100%) create mode 100644 src/backend/base/langflow/components/perplexity/__init__.py rename src/backend/base/langflow/components/{languagemodels => perplexity}/perplexity.py (100%) create mode 100644 src/backend/base/langflow/components/redis/__init__.py rename src/backend/base/langflow/components/{memories => redis}/redis.py (100%) create mode 100644 src/backend/base/langflow/components/sambanova/__init__.py rename src/backend/base/langflow/components/{languagemodels => sambanova}/sambanova.py (100%) delete mode 100644 src/backend/base/langflow/components/search/__init__.py create mode 100644 src/backend/base/langflow/components/searchapi/__init__.py rename src/backend/base/langflow/components/{search => searchapi}/search.py (100%) create mode 100644 src/backend/base/langflow/components/serpapi/__init__.py rename src/backend/base/langflow/components/{search => serpapi}/serp.py (100%) create mode 100644 src/backend/base/langflow/components/wikipedia/__init__.py rename src/backend/base/langflow/components/{search => wikipedia}/wikidata.py (100%) rename src/backend/base/langflow/components/{search => wikipedia}/wikipedia.py (100%) create mode 100644 src/backend/base/langflow/components/wolframalpha/__init__.py rename src/backend/base/langflow/components/{search => wolframalpha}/wolfram_alpha_api.py (100%) create mode 100644 src/backend/base/langflow/components/xai/__init__.py rename src/backend/base/langflow/components/{languagemodels => xai}/xai.py (100%) create mode 100644 src/backend/base/langflow/components/yahoosearch/__init__.py rename src/backend/base/langflow/components/{search => yahoosearch}/yahoo.py (100%) create mode 100644 src/backend/base/langflow/components/zep/__init__.py rename src/backend/base/langflow/components/{memories => zep}/zep.py (100%) diff --git a/src/backend/base/langflow/base/models/model_input_constants.py b/src/backend/base/langflow/base/models/model_input_constants.py index abc07dab2..c90e20dbd 100644 --- a/src/backend/base/langflow/base/models/model_input_constants.py +++ b/src/backend/base/langflow/base/models/model_input_constants.py @@ -5,10 +5,10 @@ from langflow.components.amazon.amazon_bedrock_model import AmazonBedrockCompone from langflow.components.anthropic.anthropic import AnthropicModelComponent from langflow.components.azure.azure_openai import AzureChatOpenAIComponent from langflow.components.google.google_generative_ai import GoogleGenerativeAIComponent -from langflow.components.languagemodels.groq import GroqModel -from langflow.components.languagemodels.sambanova import SambaNovaComponent +from langflow.components.groq.groq import GroqModel from langflow.components.nvidia.nvidia import NVIDIAModelComponent from langflow.components.openai.openai_chat_model import OpenAIModelComponent +from langflow.components.sambanova.sambanova import SambaNovaComponent from langflow.inputs.inputs import InputTypes, SecretStrInput from langflow.template.field.base import Input @@ -125,7 +125,7 @@ def _get_azure_inputs_and_fields(): def _get_groq_inputs_and_fields(): try: - from langflow.components.languagemodels.groq import GroqModel + from langflow.components.groq.groq import GroqModel groq_inputs = get_filtered_inputs(GroqModel) except ImportError as e: @@ -169,7 +169,7 @@ def _get_amazon_bedrock_inputs_and_fields(): def _get_sambanova_inputs_and_fields(): try: - from langflow.components.languagemodels.sambanova import SambaNovaComponent + from langflow.components.sambanova.sambanova import SambaNovaComponent sambanova_inputs = get_filtered_inputs(SambaNovaComponent) except ImportError as e: diff --git a/src/backend/base/langflow/components/arxiv/__init__.py b/src/backend/base/langflow/components/arxiv/__init__.py new file mode 100644 index 000000000..af80275db --- /dev/null +++ b/src/backend/base/langflow/components/arxiv/__init__.py @@ -0,0 +1,3 @@ +from .arxiv import ArXivComponent + +__all__ = ["ArXivComponent"] diff --git a/src/backend/base/langflow/components/search/arxiv.py b/src/backend/base/langflow/components/arxiv/arxiv.py similarity index 100% rename from src/backend/base/langflow/components/search/arxiv.py rename to src/backend/base/langflow/components/arxiv/arxiv.py diff --git a/src/backend/base/langflow/components/baidu/__init__.py b/src/backend/base/langflow/components/baidu/__init__.py new file mode 100644 index 000000000..f6428f279 --- /dev/null +++ b/src/backend/base/langflow/components/baidu/__init__.py @@ -0,0 +1,3 @@ +from .baidu_qianfan_chat import QianfanChatEndpoint + +__all__ = ["QianfanChatEndpoint"] diff --git a/src/backend/base/langflow/components/languagemodels/baidu_qianfan_chat.py b/src/backend/base/langflow/components/baidu/baidu_qianfan_chat.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/baidu_qianfan_chat.py rename to src/backend/base/langflow/components/baidu/baidu_qianfan_chat.py diff --git a/src/backend/base/langflow/components/bing/__init__.py b/src/backend/base/langflow/components/bing/__init__.py new file mode 100644 index 000000000..a8ede948e --- /dev/null +++ b/src/backend/base/langflow/components/bing/__init__.py @@ -0,0 +1,3 @@ +from .bing_search_api import BingSearchAPIComponent + +__all__ = ["BingSearchAPIComponent"] diff --git a/src/backend/base/langflow/components/search/bing_search_api.py b/src/backend/base/langflow/components/bing/bing_search_api.py similarity index 100% rename from src/backend/base/langflow/components/search/bing_search_api.py rename to src/backend/base/langflow/components/bing/bing_search_api.py diff --git a/src/backend/base/langflow/components/cloudflare/__init__.py b/src/backend/base/langflow/components/cloudflare/__init__.py new file mode 100644 index 000000000..1bf129f6a --- /dev/null +++ b/src/backend/base/langflow/components/cloudflare/__init__.py @@ -0,0 +1,3 @@ +from .cloudflare import CloudflareWorkersAIEmbeddingsComponent + +__all__ = ["CloudflareWorkersAIEmbeddingsComponent"] diff --git a/src/backend/base/langflow/components/embeddings/cloudflare.py b/src/backend/base/langflow/components/cloudflare/cloudflare.py similarity index 100% rename from src/backend/base/langflow/components/embeddings/cloudflare.py rename to src/backend/base/langflow/components/cloudflare/cloudflare.py diff --git a/src/backend/base/langflow/components/cohere/__init__.py b/src/backend/base/langflow/components/cohere/__init__.py index 91945ee27..c4b44ad77 100644 --- a/src/backend/base/langflow/components/cohere/__init__.py +++ b/src/backend/base/langflow/components/cohere/__init__.py @@ -1,3 +1,5 @@ +from .cohere_embeddings import CohereEmbeddingsComponent +from .cohere_models import CohereComponent from .cohere_rerank import CohereRerankComponent -__all__ = ["CohereRerankComponent"] +__all__ = ["CohereComponent", "CohereEmbeddingsComponent", "CohereRerankComponent"] diff --git a/src/backend/base/langflow/components/embeddings/cohere.py b/src/backend/base/langflow/components/cohere/cohere_embeddings.py similarity index 100% rename from src/backend/base/langflow/components/embeddings/cohere.py rename to src/backend/base/langflow/components/cohere/cohere_embeddings.py diff --git a/src/backend/base/langflow/components/languagemodels/cohere.py b/src/backend/base/langflow/components/cohere/cohere_models.py similarity index 97% rename from src/backend/base/langflow/components/languagemodels/cohere.py rename to src/backend/base/langflow/components/cohere/cohere_models.py index 182dc9f4c..4517cedd5 100644 --- a/src/backend/base/langflow/components/languagemodels/cohere.py +++ b/src/backend/base/langflow/components/cohere/cohere_models.py @@ -8,7 +8,7 @@ from langflow.io import SecretStrInput, SliderInput class CohereComponent(LCModelComponent): - display_name = "Cohere" + display_name = "Cohere Language Models" description = "Generate text using Cohere LLMs." documentation = "https://python.langchain.com/docs/modules/model_io/models/llms/integrations/cohere" icon = "Cohere" diff --git a/src/backend/base/langflow/components/deepseek/__init__.py b/src/backend/base/langflow/components/deepseek/__init__.py new file mode 100644 index 000000000..e03101663 --- /dev/null +++ b/src/backend/base/langflow/components/deepseek/__init__.py @@ -0,0 +1,3 @@ +from .deepseek import DeepSeekModelComponent + +__all__ = ["DeepSeekModelComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/deepseek.py b/src/backend/base/langflow/components/deepseek/deepseek.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/deepseek.py rename to src/backend/base/langflow/components/deepseek/deepseek.py diff --git a/src/backend/base/langflow/components/duckduckgo/__init__.py b/src/backend/base/langflow/components/duckduckgo/__init__.py new file mode 100644 index 000000000..f07501862 --- /dev/null +++ b/src/backend/base/langflow/components/duckduckgo/__init__.py @@ -0,0 +1,3 @@ +from .duck_duck_go_search_run import DuckDuckGoSearchComponent + +__all__ = ["DuckDuckGoSearchComponent"] diff --git a/src/backend/base/langflow/components/search/duck_duck_go_search_run.py b/src/backend/base/langflow/components/duckduckgo/duck_duck_go_search_run.py similarity index 100% rename from src/backend/base/langflow/components/search/duck_duck_go_search_run.py rename to src/backend/base/langflow/components/duckduckgo/duck_duck_go_search_run.py diff --git a/src/backend/base/langflow/components/embeddings/__init__.py b/src/backend/base/langflow/components/embeddings/__init__.py index 414f3c94b..5afb22808 100644 --- a/src/backend/base/langflow/components/embeddings/__init__.py +++ b/src/backend/base/langflow/components/embeddings/__init__.py @@ -1,15 +1,9 @@ -from .cloudflare import CloudflareWorkersAIEmbeddingsComponent -from .cohere import CohereEmbeddingsComponent -from .lmstudioembeddings import LMStudioEmbeddingsComponent -from .mistral import MistralAIEmbeddingsComponent from .similarity import EmbeddingSimilarityComponent from .text_embedder import TextEmbedderComponent __all__ = [ "CloudflareWorkersAIEmbeddingsComponent", - "CohereEmbeddingsComponent", "EmbeddingSimilarityComponent", - "LMStudioEmbeddingsComponent", "MistralAIEmbeddingsComponent", "TextEmbedderComponent", ] diff --git a/src/backend/base/langflow/components/embeddings/similarity.py b/src/backend/base/langflow/components/embeddings/similarity.py index fc0e5dcf6..dc132214b 100644 --- a/src/backend/base/langflow/components/embeddings/similarity.py +++ b/src/backend/base/langflow/components/embeddings/similarity.py @@ -11,6 +11,7 @@ class EmbeddingSimilarityComponent(Component): display_name: str = "Embedding Similarity" description: str = "Compute selected form of similarity between two embedding vectors." icon = "equal" + legacy: bool = True inputs = [ DataInput( diff --git a/src/backend/base/langflow/components/embeddings/text_embedder.py b/src/backend/base/langflow/components/embeddings/text_embedder.py index f7224ebcb..22fb0326c 100644 --- a/src/backend/base/langflow/components/embeddings/text_embedder.py +++ b/src/backend/base/langflow/components/embeddings/text_embedder.py @@ -14,6 +14,7 @@ class TextEmbedderComponent(Component): display_name: str = "Text Embedder" description: str = "Generate embeddings for a given message using the specified embedding model." icon = "binary" + legacy: bool = True inputs = [ HandleInput( name="embedding_model", diff --git a/src/backend/base/langflow/components/exa/__init__.py b/src/backend/base/langflow/components/exa/__init__.py new file mode 100644 index 000000000..8db0a618a --- /dev/null +++ b/src/backend/base/langflow/components/exa/__init__.py @@ -0,0 +1,3 @@ +from .exa_search import ExaSearchToolkit + +__all__ = ["ExaSearchToolkit"] diff --git a/src/backend/base/langflow/components/search/exa_search.py b/src/backend/base/langflow/components/exa/exa_search.py similarity index 100% rename from src/backend/base/langflow/components/search/exa_search.py rename to src/backend/base/langflow/components/exa/exa_search.py diff --git a/src/backend/base/langflow/components/glean/__init__.py b/src/backend/base/langflow/components/glean/__init__.py new file mode 100644 index 000000000..d1162513b --- /dev/null +++ b/src/backend/base/langflow/components/glean/__init__.py @@ -0,0 +1,3 @@ +from .glean_search_api import GleanSearchAPISchema + +__all__ = ["GleanSearchAPISchema"] diff --git a/src/backend/base/langflow/components/search/glean_search_api.py b/src/backend/base/langflow/components/glean/glean_search_api.py similarity index 100% rename from src/backend/base/langflow/components/search/glean_search_api.py rename to src/backend/base/langflow/components/glean/glean_search_api.py diff --git a/src/backend/base/langflow/components/search/google_search_api_core.py b/src/backend/base/langflow/components/google/google_search_api_core.py similarity index 100% rename from src/backend/base/langflow/components/search/google_search_api_core.py rename to src/backend/base/langflow/components/google/google_search_api_core.py diff --git a/src/backend/base/langflow/components/search/google_serper_api_core.py b/src/backend/base/langflow/components/google/google_serper_api_core.py similarity index 100% rename from src/backend/base/langflow/components/search/google_serper_api_core.py rename to src/backend/base/langflow/components/google/google_serper_api_core.py diff --git a/src/backend/base/langflow/components/groq/__init__.py b/src/backend/base/langflow/components/groq/__init__.py new file mode 100644 index 000000000..ff90827ad --- /dev/null +++ b/src/backend/base/langflow/components/groq/__init__.py @@ -0,0 +1,3 @@ +from .groq import GroqModel + +__all__ = ["GroqModel"] diff --git a/src/backend/base/langflow/components/languagemodels/groq.py b/src/backend/base/langflow/components/groq/groq.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/groq.py rename to src/backend/base/langflow/components/groq/groq.py diff --git a/src/backend/base/langflow/components/languagemodels/__init__.py b/src/backend/base/langflow/components/languagemodels/__init__.py deleted file mode 100644 index e642b9cca..000000000 --- a/src/backend/base/langflow/components/languagemodels/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -from .baidu_qianfan_chat import QianfanChatEndpointComponent -from .cohere import CohereComponent -from .deepseek import DeepSeekModelComponent -from .groq import GroqModel -from .lmstudiomodel import LMStudioModelComponent -from .maritalk import MaritalkModelComponent -from .mistral import MistralAIModelComponent -from .novita import NovitaModelComponent -from .openrouter import OpenRouterComponent -from .perplexity import PerplexityComponent -from .sambanova import SambaNovaComponent -from .xai import XAIModelComponent - -__all__ = [ - "ChatOllamaComponent", - "ChatVertexAIComponent", - "CohereComponent", - "DeepSeekModelComponent", - "GroqModel", - "HuggingFaceEndpointsComponent", - "LMStudioModelComponent", - "MaritalkModelComponent", - "MistralAIModelComponent", - "NovitaModelComponent", - "OpenRouterComponent", - "PerplexityComponent", - "QianfanChatEndpointComponent", - "SambaNovaComponent", - "WatsonxAIComponent", - "XAIModelComponent", -] diff --git a/src/backend/base/langflow/components/lmstudio/__init__.py b/src/backend/base/langflow/components/lmstudio/__init__.py new file mode 100644 index 000000000..0c0c8d08a --- /dev/null +++ b/src/backend/base/langflow/components/lmstudio/__init__.py @@ -0,0 +1,4 @@ +from .lmstudioembeddings import LMStudioEmbeddingsComponent +from .lmstudiomodel import LMStudioModelComponent + +__all__ = ["LMStudioEmbeddingsComponent", "LMStudioModelComponent"] diff --git a/src/backend/base/langflow/components/embeddings/lmstudioembeddings.py b/src/backend/base/langflow/components/lmstudio/lmstudioembeddings.py similarity index 100% rename from src/backend/base/langflow/components/embeddings/lmstudioembeddings.py rename to src/backend/base/langflow/components/lmstudio/lmstudioembeddings.py diff --git a/src/backend/base/langflow/components/languagemodels/lmstudiomodel.py b/src/backend/base/langflow/components/lmstudio/lmstudiomodel.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/lmstudiomodel.py rename to src/backend/base/langflow/components/lmstudio/lmstudiomodel.py diff --git a/src/backend/base/langflow/components/maritalk/__init__.py b/src/backend/base/langflow/components/maritalk/__init__.py new file mode 100644 index 000000000..881e7b533 --- /dev/null +++ b/src/backend/base/langflow/components/maritalk/__init__.py @@ -0,0 +1,3 @@ +from .maritalk import MaritalkModelComponent + +__all__ = ["MaritalkModelComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/maritalk.py b/src/backend/base/langflow/components/maritalk/maritalk.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/maritalk.py rename to src/backend/base/langflow/components/maritalk/maritalk.py diff --git a/src/backend/base/langflow/components/mem0/__init__.py b/src/backend/base/langflow/components/mem0/__init__.py new file mode 100644 index 000000000..621421efc --- /dev/null +++ b/src/backend/base/langflow/components/mem0/__init__.py @@ -0,0 +1,3 @@ +from .mem0_chat_memory import Mem0MemoryComponent + +__all__ = ["Mem0MemoryComponent"] diff --git a/src/backend/base/langflow/components/memories/mem0_chat_memory.py b/src/backend/base/langflow/components/mem0/mem0_chat_memory.py similarity index 100% rename from src/backend/base/langflow/components/memories/mem0_chat_memory.py rename to src/backend/base/langflow/components/mem0/mem0_chat_memory.py diff --git a/src/backend/base/langflow/components/memories/__init__.py b/src/backend/base/langflow/components/memories/__init__.py deleted file mode 100644 index f92a391e9..000000000 --- a/src/backend/base/langflow/components/memories/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .mem0_chat_memory import Mem0MemoryComponent -from .redis import RedisIndexChatMemory -from .zep import ZepChatMemory - -__all__ = [ - "Mem0MemoryComponent", - "RedisIndexChatMemory", - "ZepChatMemory", -] diff --git a/src/backend/base/langflow/components/mistral/__init__.py b/src/backend/base/langflow/components/mistral/__init__.py new file mode 100644 index 000000000..5e1329297 --- /dev/null +++ b/src/backend/base/langflow/components/mistral/__init__.py @@ -0,0 +1,4 @@ +from .mistral import MistralAIModelComponent +from .mistral_embeddings import MistralAIEmbeddingsComponent + +__all__ = ["MistralAIEmbeddingsComponent", "MistralAIModelComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/mistral.py b/src/backend/base/langflow/components/mistral/mistral.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/mistral.py rename to src/backend/base/langflow/components/mistral/mistral.py diff --git a/src/backend/base/langflow/components/embeddings/mistral.py b/src/backend/base/langflow/components/mistral/mistral_embeddings.py similarity index 100% rename from src/backend/base/langflow/components/embeddings/mistral.py rename to src/backend/base/langflow/components/mistral/mistral_embeddings.py diff --git a/src/backend/base/langflow/components/novita/__init__.py b/src/backend/base/langflow/components/novita/__init__.py new file mode 100644 index 000000000..df6532831 --- /dev/null +++ b/src/backend/base/langflow/components/novita/__init__.py @@ -0,0 +1,3 @@ +from .novita import NovitaModelComponent + +__all__ = ["NovitaModelComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/novita.py b/src/backend/base/langflow/components/novita/novita.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/novita.py rename to src/backend/base/langflow/components/novita/novita.py diff --git a/src/backend/base/langflow/components/openrouter/__init__.py b/src/backend/base/langflow/components/openrouter/__init__.py new file mode 100644 index 000000000..7a4b6a70a --- /dev/null +++ b/src/backend/base/langflow/components/openrouter/__init__.py @@ -0,0 +1,3 @@ +from .openrouter import OpenRouterComponent + +__all__ = ["OpenRouterComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/openrouter.py b/src/backend/base/langflow/components/openrouter/openrouter.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/openrouter.py rename to src/backend/base/langflow/components/openrouter/openrouter.py diff --git a/src/backend/base/langflow/components/perplexity/__init__.py b/src/backend/base/langflow/components/perplexity/__init__.py new file mode 100644 index 000000000..b16cef4f6 --- /dev/null +++ b/src/backend/base/langflow/components/perplexity/__init__.py @@ -0,0 +1,3 @@ +from .perplexity import PerplexityComponent + +__all__ = ["PerplexityComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/perplexity.py b/src/backend/base/langflow/components/perplexity/perplexity.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/perplexity.py rename to src/backend/base/langflow/components/perplexity/perplexity.py diff --git a/src/backend/base/langflow/components/redis/__init__.py b/src/backend/base/langflow/components/redis/__init__.py new file mode 100644 index 000000000..b5148e15f --- /dev/null +++ b/src/backend/base/langflow/components/redis/__init__.py @@ -0,0 +1,3 @@ +from .redis import RedisIndexChatMemory + +__all__ = ["RedisIndexChatMemory"] diff --git a/src/backend/base/langflow/components/memories/redis.py b/src/backend/base/langflow/components/redis/redis.py similarity index 100% rename from src/backend/base/langflow/components/memories/redis.py rename to src/backend/base/langflow/components/redis/redis.py diff --git a/src/backend/base/langflow/components/sambanova/__init__.py b/src/backend/base/langflow/components/sambanova/__init__.py new file mode 100644 index 000000000..eea6e3946 --- /dev/null +++ b/src/backend/base/langflow/components/sambanova/__init__.py @@ -0,0 +1,3 @@ +from .sambanova import SambaNovaComponent + +__all__ = ["SambaNovaComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/sambanova.py b/src/backend/base/langflow/components/sambanova/sambanova.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/sambanova.py rename to src/backend/base/langflow/components/sambanova/sambanova.py diff --git a/src/backend/base/langflow/components/search/__init__.py b/src/backend/base/langflow/components/search/__init__.py deleted file mode 100644 index f7aaa857f..000000000 --- a/src/backend/base/langflow/components/search/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -from .arxiv import ArXivComponent -from .bing_search_api import BingSearchAPIComponent -from .duck_duck_go_search_run import DuckDuckGoSearchComponent -from .exa_search import ExaSearchToolkit -from .glean_search_api import GleanSearchAPISchema -from .google_search_api_core import GoogleSearchAPICore -from .google_serper_api_core import GoogleSerperAPICore -from .search import SearchComponent -from .serp import SerpComponent -from .wikidata import WikidataComponent -from .wikipedia import WikipediaComponent -from .wolfram_alpha_api import WolframAlphaAPIComponent -from .yahoo import YahooFinanceSchema - -__all__ = [ - "ArXivComponent", - "BingSearchAPIComponent", - "DuckDuckGoSearchComponent", - "ExaSearchToolkit", - "GleanSearchAPISchema", - "GoogleSearchAPICore", - "GoogleSerperAPICore", - "SearchComponent", - "SerpComponent", - "WikidataComponent", - "WikipediaComponent", - "WolframAlphaAPIComponent", - "YahooFinanceSchema", -] diff --git a/src/backend/base/langflow/components/searchapi/__init__.py b/src/backend/base/langflow/components/searchapi/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/backend/base/langflow/components/search/search.py b/src/backend/base/langflow/components/searchapi/search.py similarity index 100% rename from src/backend/base/langflow/components/search/search.py rename to src/backend/base/langflow/components/searchapi/search.py diff --git a/src/backend/base/langflow/components/serpapi/__init__.py b/src/backend/base/langflow/components/serpapi/__init__.py new file mode 100644 index 000000000..ec3532209 --- /dev/null +++ b/src/backend/base/langflow/components/serpapi/__init__.py @@ -0,0 +1,3 @@ +from .serp import SerpComponent + +__all__ = ["SerpComponent"] diff --git a/src/backend/base/langflow/components/search/serp.py b/src/backend/base/langflow/components/serpapi/serp.py similarity index 100% rename from src/backend/base/langflow/components/search/serp.py rename to src/backend/base/langflow/components/serpapi/serp.py diff --git a/src/backend/base/langflow/components/wikipedia/__init__.py b/src/backend/base/langflow/components/wikipedia/__init__.py new file mode 100644 index 000000000..0ca73fffb --- /dev/null +++ b/src/backend/base/langflow/components/wikipedia/__init__.py @@ -0,0 +1,4 @@ +from .wikidata import WikidataComponent +from .wikipedia import WikipediaComponent + +__all__ = ["WikidataComponent", "WikipediaComponent"] diff --git a/src/backend/base/langflow/components/search/wikidata.py b/src/backend/base/langflow/components/wikipedia/wikidata.py similarity index 100% rename from src/backend/base/langflow/components/search/wikidata.py rename to src/backend/base/langflow/components/wikipedia/wikidata.py diff --git a/src/backend/base/langflow/components/search/wikipedia.py b/src/backend/base/langflow/components/wikipedia/wikipedia.py similarity index 100% rename from src/backend/base/langflow/components/search/wikipedia.py rename to src/backend/base/langflow/components/wikipedia/wikipedia.py diff --git a/src/backend/base/langflow/components/wolframalpha/__init__.py b/src/backend/base/langflow/components/wolframalpha/__init__.py new file mode 100644 index 000000000..375e23d78 --- /dev/null +++ b/src/backend/base/langflow/components/wolframalpha/__init__.py @@ -0,0 +1,3 @@ +from .wolfram_alpha_api import WolframAlphaAPIComponent + +__all__ = ["WolframAlphaAPIComponent"] diff --git a/src/backend/base/langflow/components/search/wolfram_alpha_api.py b/src/backend/base/langflow/components/wolframalpha/wolfram_alpha_api.py similarity index 100% rename from src/backend/base/langflow/components/search/wolfram_alpha_api.py rename to src/backend/base/langflow/components/wolframalpha/wolfram_alpha_api.py diff --git a/src/backend/base/langflow/components/xai/__init__.py b/src/backend/base/langflow/components/xai/__init__.py new file mode 100644 index 000000000..aa31ad183 --- /dev/null +++ b/src/backend/base/langflow/components/xai/__init__.py @@ -0,0 +1,3 @@ +from .xai import XAIModelComponent + +__all__ = ["XAIModelComponent"] diff --git a/src/backend/base/langflow/components/languagemodels/xai.py b/src/backend/base/langflow/components/xai/xai.py similarity index 100% rename from src/backend/base/langflow/components/languagemodels/xai.py rename to src/backend/base/langflow/components/xai/xai.py diff --git a/src/backend/base/langflow/components/yahoosearch/__init__.py b/src/backend/base/langflow/components/yahoosearch/__init__.py new file mode 100644 index 000000000..5aaedb408 --- /dev/null +++ b/src/backend/base/langflow/components/yahoosearch/__init__.py @@ -0,0 +1,3 @@ +from .yahoo import YfinanceComponent + +__all__ = ["YfinanceComponent"] diff --git a/src/backend/base/langflow/components/search/yahoo.py b/src/backend/base/langflow/components/yahoosearch/yahoo.py similarity index 100% rename from src/backend/base/langflow/components/search/yahoo.py rename to src/backend/base/langflow/components/yahoosearch/yahoo.py diff --git a/src/backend/base/langflow/components/zep/__init__.py b/src/backend/base/langflow/components/zep/__init__.py new file mode 100644 index 000000000..e736c0874 --- /dev/null +++ b/src/backend/base/langflow/components/zep/__init__.py @@ -0,0 +1,3 @@ +from .zep import ZepChatMemory + +__all__ = ["ZepChatMemory"] diff --git a/src/backend/base/langflow/components/memories/zep.py b/src/backend/base/langflow/components/zep/zep.py similarity index 100% rename from src/backend/base/langflow/components/memories/zep.py rename to src/backend/base/langflow/components/zep/zep.py diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Generator.json b/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Generator.json index a6823dac7..73eaa6ada 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Generator.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Custom Component Generator.json @@ -26,9 +26,9 @@ "id": "reactflow__edge-ChatInput-u8rae{œdataTypeœ:œChatInputœ,œidœ:œChatInput-u8raeœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Prompt-7Jzfo{œfieldNameœ:œUSER_INPUTœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "ChatInput-u8rae", - "sourceHandle": "{œdataTypeœ:œChatInputœ,œidœ:œChatInput-u8raeœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-u8raeœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-7Jzfo", - "targetHandle": "{œfieldNameœ:œUSER_INPUTœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œUSER_INPUTœ, œidœ: œPrompt-7Jzfoœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -55,9 +55,9 @@ "id": "reactflow__edge-Memory-U33nr{œdataTypeœ:œMemoryœ,œidœ:œMemory-U33nrœ,œnameœ:œmessages_textœ,œoutput_typesœ:[œMessageœ]}-Prompt-7Jzfo{œfieldNameœ:œCHAT_HISTORYœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "Memory-U33nr", - "sourceHandle": "{œdataTypeœ:œMemoryœ,œidœ:œMemory-U33nrœ,œnameœ:œmessages_textœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œMemoryœ, œidœ: œMemory-U33nrœ, œnameœ: œmessages_textœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-7Jzfo", - "targetHandle": "{œfieldNameœ:œCHAT_HISTORYœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œCHAT_HISTORYœ, œidœ: œPrompt-7Jzfoœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -84,9 +84,9 @@ "id": "reactflow__edge-URL-LiTXv{œdataTypeœ:œURLœ,œidœ:œURL-LiTXvœ,œnameœ:œraw_resultsœ,œoutput_typesœ:[œMessageœ]}-Prompt-7Jzfo{œfieldNameœ:œEXAMPLE_COMPONENTSœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "URL-LiTXv", - "sourceHandle": "{œdataTypeœ:œURLœ,œidœ:œURL-LiTXvœ,œnameœ:œraw_resultsœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œURLœ, œidœ: œURL-LiTXvœ, œnameœ: œraw_resultsœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-7Jzfo", - "targetHandle": "{œfieldNameœ:œEXAMPLE_COMPONENTSœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œEXAMPLE_COMPONENTSœ, œidœ: œPrompt-7Jzfoœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -113,9 +113,9 @@ "id": "reactflow__edge-URL-E6QCv{œdataTypeœ:œURLœ,œidœ:œURL-E6QCvœ,œnameœ:œraw_resultsœ,œoutput_typesœ:[œMessageœ]}-Prompt-7Jzfo{œfieldNameœ:œCUSTOM_COMPONENT_CODEœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "URL-E6QCv", - "sourceHandle": "{œdataTypeœ:œURLœ,œidœ:œURL-E6QCvœ,œnameœ:œraw_resultsœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œURLœ, œidœ: œURL-E6QCvœ, œnameœ: œraw_resultsœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-7Jzfo", - "targetHandle": "{œfieldNameœ:œCUSTOM_COMPONENT_CODEœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œCUSTOM_COMPONENT_CODEœ, œidœ: œPrompt-7Jzfoœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -141,9 +141,9 @@ "id": "reactflow__edge-Prompt-7Jzfo{œdataTypeœ:œPromptœ,œidœ:œPrompt-7Jzfoœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-muTzI{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-muTzIœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-7Jzfo", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-7Jzfoœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-7Jzfoœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "LanguageModelComponent-muTzI", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-muTzIœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œLanguageModelComponent-muTzIœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -171,9 +171,9 @@ "id": "reactflow__edge-LanguageModelComponent-muTzI{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-muTzIœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-qF9Bn{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-qF9Bnœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}", "selected": false, "source": "LanguageModelComponent-muTzI", - "sourceHandle": "{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-muTzIœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œLanguageModelComponentœ, œidœ: œLanguageModelComponent-muTzIœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", "target": "ChatOutput-qF9Bn", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-qF9Bnœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-qF9Bnœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -200,9 +200,9 @@ "id": "reactflow__edge-URL-Gj8oh{œdataTypeœ:œURLœ,œidœ:œURL-Gj8ohœ,œnameœ:œraw_resultsœ,œoutput_typesœ:[œMessageœ]}-Prompt-7Jzfo{œfieldNameœ:œBASE_COMPONENT_CODEœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "URL-Gj8oh", - "sourceHandle": "{œdataTypeœ:œURLœ,œidœ:œURL-Gj8ohœ,œnameœ:œraw_resultsœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œURLœ, œidœ: œURL-Gj8ohœ, œnameœ: œraw_resultsœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-7Jzfo", - "targetHandle": "{œfieldNameœ:œBASE_COMPONENT_CODEœ,œidœ:œPrompt-7Jzfoœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œBASE_COMPONENT_CODEœ, œidœ: œPrompt-7Jzfoœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" } ], "nodes": [ diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json b/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json index caafc1229..e6675f4af 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json @@ -26,9 +26,9 @@ "id": "reactflow__edge-ChatInput-iYW45{œdataTypeœ:œChatInputœ,œidœ:œChatInput-iYW45œ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Prompt-aHVYv{œfieldNameœ:œinput_valueœ,œidœ:œPrompt-aHVYvœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "ChatInput-iYW45", - "sourceHandle": "{œdataTypeœ:œChatInputœ,œidœ:œChatInput-iYW45œ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-iYW45œ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-aHVYv", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œPrompt-aHVYvœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œPrompt-aHVYvœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -55,9 +55,9 @@ "id": "reactflow__edge-LanguageModelComponent-TZiUW{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-TZiUWœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-Prompt-rQ5Up{œfieldNameœ:œprevious_responseœ,œidœ:œPrompt-rQ5Upœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "LanguageModelComponent-TZiUW", - "sourceHandle": "{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-TZiUWœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œLanguageModelComponentœ, œidœ: œLanguageModelComponent-TZiUWœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-rQ5Up", - "targetHandle": "{œfieldNameœ:œprevious_responseœ,œidœ:œPrompt-rQ5Upœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œprevious_responseœ, œidœ: œPrompt-rQ5Upœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -83,9 +83,9 @@ "id": "reactflow__edge-Prompt-F8cZX{œdataTypeœ:œPromptœ,œidœ:œPrompt-F8cZXœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-TZiUW{œfieldNameœ:œsystem_messageœ,œidœ:œLanguageModelComponent-TZiUWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-F8cZX", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-F8cZXœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-F8cZXœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "LanguageModelComponent-TZiUW", - "targetHandle": "{œfieldNameœ:œsystem_messageœ,œidœ:œLanguageModelComponent-TZiUWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œLanguageModelComponent-TZiUWœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -111,9 +111,9 @@ "id": "reactflow__edge-ChatInput-iYW45{œdataTypeœ:œChatInputœ,œidœ:œChatInput-iYW45œ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-TZiUW{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-TZiUWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "ChatInput-iYW45", - "sourceHandle": "{œdataTypeœ:œChatInputœ,œidœ:œChatInput-iYW45œ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-iYW45œ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", "target": "LanguageModelComponent-TZiUW", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-TZiUWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œLanguageModelComponent-TZiUWœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -139,9 +139,9 @@ "id": "reactflow__edge-Prompt-TbFFl{œdataTypeœ:œPromptœ,œidœ:œPrompt-TbFFlœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-80mt4{œfieldNameœ:œsystem_messageœ,œidœ:œLanguageModelComponent-80mt4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-TbFFl", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-TbFFlœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-TbFFlœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "LanguageModelComponent-80mt4", - "targetHandle": "{œfieldNameœ:œsystem_messageœ,œidœ:œLanguageModelComponent-80mt4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œLanguageModelComponent-80mt4œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -167,9 +167,9 @@ "id": "reactflow__edge-Prompt-aHVYv{œdataTypeœ:œPromptœ,œidœ:œPrompt-aHVYvœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-80mt4{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-80mt4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-aHVYv", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-aHVYvœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-aHVYvœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "LanguageModelComponent-80mt4", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-80mt4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œLanguageModelComponent-80mt4œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -197,9 +197,9 @@ "id": "reactflow__edge-LanguageModelComponent-80mt4{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-80mt4œ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-gZuRk{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-gZuRkœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}", "selected": false, "source": "LanguageModelComponent-80mt4", - "sourceHandle": "{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-80mt4œ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œLanguageModelComponentœ, œidœ: œLanguageModelComponent-80mt4œ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", "target": "ChatOutput-gZuRk", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-gZuRkœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-gZuRkœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -225,9 +225,9 @@ "id": "reactflow__edge-Prompt-rQ5Up{œdataTypeœ:œPromptœ,œidœ:œPrompt-rQ5Upœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-mIgZ5{œfieldNameœ:œinput_valueœ,œidœ:œAgent-mIgZ5œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-rQ5Up", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-rQ5Upœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-rQ5Upœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "Agent-mIgZ5", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œAgent-mIgZ5œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-mIgZ5œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -253,9 +253,9 @@ "id": "reactflow__edge-TavilySearchComponent-bJRoU{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-bJRoUœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-mIgZ5{œfieldNameœ:œtoolsœ,œidœ:œAgent-mIgZ5œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", "selected": false, "source": "TavilySearchComponent-bJRoU", - "sourceHandle": "{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-bJRoUœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}", + "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-bJRoUœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", "target": "Agent-mIgZ5", - "targetHandle": "{œfieldNameœ:œtoolsœ,œidœ:œAgent-mIgZ5œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-mIgZ5œ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -282,9 +282,9 @@ "id": "reactflow__edge-Agent-mIgZ5{œdataTypeœ:œAgentœ,œidœ:œAgent-mIgZ5œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-aHVYv{œfieldNameœ:œsearch_resultsœ,œidœ:œPrompt-aHVYvœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "Agent-mIgZ5", - "sourceHandle": "{œdataTypeœ:œAgentœ,œidœ:œAgent-mIgZ5œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-mIgZ5œ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-aHVYv", - "targetHandle": "{œfieldNameœ:œsearch_resultsœ,œidœ:œPrompt-aHVYvœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsearch_resultsœ, œidœ: œPrompt-aHVYvœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" } ], "nodes": [ diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json b/src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json index 4a25c821e..827850ae4 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json @@ -25,9 +25,9 @@ "id": "reactflow__edge-ChatInput-8bLHN{œdataTypeœ:œChatInputœ,œidœ:œChatInput-8bLHNœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-ArXivComponent-wpsLb{œfieldNameœ:œsearch_queryœ,œidœ:œArXivComponent-wpsLbœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "ChatInput-8bLHN", - "sourceHandle": "{œdataTypeœ:œChatInputœ,œidœ:œChatInput-8bLHNœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-8bLHNœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", "target": "ArXivComponent-wpsLb", - "targetHandle": "{œfieldNameœ:œsearch_queryœ,œidœ:œArXivComponent-wpsLbœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsearch_queryœ, œidœ: œArXivComponent-wpsLbœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -53,9 +53,9 @@ "id": "reactflow__edge-ArXivComponent-wpsLb{œdataTypeœ:œArXivComponentœ,œidœ:œArXivComponent-wpsLbœ,œnameœ:œdataframeœ,œoutput_typesœ:[œDataFrameœ]}-LoopComponent-GV15E{œfieldNameœ:œdataœ,œidœ:œLoopComponent-GV15Eœ,œinputTypesœ:[œDataFrameœ],œtypeœ:œotherœ}", "selected": false, "source": "ArXivComponent-wpsLb", - "sourceHandle": "{œdataTypeœ:œArXivComponentœ,œidœ:œArXivComponent-wpsLbœ,œnameœ:œdataframeœ,œoutput_typesœ:[œDataFrameœ]}", + "sourceHandle": "{œdataTypeœ: œArXivComponentœ, œidœ: œArXivComponent-wpsLbœ, œnameœ: œdataframeœ, œoutput_typesœ: [œDataFrameœ]}", "target": "LoopComponent-GV15E", - "targetHandle": "{œfieldNameœ:œdataœ,œidœ:œLoopComponent-GV15Eœ,œinputTypesœ:[œDataFrameœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œdataœ, œidœ: œLoopComponent-GV15Eœ, œinputTypesœ: [œDataFrameœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -82,9 +82,9 @@ "id": "reactflow__edge-LoopComponent-GV15E{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-GV15Eœ,œnameœ:œitemœ,œoutput_typesœ:[œDataœ]}-ParserComponent-aKcLF{œfieldNameœ:œinput_dataœ,œidœ:œParserComponent-aKcLFœ,œinputTypesœ:[œDataFrameœ,œDataœ],œtypeœ:œotherœ}", "selected": false, "source": "LoopComponent-GV15E", - "sourceHandle": "{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-GV15Eœ,œnameœ:œitemœ,œoutput_typesœ:[œDataœ]}", + "sourceHandle": "{œdataTypeœ: œLoopComponentœ, œidœ: œLoopComponent-GV15Eœ, œnameœ: œitemœ, œoutput_typesœ: [œDataœ]}", "target": "ParserComponent-aKcLF", - "targetHandle": "{œfieldNameœ:œinput_dataœ,œidœ:œParserComponent-aKcLFœ,œinputTypesœ:[œDataFrameœ,œDataœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œinput_dataœ, œidœ: œParserComponent-aKcLFœ, œinputTypesœ: [œDataFrameœ, œDataœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -110,9 +110,9 @@ "id": "reactflow__edge-ParserComponent-aKcLF{œdataTypeœ:œParserComponentœ,œidœ:œParserComponent-aKcLFœ,œnameœ:œparsed_textœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-ze4nq{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-ze4nqœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "ParserComponent-aKcLF", - "sourceHandle": "{œdataTypeœ:œParserComponentœ,œidœ:œParserComponent-aKcLFœ,œnameœ:œparsed_textœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œParserComponentœ, œidœ: œParserComponent-aKcLFœ, œnameœ: œparsed_textœ, œoutput_typesœ: [œMessageœ]}", "target": "LanguageModelComponent-ze4nq", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-ze4nqœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œLanguageModelComponent-ze4nqœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -140,9 +140,9 @@ "id": "reactflow__edge-LanguageModelComponent-ze4nq{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-ze4nqœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-TypeConverterComponent-NClYY{œfieldNameœ:œinput_dataœ,œidœ:œTypeConverterComponent-NClYYœ,œinputTypesœ:[œMessageœ,œDataœ,œDataFrameœ],œtypeœ:œotherœ}", "selected": false, "source": "LanguageModelComponent-ze4nq", - "sourceHandle": "{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-ze4nqœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œLanguageModelComponentœ, œidœ: œLanguageModelComponent-ze4nqœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}", "target": "TypeConverterComponent-NClYY", - "targetHandle": "{œfieldNameœ:œinput_dataœ,œidœ:œTypeConverterComponent-NClYYœ,œinputTypesœ:[œMessageœ,œDataœ,œDataFrameœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œinput_dataœ, œidœ: œTypeConverterComponent-NClYYœ, œinputTypesœ: [œMessageœ, œDataœ, œDataFrameœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -168,9 +168,9 @@ "id": "reactflow__edge-TypeConverterComponent-NClYY{œdataTypeœ:œTypeConverterComponentœ,œidœ:œTypeConverterComponent-NClYYœ,œnameœ:œdata_outputœ,œoutput_typesœ:[œDataœ]}-LoopComponent-GV15E{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-GV15Eœ,œnameœ:œitemœ,œoutput_typesœ:[œDataœ]}", "selected": false, "source": "TypeConverterComponent-NClYY", - "sourceHandle": "{œdataTypeœ:œTypeConverterComponentœ,œidœ:œTypeConverterComponent-NClYYœ,œnameœ:œdata_outputœ,œoutput_typesœ:[œDataœ]}", + "sourceHandle": "{œdataTypeœ: œTypeConverterComponentœ, œidœ: œTypeConverterComponent-NClYYœ, œnameœ: œdata_outputœ, œoutput_typesœ: [œDataœ]}", "target": "LoopComponent-GV15E", - "targetHandle": "{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-GV15Eœ,œnameœ:œitemœ,œoutput_typesœ:[œDataœ]}" + "targetHandle": "{œdataTypeœ: œLoopComponentœ, œidœ: œLoopComponent-GV15Eœ, œnameœ: œitemœ, œoutput_typesœ: [œDataœ]}" }, { "animated": false, @@ -198,9 +198,9 @@ "id": "reactflow__edge-LoopComponent-GV15E{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-GV15Eœ,œnameœ:œdoneœ,œoutput_typesœ:[œDataFrameœ]}-ChatOutput-hmMTq{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-hmMTqœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}", "selected": false, "source": "LoopComponent-GV15E", - "sourceHandle": "{œdataTypeœ:œLoopComponentœ,œidœ:œLoopComponent-GV15Eœ,œnameœ:œdoneœ,œoutput_typesœ:[œDataFrameœ]}", + "sourceHandle": "{œdataTypeœ: œLoopComponentœ, œidœ: œLoopComponent-GV15Eœ, œnameœ: œdoneœ, œoutput_typesœ: [œDataFrameœ]}", "target": "ChatOutput-hmMTq", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-hmMTqœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-hmMTqœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}" } ], "nodes": [ diff --git a/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json b/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json index 1f3c0578d..2e5e9de6a 100644 --- a/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +++ b/src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json @@ -25,9 +25,9 @@ "id": "reactflow__edge-Prompt-WvveL{œdataTypeœ:œPromptœ,œidœ:œPrompt-WvveLœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-X1iAT{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-X1iATœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-WvveL", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-WvveLœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-WvveLœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "Agent-X1iAT", - "targetHandle": "{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-X1iATœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-X1iATœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -53,9 +53,9 @@ "id": "reactflow__edge-Prompt-6JL4E{œdataTypeœ:œPromptœ,œidœ:œPrompt-6JL4Eœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-EQcU8{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-EQcU8œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-6JL4E", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-6JL4Eœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-6JL4Eœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "Agent-EQcU8", - "targetHandle": "{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-EQcU8œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-EQcU8œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -82,9 +82,9 @@ "id": "reactflow__edge-Agent-EQcU8{œdataTypeœ:œAgentœ,œidœ:œAgent-EQcU8œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-WvveL{œfieldNameœ:œfinance_agent_outputœ,œidœ:œPrompt-WvveLœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "Agent-EQcU8", - "sourceHandle": "{œdataTypeœ:œAgentœ,œidœ:œAgent-EQcU8œ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-EQcU8œ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-WvveL", - "targetHandle": "{œfieldNameœ:œfinance_agent_outputœ,œidœ:œPrompt-WvveLœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œfinance_agent_outputœ, œidœ: œPrompt-WvveLœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -110,9 +110,9 @@ "id": "reactflow__edge-ChatInput-NuUHZ{œdataTypeœ:œChatInputœ,œidœ:œChatInput-NuUHZœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Agent-b7nmW{œfieldNameœ:œinput_valueœ,œidœ:œAgent-b7nmWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "ChatInput-NuUHZ", - "sourceHandle": "{œdataTypeœ:œChatInputœ,œidœ:œChatInput-NuUHZœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-NuUHZœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}", "target": "Agent-b7nmW", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œAgent-b7nmWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-b7nmWœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -138,9 +138,9 @@ "id": "reactflow__edge-Prompt-ajhmq{œdataTypeœ:œPromptœ,œidœ:œPrompt-ajhmqœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-Agent-b7nmW{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-b7nmWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Prompt-ajhmq", - "sourceHandle": "{œdataTypeœ:œPromptœ,œidœ:œPrompt-ajhmqœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-ajhmqœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}", "target": "Agent-b7nmW", - "targetHandle": "{œfieldNameœ:œsystem_promptœ,œidœ:œAgent-b7nmWœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œsystem_promptœ, œidœ: œAgent-b7nmWœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -166,9 +166,9 @@ "id": "reactflow__edge-Agent-b7nmW{œdataTypeœ:œAgentœ,œidœ:œAgent-b7nmWœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Agent-EQcU8{œfieldNameœ:œinput_valueœ,œidœ:œAgent-EQcU8œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}", "selected": false, "source": "Agent-b7nmW", - "sourceHandle": "{œdataTypeœ:œAgentœ,œidœ:œAgent-b7nmWœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-b7nmWœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", "target": "Agent-EQcU8", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œAgent-EQcU8œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œAgent-EQcU8œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -195,9 +195,9 @@ "id": "reactflow__edge-Agent-b7nmW{œdataTypeœ:œAgentœ,œidœ:œAgent-b7nmWœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-Prompt-WvveL{œfieldNameœ:œresearch_agent_outputœ,œidœ:œPrompt-WvveLœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}", "selected": false, "source": "Agent-b7nmW", - "sourceHandle": "{œdataTypeœ:œAgentœ,œidœ:œAgent-b7nmWœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-b7nmWœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", "target": "Prompt-WvveL", - "targetHandle": "{œfieldNameœ:œresearch_agent_outputœ,œidœ:œPrompt-WvveLœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}" + "targetHandle": "{œfieldNameœ: œresearch_agent_outputœ, œidœ: œPrompt-WvveLœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}" }, { "animated": false, @@ -223,9 +223,9 @@ "id": "reactflow__edge-CalculatorComponent-0P2yI{œdataTypeœ:œCalculatorComponentœ,œidœ:œCalculatorComponent-0P2yIœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-X1iAT{œfieldNameœ:œtoolsœ,œidœ:œAgent-X1iATœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", "selected": false, "source": "CalculatorComponent-0P2yI", - "sourceHandle": "{œdataTypeœ:œCalculatorComponentœ,œidœ:œCalculatorComponent-0P2yIœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}", + "sourceHandle": "{œdataTypeœ: œCalculatorComponentœ, œidœ: œCalculatorComponent-0P2yIœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", "target": "Agent-X1iAT", - "targetHandle": "{œfieldNameœ:œtoolsœ,œidœ:œAgent-X1iATœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-X1iATœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -251,9 +251,9 @@ "id": "reactflow__edge-YfinanceComponent-hAneS{œdataTypeœ:œYfinanceComponentœ,œidœ:œYfinanceComponent-hAneSœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-EQcU8{œfieldNameœ:œtoolsœ,œidœ:œAgent-EQcU8œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", "selected": false, "source": "YfinanceComponent-hAneS", - "sourceHandle": "{œdataTypeœ:œYfinanceComponentœ,œidœ:œYfinanceComponent-hAneSœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}", + "sourceHandle": "{œdataTypeœ: œYfinanceComponentœ, œidœ: œYfinanceComponent-hAneSœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", "target": "Agent-EQcU8", - "targetHandle": "{œfieldNameœ:œtoolsœ,œidœ:œAgent-EQcU8œ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-EQcU8œ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -279,9 +279,9 @@ "id": "reactflow__edge-TavilySearchComponent-DTUmi{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-DTUmiœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}-Agent-b7nmW{œfieldNameœ:œtoolsœ,œidœ:œAgent-b7nmWœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}", "selected": false, "source": "TavilySearchComponent-DTUmi", - "sourceHandle": "{œdataTypeœ:œTavilySearchComponentœ,œidœ:œTavilySearchComponent-DTUmiœ,œnameœ:œcomponent_as_toolœ,œoutput_typesœ:[œToolœ]}", + "sourceHandle": "{œdataTypeœ: œTavilySearchComponentœ, œidœ: œTavilySearchComponent-DTUmiœ, œnameœ: œcomponent_as_toolœ, œoutput_typesœ: [œToolœ]}", "target": "Agent-b7nmW", - "targetHandle": "{œfieldNameœ:œtoolsœ,œidœ:œAgent-b7nmWœ,œinputTypesœ:[œToolœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œtoolsœ, œidœ: œAgent-b7nmWœ, œinputTypesœ: [œToolœ], œtypeœ: œotherœ}" }, { "animated": false, @@ -309,9 +309,9 @@ "id": "reactflow__edge-Agent-X1iAT{œdataTypeœ:œAgentœ,œidœ:œAgent-X1iATœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-gbqPo{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-gbqPoœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}", "selected": false, "source": "Agent-X1iAT", - "sourceHandle": "{œdataTypeœ:œAgentœ,œidœ:œAgent-X1iATœ,œnameœ:œresponseœ,œoutput_typesœ:[œMessageœ]}", + "sourceHandle": "{œdataTypeœ: œAgentœ, œidœ: œAgent-X1iATœ, œnameœ: œresponseœ, œoutput_typesœ: [œMessageœ]}", "target": "ChatOutput-gbqPo", - "targetHandle": "{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-gbqPoœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}" + "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-gbqPoœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}" } ], "nodes": [ diff --git a/src/backend/tests/unit/components/languagemodels/test_baidu_qianfan.py b/src/backend/tests/unit/components/languagemodels/test_baidu_qianfan.py index da62bf68f..f720dc291 100644 --- a/src/backend/tests/unit/components/languagemodels/test_baidu_qianfan.py +++ b/src/backend/tests/unit/components/languagemodels/test_baidu_qianfan.py @@ -3,7 +3,7 @@ import os import pytest from langchain.schema import HumanMessage from langchain_community.chat_models.baidu_qianfan_endpoint import QianfanChatEndpoint -from langflow.components.languagemodels.baidu_qianfan_chat import QianfanChatEndpointComponent +from langflow.components.baidu.baidu_qianfan_chat import QianfanChatEndpointComponent from qianfan.errors import APIError diff --git a/src/backend/tests/unit/components/languagemodels/test_deepseek.py b/src/backend/tests/unit/components/languagemodels/test_deepseek.py index 4a8c400ba..b111cf759 100644 --- a/src/backend/tests/unit/components/languagemodels/test_deepseek.py +++ b/src/backend/tests/unit/components/languagemodels/test_deepseek.py @@ -1,7 +1,7 @@ from unittest.mock import MagicMock import pytest -from langflow.components.languagemodels import DeepSeekModelComponent +from langflow.components.deepseek.deepseek import DeepSeekModelComponent from langflow.custom.custom_component.component import Component from langflow.custom.utils import build_custom_component_template diff --git a/src/backend/tests/unit/components/languagemodels/test_xai.py b/src/backend/tests/unit/components/languagemodels/test_xai.py index 674c7b4da..f469122a0 100644 --- a/src/backend/tests/unit/components/languagemodels/test_xai.py +++ b/src/backend/tests/unit/components/languagemodels/test_xai.py @@ -1,7 +1,7 @@ from unittest.mock import MagicMock, patch import pytest -from langflow.components.languagemodels import XAIModelComponent +from langflow.components.xai.xai import XAIModelComponent from langflow.custom.custom_component.component import Component from langflow.custom.utils import build_custom_component_template from langflow.inputs.inputs import ( @@ -101,7 +101,7 @@ class TestXAIComponent(ComponentTestBaseWithoutClient): component.base_url = "https://api.x.ai/v1" component.seed = 1 - mock_chat_openai = mocker.patch("langflow.components.languagemodels.xai.ChatOpenAI", return_value=MagicMock()) + mock_chat_openai = mocker.patch("langflow.components.xai.xai.ChatOpenAI", return_value=MagicMock()) model = component.build_model() mock_chat_openai.assert_called_once_with( max_tokens=100, @@ -156,7 +156,7 @@ class TestXAIComponent(ComponentTestBaseWithoutClient): component.seed = 1 mocker.patch( - "langflow.components.languagemodels.xai.ChatOpenAI", + "langflow.components.xai.xai.ChatOpenAI", side_effect=BadRequestError( message="Invalid API key", response=MagicMock(), @@ -181,7 +181,7 @@ class TestXAIComponent(ComponentTestBaseWithoutClient): mock_instance = MagicMock() mock_bound_instance = MagicMock() mock_instance.bind.return_value = mock_bound_instance - mocker.patch("langflow.components.languagemodels.xai.ChatOpenAI", return_value=mock_instance) + mocker.patch("langflow.components.xai.xai.ChatOpenAI", return_value=mock_instance) model = component.build_model() mock_instance.bind.assert_called_once_with(response_format={"type": "json_object"}) diff --git a/src/backend/tests/unit/components/search/test_arxiv_component.py b/src/backend/tests/unit/components/search/test_arxiv_component.py index a9a841f1e..f98e140fc 100644 --- a/src/backend/tests/unit/components/search/test_arxiv_component.py +++ b/src/backend/tests/unit/components/search/test_arxiv_component.py @@ -8,7 +8,7 @@ from tests.base import ComponentTestBaseWithClient class TestArXivComponent(ComponentTestBaseWithClient): def test_component_versions(self, default_kwargs, file_names_mapping): """Test component compatibility across versions.""" - from langflow.components.search.arxiv import ArXivComponent + from langflow.components.arxiv.arxiv import ArXivComponent # Test current version component = ArXivComponent(**default_kwargs) @@ -31,7 +31,7 @@ class TestArXivComponent(ComponentTestBaseWithClient): @pytest.fixture def component_class(self): - from langflow.components.search.arxiv import ArXivComponent + from langflow.components.arxiv.arxiv import ArXivComponent return ArXivComponent diff --git a/src/backend/tests/unit/components/search/test_google_search_api.py b/src/backend/tests/unit/components/search/test_google_search_api.py index de4e73b6a..2f70b9217 100644 --- a/src/backend/tests/unit/components/search/test_google_search_api.py +++ b/src/backend/tests/unit/components/search/test_google_search_api.py @@ -2,7 +2,7 @@ from unittest.mock import patch import pandas as pd import pytest -from langflow.components.search import GoogleSearchAPICore +from langflow.components.google.google_search_api_core import GoogleSearchAPICore from langflow.schema import DataFrame from tests.base import ComponentTestBaseWithoutClient diff --git a/src/backend/tests/unit/components/search/test_google_serper_api_core.py b/src/backend/tests/unit/components/search/test_google_serper_api_core.py index ba42e64eb..4e977e796 100644 --- a/src/backend/tests/unit/components/search/test_google_serper_api_core.py +++ b/src/backend/tests/unit/components/search/test_google_serper_api_core.py @@ -1,7 +1,7 @@ from unittest.mock import MagicMock, patch import pytest -from langflow.components.search import GoogleSerperAPICore +from langflow.components.google.google_serper_api_core import GoogleSerperAPICore from langflow.schema import DataFrame diff --git a/src/backend/tests/unit/components/search/test_wikidata_api.py b/src/backend/tests/unit/components/search/test_wikidata_api.py index 992d8b617..618b3b031 100644 --- a/src/backend/tests/unit/components/search/test_wikidata_api.py +++ b/src/backend/tests/unit/components/search/test_wikidata_api.py @@ -3,7 +3,7 @@ from unittest.mock import MagicMock, patch import httpx import pytest from langchain_core.tools import ToolException -from langflow.components.search import WikidataComponent +from langflow.components.wikipedia import WikidataComponent from langflow.custom import Component from langflow.custom.utils import build_custom_component_template diff --git a/src/backend/tests/unit/components/search/test_wikipedia_api.py b/src/backend/tests/unit/components/search/test_wikipedia_api.py index 4cdf4e8d6..261f6c4a4 100644 --- a/src/backend/tests/unit/components/search/test_wikipedia_api.py +++ b/src/backend/tests/unit/components/search/test_wikipedia_api.py @@ -1,7 +1,7 @@ from unittest.mock import MagicMock import pytest -from langflow.components.search import WikipediaComponent +from langflow.components.wikipedia import WikipediaComponent from langflow.custom import Component from langflow.custom.utils import build_custom_component_template diff --git a/src/backend/tests/unit/components/search/test_yfinance_tool.py b/src/backend/tests/unit/components/search/test_yfinance_tool.py index 012f8fc13..3aa2661eb 100644 --- a/src/backend/tests/unit/components/search/test_yfinance_tool.py +++ b/src/backend/tests/unit/components/search/test_yfinance_tool.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock, patch import pytest from langchain_core.tools import ToolException -from langflow.components.search.yahoo import YahooFinanceMethod, YfinanceComponent +from langflow.components.yahoosearch.yahoo import YahooFinanceMethod, YfinanceComponent from langflow.custom.utils import build_custom_component_template from langflow.schema import Data @@ -37,7 +37,7 @@ class TestYfinanceComponent: for input_name in expected_inputs: assert input_name in input_names - @patch("langflow.components.search.yahoo.yf.Ticker") + @patch("langflow.components.yahoosearch.yahoo.yf.Ticker") def test_fetch_info(self, mock_ticker, component_class, default_kwargs): component = component_class(**default_kwargs) @@ -52,7 +52,7 @@ class TestYfinanceComponent: assert len(result) == 1 assert "Apple Inc." in result[0].text - @patch("langflow.components.search.yahoo.yf.Ticker") + @patch("langflow.components.yahoosearch.yahoo.yf.Ticker") def test_fetch_news(self, mock_ticker, component_class): component = component_class(symbol="AAPL", method=YahooFinanceMethod.GET_NEWS, num_news=2) diff --git a/src/backend/tests/unit/components/tools/test_serp_api.py b/src/backend/tests/unit/components/tools/test_serp_api.py index e8e1bcdc8..d7f2d905e 100644 --- a/src/backend/tests/unit/components/tools/test_serp_api.py +++ b/src/backend/tests/unit/components/tools/test_serp_api.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock, patch import pytest from langchain_core.tools import ToolException -from langflow.components.search import SerpComponent +from langflow.components.serpapi.serp import SerpComponent from langflow.custom import Component from langflow.custom.utils import build_custom_component_template from langflow.schema import Data @@ -34,7 +34,7 @@ def test_serpapi_template(): assert input_name in input_names -@patch("langflow.components.search.serp.SerpAPIWrapper") +@patch("langflow.components.serpapi.serp.SerpAPIWrapper") def test_fetch_content(mock_serpapi_wrapper): component = SerpComponent() component.serpapi_api_key = "test-key" @@ -81,7 +81,7 @@ def test_error_handling(): component.serpapi_api_key = "test-key" component.input_value = "test query" - with patch("langflow.components.search.serp.SerpAPIWrapper") as mock_serpapi: + with patch("langflow.components.serpapi.serp.SerpAPIWrapper") as mock_serpapi: mock_instance = MagicMock() mock_serpapi.return_value = mock_instance mock_instance.results.side_effect = Exception("API Error") diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts index 739ff693d..24e950b46 100644 --- a/src/frontend/src/utils/styleUtils.ts +++ b/src/frontend/src/utils/styleUtils.ts @@ -228,69 +228,87 @@ export const SIDEBAR_CATEGORIES = [ ]; export const SIDEBAR_BUNDLES = [ - { - display_name: "Language Models", - name: "languagemodels", - icon: "BrainCircuit", - }, - { display_name: "Embeddings", name: "embeddings", icon: "Binary" }, - { display_name: "Memories", name: "memories", icon: "Cpu" }, { display_name: "AI/ML", name: "aiml", icon: "AI/ML" }, - { display_name: "Anthropic", name: "anthropic", icon: "Anthropic" }, - { display_name: "Amazon", name: "amazon", icon: "Amazon" }, - // Add apify - { display_name: "Apify", name: "apify", icon: "Apify" }, - { display_name: "LangChain", name: "langchain_utilities", icon: "LangChain" }, { display_name: "AgentQL", name: "agentql", icon: "AgentQL" }, + { display_name: "Amazon", name: "amazon", icon: "Amazon" }, + { display_name: "Anthropic", name: "anthropic", icon: "Anthropic" }, + { display_name: "Apify", name: "apify", icon: "Apify" }, + + { display_name: "Arxiv", name: "arxiv", icon: "arXiv" }, { display_name: "AssemblyAI", name: "assemblyai", icon: "AssemblyAI" }, { display_name: "Azure", name: "azure", icon: "Azure" }, - { - display_name: "DataStax", - name: "datastax", - icon: "AstraDB", - }, + { display_name: "Baidu", name: "baidu", icon: "BaiduQianfan" }, + { display_name: "Bing", name: "bing", icon: "Bing" }, + { display_name: "Cleanlab", name: "cleanlab", icon: "Cleanlab" }, + { display_name: "Cloudflare", name: "cloudflare", icon: "Cloudflare" }, + { display_name: "Cohere", name: "cohere", icon: "Cohere" }, + { display_name: "Composio", name: "composio", icon: "Composio" }, + { display_name: "Confluence", name: "confluence", icon: "Confluence" }, + { display_name: "CrewAI", name: "crewai", icon: "CrewAI" }, + { display_name: "DataStax", name: "datastax", icon: "AstraDB" }, + { display_name: "DeepSeek", name: "deepseek", icon: "DeepSeek" }, { display_name: "Docling", name: "docling", icon: "Docling" }, - { display_name: "Gmail", name: "gmail", icon: "Gmail" }, + { display_name: "DuckDuckGo", name: "duckduckgo", icon: "DuckDuckGo" }, + { display_name: "Embeddings", name: "embeddings", icon: "Binary" }, + { display_name: "Exa", name: "exa", icon: "Exa" }, + { display_name: "Firecrawl", name: "firecrawl", icon: "FirecrawlCrawlApi" }, + { display_name: "Git", name: "git", icon: "GitLoader" }, { display_name: "GitHub", name: "github", icon: "Github" }, + { display_name: "Glean", name: "glean", icon: "Glean" }, + { display_name: "Gmail", name: "gmail", icon: "Gmail" }, + { display_name: "Google", name: "google", icon: "Google" }, { display_name: "Googlecalendar", name: "googlecalendar", icon: "Googlecalendar", }, - { display_name: "HuggingFace", name: "huggingface", icon: "HuggingFace" }, - { display_name: "IBM", name: "ibm", icon: "WatsonxAI" }, - { display_name: "LangWatch", name: "langwatch", icon: "Langwatch" }, - { display_name: "Olivya", name: "olivya", icon: "Olivya" }, - { display_name: "Outlook", name: "outlook", icon: "Outlook" }, - { display_name: "OpenAI", name: "openai", icon: "OpenAI" }, - { display_name: "Notion", name: "Notion", icon: "Notion" }, - { display_name: "Needle", name: "needle", icon: "Needle" }, - { display_name: "NVIDIA", name: "nvidia", icon: "NVIDIA" }, - { display_name: "Vectara", name: "vectara", icon: "Vectara" }, - { display_name: "Icosa Computing", name: "icosacomputing", icon: "Icosa" }, - { display_name: "Google", name: "google", icon: "Google" }, - { display_name: "CrewAI", name: "crewai", icon: "CrewAI" }, - { display_name: "NotDiamond", name: "notdiamond", icon: "NotDiamond" }, - { display_name: "Composio", name: "composio", icon: "Composio" }, - { display_name: "Cohere", name: "cohere", icon: "Cohere" }, - { display_name: "Firecrawl", name: "firecrawl", icon: "FirecrawlCrawlApi" }, - { display_name: "Unstructured", name: "unstructured", icon: "Unstructured" }, - { display_name: "Git", name: "git", icon: "GitLoader" }, - { display_name: "Confluence", name: "confluence", icon: "Confluence" }, - { display_name: "Mem0", name: "mem0", icon: "Mem0" }, - { display_name: "Youtube", name: "youtube", icon: "YouTube" }, - { display_name: "ScrapeGraph AI", name: "scrapegraph", icon: "ScrapeGraph" }, - { display_name: "Twelve Labs", name: "twelvelabs", icon: "TwelveLabs" }, + { display_name: "Groq", name: "groq", icon: "Groq" }, { display_name: "Home Assistant", name: "homeassistant", icon: "HomeAssistant", }, - { display_name: "Cleanlab", name: "cleanlab", icon: "Cleanlab" }, - { display_name: "Search", name: "search", icon: "Search" }, - { display_name: "Tavily", name: "tavily", icon: "TavilyIcon" }, + { display_name: "HuggingFace", name: "huggingface", icon: "HuggingFace" }, + { display_name: "IBM", name: "ibm", icon: "WatsonxAI" }, + { display_name: "Icosa Computing", name: "icosacomputing", icon: "Icosa" }, + { display_name: "LangChain", name: "langchain_utilities", icon: "LangChain" }, + { display_name: "LangWatch", name: "langwatch", icon: "Langwatch" }, + { display_name: "LMStudio", name: "lmstudio", icon: "LMStudio" }, + { display_name: "MariTalk", name: "maritalk", icon: "MariTalk" }, + { display_name: "Mem0", name: "mem0", icon: "Mem0" }, + { display_name: "Memories", name: "memories", icon: "Cpu" }, + { display_name: "MistralAI", name: "mistral", icon: "MistralAI" }, + { display_name: "Needle", name: "needle", icon: "Needle" }, + { display_name: "NotDiamond", name: "notdiamond", icon: "NotDiamond" }, + { display_name: "Notion", name: "Notion", icon: "Notion" }, + { display_name: "Novita", name: "novita", icon: "Novita" }, + { display_name: "NVIDIA", name: "nvidia", icon: "NVIDIA" }, + { display_name: "Olivya", name: "olivya", icon: "Olivya" }, { display_name: "Ollama", name: "ollama", icon: "Ollama" }, + { display_name: "OpenAI", name: "openai", icon: "OpenAI" }, + { display_name: "OpenRouter", name: "openrouter", icon: "OpenRouter" }, + { display_name: "Outlook", name: "outlook", icon: "Outlook" }, + { display_name: "Perplexity", name: "perplexity", icon: "Perplexity" }, + { display_name: "Redis", name: "redis", icon: "Redis" }, + { display_name: "SambaNova", name: "sambanova", icon: "SambaNova" }, + { display_name: "ScrapeGraph AI", name: "scrapegraph", icon: "ScrapeGraph" }, + { display_name: "SearchAPI", name: "searchapi", icon: "SearchAPI" }, + { display_name: "SerpApi", name: "serpapi", icon: "SerpSearch" }, + { display_name: "Tavily", name: "tavily", icon: "TavilyIcon" }, + { display_name: "Twelve Labs", name: "twelvelabs", icon: "TwelveLabs" }, + { display_name: "Unstructured", name: "unstructured", icon: "Unstructured" }, + { display_name: "Vectara", name: "vectara", icon: "Vectara" }, { display_name: "VertexAI", name: "vertexai", icon: "VertexAI" }, + { display_name: "Wikipedia", name: "wikipedia", icon: "Wikipedia" }, + { + display_name: "WolframAlpha", + name: "wolframalpha", + icon: "WolframAlphaAPI", + }, + { display_name: "xAI", name: "xai", icon: "xAI" }, + { display_name: "YahooSearch", name: "yahoosearch", icon: "trending-up" }, + { display_name: "Youtube", name: "youtube", icon: "YouTube" }, + { display_name: "Zep", name: "zep", icon: "ZepMemory" }, ]; export const categoryIcons: Record = { diff --git a/src/frontend/tests/core/unit/tableInputComponent.spec.ts b/src/frontend/tests/core/unit/tableInputComponent.spec.ts index 127f5fd04..d914dff47 100644 --- a/src/frontend/tests/core/unit/tableInputComponent.spec.ts +++ b/src/frontend/tests/core/unit/tableInputComponent.spec.ts @@ -177,13 +177,14 @@ class CustomComponent(Component): const visibleTexts = ["Alpha", "Bravo", "Charlie", "Delta", "Echo"]; const notVisibleTexts = ["X1", "thirdRandomText"]; - await Promise.all( - visibleTexts.map((text) => expect(page.getByText(text)).toBeVisible()), - ); - await Promise.all( - notVisibleTexts.map((text) => - expect(page.getByText(text)).not.toBeVisible(), - ), - ); + for (const text of visibleTexts) { + const count = await page.getByText(text).count(); + expect(count).toBeGreaterThanOrEqual(1); + } + + for (const text of notVisibleTexts) { + const count = await page.getByText(text).count(); + expect(count).toBe(0); + } }, ); diff --git a/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts b/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts index 8c4101a9f..b7d3af35b 100644 --- a/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts +++ b/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts @@ -75,7 +75,7 @@ test( "vectorstoresAstra DB", "langchain_utilitiesTool Calling Agent", "langchain_utilitiesConversationChain", - "memoriesMem0 Chat Memory", + "mem0Mem0 Chat Memory", "logicCondition", "langchain_utilitiesSelf Query Retriever", "langchain_utilitiesCharacterTextSplitter", @@ -101,15 +101,15 @@ test( await page.getByTestId("sidebar-search-input").click(); const visibleModelSpecsTestIds = [ - "languagemodelsCohere", - "languagemodelsGroq", - "languagemodelsLM Studio", - "languagemodelsMaritalk", - "languagemodelsMistralAI", - "languagemodelsPerplexity", - "languagemodelsQianfan", - "languagemodelsSambaNova", - "languagemodelsxAI", + "cohereCohere Language Models", + "groqGroq", + "lmstudioLM Studio", + "maritalkMaritalk", + "mistralMistralAI", + "perplexityPerplexity", + "baiduQianfan", + "sambanovaSambaNova", + "xaixAI", ]; await Promise.all( diff --git a/src/frontend/tests/extended/integrations/duckduckgo.spec.ts b/src/frontend/tests/extended/integrations/duckduckgo.spec.ts index 6e45601b4..0ae23d1bb 100644 --- a/src/frontend/tests/extended/integrations/duckduckgo.spec.ts +++ b/src/frontend/tests/extended/integrations/duckduckgo.spec.ts @@ -11,12 +11,15 @@ test( await page.getByTestId("sidebar-search-input").click(); await page.getByTestId("sidebar-search-input").fill("duck"); - await page.waitForSelector('[data-testid="searchDuckDuckGo Search"]', { - timeout: 3000, - }); + await page.waitForSelector( + '[data-testid="disclosure-bundles-duckduckgo"]', + { + timeout: 3000, + }, + ); await page - .getByTestId("searchDuckDuckGo Search") + .getByTestId("duckduckgoDuckDuckGo Search") .hover() .then(async () => { await page diff --git a/src/frontend/tests/extended/regression/generalBugs-shard-11.spec.ts b/src/frontend/tests/extended/regression/generalBugs-shard-11.spec.ts index 5934b2b2e..56251456e 100644 --- a/src/frontend/tests/extended/regression/generalBugs-shard-11.spec.ts +++ b/src/frontend/tests/extended/regression/generalBugs-shard-11.spec.ts @@ -49,14 +49,14 @@ test( await page.getByTestId("sidebar-search-input").click(); await page.getByTestId("sidebar-search-input").fill("search api"); - await page.waitForSelector('[data-testid="searchSearch API"]', { + await page.waitForSelector('[data-testid="searchapiSearch API"]', { timeout: 1000, }); await zoomOut(page, 3); await page - .getByTestId("searchSearch API") + .getByTestId("searchapiSearch API") .dragTo(page.locator('//*[@id="react-flow-id"]'), { targetPosition: { x: 100, y: 100 }, });