feat: add models category (#8231)

* models category

* [autofix.ci] apply automated fixes

* change paths

* [autofix.ci] apply automated fixes

* test: comment out visibility check for disclosure-embeddings

* test: comment out visibility check for disclosure-embeddings

* test: update selector for OpenAI language models in decision flow integration test

* test: update selector for NVIDIA models to use language model identifier

* test: update selector for OpenAI language models in regression test

* models category (#8238)

* Update styleUtils.ts

* Update test_xai.py

* test: update selectors for OpenAI language models to use 'languagemodelsOpenAI'

* Update test_embedding_model_component.py

* test: update test IDs for NVIDIA and Ollama language models to use 'languagemodels'

* test: update test IDs to use 'languagemodels' prefix for consistency

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: deon-sanchez <deon.sanchez@datastax.com>
This commit is contained in:
Edwin Jose 2025-05-28 14:09:15 -04:00 committed by GitHub
commit b14189ed05
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
64 changed files with 152 additions and 143 deletions

View file

@ -2,13 +2,13 @@ from typing_extensions import TypedDict
from langflow.base.models.model import LCModelComponent
from langflow.components.amazon.amazon_bedrock_model import AmazonBedrockComponent
from langflow.components.models.anthropic import AnthropicModelComponent
from langflow.components.models.azure_openai import AzureChatOpenAIComponent
from langflow.components.models.google_generative_ai import GoogleGenerativeAIComponent
from langflow.components.models.groq import GroqModel
from langflow.components.models.nvidia import NVIDIAModelComponent
from langflow.components.models.openai_chat_model import OpenAIModelComponent
from langflow.components.models.sambanova import SambaNovaComponent
from langflow.components.languagemodels.anthropic import AnthropicModelComponent
from langflow.components.languagemodels.azure_openai import AzureChatOpenAIComponent
from langflow.components.languagemodels.google_generative_ai import GoogleGenerativeAIComponent
from langflow.components.languagemodels.groq import GroqModel
from langflow.components.languagemodels.nvidia import NVIDIAModelComponent
from langflow.components.languagemodels.openai_chat_model import OpenAIModelComponent
from langflow.components.languagemodels.sambanova import SambaNovaComponent
from langflow.inputs.inputs import InputTypes, SecretStrInput
from langflow.template.field.base import Input
@ -71,7 +71,7 @@ def create_input_fields_dict(inputs: list[Input], prefix: str) -> dict[str, Inpu
def _get_google_generative_ai_inputs_and_fields():
try:
from langflow.components.models.google_generative_ai import GoogleGenerativeAIComponent
from langflow.components.languagemodels.google_generative_ai import GoogleGenerativeAIComponent
google_generative_ai_inputs = get_filtered_inputs(GoogleGenerativeAIComponent)
except ImportError as e:
@ -85,7 +85,7 @@ def _get_google_generative_ai_inputs_and_fields():
def _get_openai_inputs_and_fields():
try:
from langflow.components.models.openai_chat_model import OpenAIModelComponent
from langflow.components.languagemodels.openai_chat_model import OpenAIModelComponent
openai_inputs = get_filtered_inputs(OpenAIModelComponent)
except ImportError as e:
@ -96,7 +96,7 @@ def _get_openai_inputs_and_fields():
def _get_azure_inputs_and_fields():
try:
from langflow.components.models.azure_openai import AzureChatOpenAIComponent
from langflow.components.languagemodels.azure_openai import AzureChatOpenAIComponent
azure_inputs = get_filtered_inputs(AzureChatOpenAIComponent)
except ImportError as e:
@ -107,7 +107,7 @@ def _get_azure_inputs_and_fields():
def _get_groq_inputs_and_fields():
try:
from langflow.components.models.groq import GroqModel
from langflow.components.languagemodels.groq import GroqModel
groq_inputs = get_filtered_inputs(GroqModel)
except ImportError as e:
@ -118,7 +118,7 @@ def _get_groq_inputs_and_fields():
def _get_anthropic_inputs_and_fields():
try:
from langflow.components.models.anthropic import AnthropicModelComponent
from langflow.components.languagemodels.anthropic import AnthropicModelComponent
anthropic_inputs = get_filtered_inputs(AnthropicModelComponent)
except ImportError as e:
@ -129,7 +129,7 @@ def _get_anthropic_inputs_and_fields():
def _get_nvidia_inputs_and_fields():
try:
from langflow.components.models.nvidia import NVIDIAModelComponent
from langflow.components.languagemodels.nvidia import NVIDIAModelComponent
nvidia_inputs = get_filtered_inputs(NVIDIAModelComponent)
except ImportError as e:
@ -151,7 +151,7 @@ def _get_amazon_bedrock_inputs_and_fields():
def _get_sambanova_inputs_and_fields():
try:
from langflow.components.models.sambanova import SambaNovaComponent
from langflow.components.languagemodels.sambanova import SambaNovaComponent
sambanova_inputs = get_filtered_inputs(SambaNovaComponent)
except ImportError as e:

View file

@ -3,7 +3,6 @@ from .astra_vectorize import AstraVectorizeComponent
from .azure_openai import AzureOpenAIEmbeddingsComponent
from .cloudflare import CloudflareWorkersAIEmbeddingsComponent
from .cohere import CohereEmbeddingsComponent
from .embedding_model import EmbeddingModelComponent
from .google_generative_ai import GoogleGenerativeAIEmbeddingsComponent
from .huggingface_inference_api import HuggingFaceInferenceAPIEmbeddingsComponent
from .lmstudioembeddings import LMStudioEmbeddingsComponent
@ -22,7 +21,6 @@ __all__ = [
"AzureOpenAIEmbeddingsComponent",
"CloudflareWorkersAIEmbeddingsComponent",
"CohereEmbeddingsComponent",
"EmbeddingModelComponent",
"EmbeddingSimilarityComponent",
"GoogleGenerativeAIEmbeddingsComponent",
"HuggingFaceInferenceAPIEmbeddingsComponent",

View file

@ -0,0 +1,47 @@
from .aiml import AIMLModelComponent
from .anthropic import AnthropicModelComponent
from .azure_openai import AzureChatOpenAIComponent
from .baidu_qianfan_chat import QianfanChatEndpointComponent
from .cohere import CohereComponent
from .deepseek import DeepSeekModelComponent
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 .novita import NovitaModelComponent
from .nvidia import NVIDIAModelComponent
from .ollama import ChatOllamaComponent
from .openai_chat_model import OpenAIModelComponent
from .openrouter import OpenRouterComponent
from .perplexity import PerplexityComponent
from .sambanova import SambaNovaComponent
from .vertexai import ChatVertexAIComponent
from .watsonx import WatsonxAIComponent
from .xai import XAIModelComponent
__all__ = [
"AIMLModelComponent",
"AnthropicModelComponent",
"AzureChatOpenAIComponent",
"ChatOllamaComponent",
"ChatVertexAIComponent",
"CohereComponent",
"DeepSeekModelComponent",
"GoogleGenerativeAIComponent",
"GroqModel",
"HuggingFaceEndpointsComponent",
"LMStudioModelComponent",
"MaritalkModelComponent",
"MistralAIModelComponent",
"NVIDIAModelComponent",
"NovitaModelComponent",
"OpenAIModelComponent",
"OpenRouterComponent",
"PerplexityComponent",
"QianfanChatEndpointComponent",
"SambaNovaComponent",
"WatsonxAIComponent",
"XAIModelComponent",
]

View file

@ -1,49 +1,4 @@
from .aiml import AIMLModelComponent
from .anthropic import AnthropicModelComponent
from .azure_openai import AzureChatOpenAIComponent
from .baidu_qianfan_chat import QianfanChatEndpointComponent
from .cohere import CohereComponent
from .deepseek import DeepSeekModelComponent
from .google_generative_ai import GoogleGenerativeAIComponent
from .groq import GroqModel
from .huggingface import HuggingFaceEndpointsComponent
from .embedding_model import EmbeddingModelComponent
from .language_model import LanguageModelComponent
from .lmstudiomodel import LMStudioModelComponent
from .maritalk import MaritalkModelComponent
from .mistral import MistralAIModelComponent
from .novita import NovitaModelComponent
from .nvidia import NVIDIAModelComponent
from .ollama import ChatOllamaComponent
from .openai_chat_model import OpenAIModelComponent
from .openrouter import OpenRouterComponent
from .perplexity import PerplexityComponent
from .sambanova import SambaNovaComponent
from .vertexai import ChatVertexAIComponent
from .watsonx import WatsonxAIComponent
from .xai import XAIModelComponent
__all__ = [
"AIMLModelComponent",
"AnthropicModelComponent",
"AzureChatOpenAIComponent",
"ChatOllamaComponent",
"ChatVertexAIComponent",
"CohereComponent",
"DeepSeekModelComponent",
"GoogleGenerativeAIComponent",
"GroqModel",
"HuggingFaceEndpointsComponent",
"LMStudioModelComponent",
"LanguageModelComponent",
"MaritalkModelComponent",
"MistralAIModelComponent",
"NVIDIAModelComponent",
"NovitaModelComponent",
"OpenAIModelComponent",
"OpenRouterComponent",
"PerplexityComponent",
"QianfanChatEndpointComponent",
"SambaNovaComponent",
"WatsonxAIComponent",
"XAIModelComponent",
]
__all__ = ["EmbeddingModelComponent", "LanguageModelComponent"]

View file

@ -22,7 +22,7 @@ class EmbeddingModelComponent(LCEmbeddingsModel):
description = "Generate embeddings using a specified provider."
icon = "binary"
name = "EmbeddingModel"
category = "embeddings"
category = "models"
inputs = [
DropdownInput(

View file

@ -1,5 +1,5 @@
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.graph import Graph

View file

@ -2,7 +2,7 @@ from textwrap import dedent
from langflow.components.data import URLComponent
from langflow.components.inputs import TextInputComponent
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.processing import ParseDataComponent
from langflow.components.prompts import PromptComponent

View file

@ -2,7 +2,7 @@ from langflow.components.crewai.crewai import CrewAIAgentComponent
from langflow.components.crewai.hierarchical_crew import HierarchicalCrewComponent
from langflow.components.crewai.hierarchical_task import HierarchicalTaskComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.components.tools import SearchAPIComponent, YfinanceToolComponent

View file

@ -1,6 +1,6 @@
from langflow.components.data import FileComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.processing import ParseDataComponent
from langflow.components.prompts import PromptComponent

View file

@ -2,7 +2,7 @@ from langflow.components.crewai.crewai import CrewAIAgentComponent
from langflow.components.crewai.hierarchical_crew import HierarchicalCrewComponent
from langflow.components.crewai.hierarchical_task import HierarchicalTaskComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.components.tools import SearchAPIComponent

View file

@ -1,6 +1,6 @@
from langflow.components.helpers.memory import MemoryComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.graph import Graph

View file

@ -1,7 +1,7 @@
from langflow.components.crewai.sequential_crew import SequentialCrewComponent
from langflow.components.crewai.sequential_task_agent import SequentialTaskAgentComponent
from langflow.components.inputs import TextInputComponent
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.components.tools import SearchAPIComponent

View file

@ -3,7 +3,7 @@ from textwrap import dedent
from langflow.components.data import FileComponent
from langflow.components.embeddings import OpenAIEmbeddingsComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.processing import ParseDataComponent
from langflow.components.processing.split_text import SplitTextComponent

View file

@ -2,7 +2,7 @@ import os
import pytest
from langflow.components.helpers import OutputParserComponent
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.prompts import PromptComponent
from tests.integration.utils import ComponentInputHandle, run_single_component

View file

@ -3,7 +3,7 @@ import os
import pytest
from langflow.base.tools.component_tool import ComponentToolkit
from langflow.components.langchain_utilities import ToolCallingAgentComponent
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs.chat import ChatOutput
from langflow.components.tools.calculator import CalculatorToolComponent
from langflow.graph import Graph

View file

@ -2,7 +2,7 @@ import os
import pytest
from langflow.components.langchain_utilities import ToolCallingAgentComponent
from langflow.components.models.openai_chat_model import OpenAIModelComponent
from langflow.components.languagemodels.openai_chat_model import OpenAIModelComponent
from langflow.components.tools.calculator import CalculatorToolComponent

View file

@ -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.models.baidu_qianfan_chat import QianfanChatEndpointComponent
from langflow.components.languagemodels.baidu_qianfan_chat import QianfanChatEndpointComponent
from qianfan.errors import APIError

View file

@ -2,7 +2,7 @@ from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from langchain_ollama import ChatOllama
from langflow.components.models.ollama import ChatOllamaComponent
from langflow.components.languagemodels.ollama import ChatOllamaComponent
from tests.base import ComponentTestBaseWithoutClient
@ -40,7 +40,7 @@ class TestChatOllamaComponent(ComponentTestBaseWithoutClient):
# Provide an empty list or the actual mapping if versioned files exist
return []
@patch("langflow.components.models.ollama.ChatOllama")
@patch("langflow.components.languagemodels.ollama.ChatOllama")
async def test_build_model(self, mock_chat_ollama, component_class, default_kwargs):
mock_instance = MagicMock()
mock_chat_ollama.return_value = mock_instance
@ -68,7 +68,7 @@ class TestChatOllamaComponent(ComponentTestBaseWithoutClient):
)
assert model == mock_instance
@patch("langflow.components.models.ollama.ChatOllama")
@patch("langflow.components.languagemodels.ollama.ChatOllama")
async def test_build_model_missing_base_url(self, mock_chat_ollama, component_class, default_kwargs):
# Make the mock raise an exception to simulate connection failure
mock_chat_ollama.side_effect = Exception("connection error")
@ -78,8 +78,8 @@ class TestChatOllamaComponent(ComponentTestBaseWithoutClient):
component.build_model()
@pytest.mark.asyncio
@patch("langflow.components.models.ollama.httpx.AsyncClient.post")
@patch("langflow.components.models.ollama.httpx.AsyncClient.get")
@patch("langflow.components.languagemodels.ollama.httpx.AsyncClient.post")
@patch("langflow.components.languagemodels.ollama.httpx.AsyncClient.get")
async def test_get_models_success(self, mock_get, mock_post):
component = ChatOllamaComponent()
mock_get_response = AsyncMock()
@ -107,7 +107,7 @@ class TestChatOllamaComponent(ComponentTestBaseWithoutClient):
assert mock_post.call_count == 2
@pytest.mark.asyncio
@patch("langflow.components.models.ollama.httpx.AsyncClient.get")
@patch("langflow.components.languagemodels.ollama.httpx.AsyncClient.get")
async def test_get_models_failure(self, mock_get):
import httpx
@ -147,7 +147,7 @@ class TestChatOllamaComponent(ComponentTestBaseWithoutClient):
assert updated_config["mirostat_eta"]["value"] == 0.2
assert updated_config["mirostat_tau"]["value"] == 10
@patch("langflow.components.models.ollama.httpx.AsyncClient.get")
@patch("langflow.components.languagemodels.ollama.httpx.AsyncClient.get")
@pytest.mark.asyncio
async def test_update_build_config_model_name(self, mock_get):
component = ChatOllamaComponent()

View file

@ -1,7 +1,7 @@
from unittest.mock import MagicMock
import pytest
from langflow.components.models import DeepSeekModelComponent
from langflow.components.languagemodels import DeepSeekModelComponent
from langflow.custom import Component
from langflow.custom.utils import build_custom_component_template

View file

@ -1,4 +1,4 @@
from langflow.components.models.huggingface import DEFAULT_MODEL, HuggingFaceEndpointsComponent
from langflow.components.languagemodels.huggingface import DEFAULT_MODEL, HuggingFaceEndpointsComponent
from langflow.inputs.inputs import DictInput, DropdownInput, FloatInput, IntInput, SecretStrInput, SliderInput, StrInput

View file

@ -1,7 +1,7 @@
from unittest.mock import MagicMock, patch
import pytest
from langflow.components.models import XAIModelComponent
from langflow.components.languagemodels import XAIModelComponent
from langflow.custom import Component
from langflow.custom.utils import build_custom_component_template
from langflow.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.models.xai.ChatOpenAI", return_value=MagicMock())
mock_chat_openai = mocker.patch("langflow.components.languagemodels.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.models.xai.ChatOpenAI",
"langflow.components.languagemodels.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.models.xai.ChatOpenAI", return_value=mock_instance)
mocker.patch("langflow.components.languagemodels.xai.ChatOpenAI", return_value=mock_instance)
model = component.build_model()
mock_instance.bind.assert_called_once_with(response_format={"type": "json_object"})

View file

@ -2,7 +2,7 @@ from unittest.mock import MagicMock, patch
import pytest
from langflow.base.models.openai_constants import OPENAI_EMBEDDING_MODEL_NAMES
from langflow.components.embeddings.embedding_model import EmbeddingModelComponent
from langflow.components.models.embedding_model import EmbeddingModelComponent
from tests.base import ComponentTestBaseWithClient
@ -41,7 +41,7 @@ class TestEmbeddingModelComponent(ComponentTestBaseWithClient):
assert updated_config["api_key"]["display_name"] == "OpenAI API Key"
assert updated_config["api_base"]["display_name"] == "OpenAI API Base URL"
@patch("langflow.components.embeddings.embedding_model.OpenAIEmbeddings")
@patch("langflow.components.models.embedding_model.OpenAIEmbeddings")
async def test_build_embeddings_openai(self, mock_openai_embeddings, component_class, default_kwargs):
# Setup mock
mock_instance = MagicMock()

View file

@ -2,7 +2,7 @@ import re
import pytest
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.graph import Graph

View file

@ -3,8 +3,8 @@ import os
import pytest
from langflow.components.inputs import ChatInput
from langflow.components.inputs.text import TextInputComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.logic.conditional_router import ConditionalRouterComponent
from langflow.components.models import OpenAIModelComponent
from langflow.components.outputs import ChatOutput, TextOutputComponent
from langflow.components.prompts import PromptComponent
from langflow.custom import Component

View file

@ -3,7 +3,7 @@ from typing import TYPE_CHECKING
import pytest
from langflow.components.helpers.memory import MemoryComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.graph import Graph

View file

@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
import pytest
from langflow.components.helpers.memory import MemoryComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.prompts import PromptComponent
from langflow.graph import Graph

View file

@ -6,7 +6,7 @@ import pytest
from langflow.components.data import FileComponent
from langflow.components.embeddings import OpenAIEmbeddingsComponent
from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent
from langflow.components.languagemodels import OpenAIModelComponent
from langflow.components.outputs import ChatOutput
from langflow.components.processing import ParseDataComponent
from langflow.components.processing.split_text import SplitTextComponent

View file

@ -208,11 +208,11 @@ export const SIDEBAR_CATEGORIES = [
{ display_name: "Inputs", name: "inputs", icon: "Download" },
{ display_name: "Outputs", name: "outputs", icon: "Upload" },
{ display_name: "Prompts", name: "prompts", icon: "TerminalSquare" },
{ display_name: "Models", name: "models", icon: "BrainCog" },
{ display_name: "Data", name: "data", icon: "Database" },
{ display_name: "Processing", name: "processing", icon: "ListFilter" },
{ display_name: "Models", name: "models", icon: "BrainCircuit" },
{ display_name: "Vector Stores", name: "vectorstores", icon: "Layers" },
{ display_name: "Embeddings", name: "embeddings", icon: "Binary" },
{ display_name: "Agents", name: "agents", icon: "Bot" },
{ display_name: "Chains", name: "chains", icon: "Link" },
{ display_name: "Loaders", name: "documentloaders", icon: "Paperclip" },
@ -229,6 +229,12 @@ 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: "Amazon", name: "amazon", icon: "Amazon" },
{ display_name: "Gmail", name: "gmail", icon: "Gmail" },
{ display_name: "GitHub", name: "github", icon: "Github" },
@ -309,7 +315,7 @@ export const nodeIconToDisplayIconMap: Record<string, string> = {
outputs: "Upload",
prompts: "TerminalSquare",
data: "Database",
models: "BrainCircuit",
models: "BrainCog",
helpers: "Wand2",
vectorstores: "Layers",
embeddings: "Binary",
@ -332,6 +338,8 @@ export const nodeIconToDisplayIconMap: Record<string, string> = {
//Integration Icons
AIML: "AI/ML",
AgentQL: "AgentQL",
LanguageModels: "BrainCircuit",
EmbeddingModels: "Binary",
AirbyteJSONLoader: "Airbyte",
AmazonBedrockEmbeddings: "AWS",
Amazon: "AWS",

View file

@ -119,7 +119,6 @@ test(
await expect(page.getByTestId("disclosure-helpers")).toBeVisible();
await expect(page.getByTestId("disclosure-vector stores")).toBeVisible();
await expect(page.getByTestId("disclosure-prototypes")).toBeVisible();
await expect(page.getByTestId("disclosure-embeddings")).toBeVisible();
await expect(page.getByTestId("disclosure-tools")).toBeVisible();
await expect(page.getByTestId("dataAPI Request")).toBeVisible();

View file

@ -16,12 +16,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("openai");
await page.waitForSelector('[data-testid="modelsOpenAI"]', {
await page.waitForSelector('[data-testid="languagemodelsOpenAI"]', {
timeout: 1000,
});
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.hover()
.then(async () => {
await page.getByTestId("add-component-button-openai").last().click();

View file

@ -164,11 +164,14 @@ test(
//---------------------------------- OPENAI
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("openai");
await page.waitForSelector('[data-testid="modelsOpenAI"]', {
timeout: 2000,
});
await page.waitForSelector(
'[data-testid="languagemodels_openai_draggable"]',
{
timeout: 2000,
},
);
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.dragTo(page.locator('//*[@id="react-flow-id"]'), {
targetPosition: { x: 500, y: 300 },
});

View file

@ -34,7 +34,7 @@ test.skip(
await page.getByTestId("sidebar-search-input").fill("openai");
await page.waitForTimeout(1000);
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.dragTo(page.locator('//*[@id="react-flow-id"]'));
await page.mouse.up();
await page.mouse.down();

View file

@ -14,12 +14,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("nvidia");
await page.waitForSelector('[data-testid="modelsNVIDIA"]', {
await page.waitForSelector('[data-testid="languagemodelsNVIDIA"]', {
timeout: 30000,
});
await page
.getByTestId("modelsNVIDIA")
.getByTestId("languagemodelsNVIDIA")
.hover()
.then(async () => {
// Wait for the API request to complete after clicking the add button

View file

@ -12,12 +12,12 @@ test("IntComponent", { tag: ["@release", "@workspace"] }, async ({ page }) => {
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("openai");
await page.waitForSelector('[data-testid="modelsOpenAI"]', {
await page.waitForSelector('[data-testid="languagemodelsOpenAI"]', {
timeout: 3000,
});
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.first()
.dragTo(page.locator('//*[@id="react-flow-id"]'));

View file

@ -17,12 +17,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("openai");
await page.waitForSelector('[data-testid="modelsOpenAI"]', {
await page.waitForSelector('[data-testid="languagemodelsOpenAI"]', {
timeout: 3000,
});
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.dragTo(page.locator('//*[@id="react-flow-id"]'));
await page.mouse.up();
await page.mouse.down();

View file

@ -17,12 +17,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("ollama");
await page.waitForSelector('[data-testid="modelsOllama"]', {
await page.waitForSelector('[data-testid="languagemodelsOllama"]', {
timeout: 3000,
});
await page
.getByTestId("modelsOllama")
.getByTestId("languagemodelsOllama")
.dragTo(page.locator('//*[@id="react-flow-id"]'));
await page.mouse.up();
await page.mouse.down();

View file

@ -31,12 +31,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("NVIDIA");
await page.waitForSelector('[data-testid="modelsNVIDIA"]', {
await page.waitForSelector('[data-testid="languagemodelsNVIDIA"]', {
timeout: 3000,
});
await page
.getByTestId("modelsNVIDIA")
.getByTestId("languagemodelsNVIDIA")
.dragTo(page.locator('//*[@id="react-flow-id"]'));
await page.mouse.up();
await page.mouse.down();
@ -85,7 +85,7 @@ test(
await page.keyboard.press("Escape");
await page.locator('//*[@id="react-flow-id"]').click();
const lastNvidiaModel = page.getByTestId("modelsNVIDIA").last();
const lastNvidiaModel = page.getByTestId("languagemodelsNVIDIA").last();
await lastNvidiaModel.scrollIntoViewIfNeeded();
try {
@ -128,12 +128,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("NVIDIA");
await page.waitForSelector('[data-testid="modelsNVIDIA"]', {
await page.waitForSelector('[data-testid="languagemodelsNVIDIA"]', {
timeout: 3000,
});
await page
.getByTestId("modelsNVIDIA")
.getByTestId("languagemodelsNVIDIA")
.dragTo(page.locator('//*[@id="react-flow-id"]'));
await page.mouse.up();
await page.mouse.down();

View file

@ -62,7 +62,6 @@ test(
"disclosure-models",
"disclosure-helpers",
"disclosure-vector stores",
"disclosure-embeddings",
"disclosure-agents",
"disclosure-memories",
"disclosure-logic",
@ -99,23 +98,23 @@ test(
await page.getByTestId("sidebar-search-input").click();
const visibleModelSpecsTestIds = [
"modelsAIML",
"modelsAnthropic",
"modelsAzure OpenAI",
"modelsCohere",
"modelsGoogle Generative AI",
"modelsGroq",
"modelsHuggingFace",
"modelsLM Studio",
"modelsMaritalk",
"modelsMistralAI",
"modelsNVIDIA",
"modelsOllama",
"modelsOpenAI",
"modelsPerplexity",
"modelsQianfan",
"modelsSambaNova",
"modelsVertex AI",
"languagemodelsAIML",
"languagemodelsAnthropic",
"languagemodelsAzure OpenAI",
"languagemodelsCohere",
"languagemodelsGoogle Generative AI",
"languagemodelsGroq",
"languagemodelsHuggingFace",
"languagemodelsLM Studio",
"languagemodelsMaritalk",
"languagemodelsMistralAI",
"languagemodelsNVIDIA",
"languagemodelsOllama",
"languagemodelsOpenAI",
"languagemodelsPerplexity",
"languagemodelsQianfan",
"languagemodelsSambaNova",
"languagemodelsVertex AI",
];
await Promise.all(

View file

@ -16,12 +16,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("ollama");
await page.waitForSelector('[data-testid="modelsOllama"]', {
await page.waitForSelector('[data-testid="languagemodelsOllama"]', {
timeout: 3000,
});
await page
.getByTestId("modelsOllama")
.getByTestId("languagemodelsOllama")
.dragTo(page.locator('//*[@id="react-flow-id"]'));
await page.mouse.up();
await page.mouse.down();

View file

@ -14,12 +14,12 @@ test(
await page.getByTestId("sidebar-search-input").click();
await page.getByTestId("sidebar-search-input").fill("openai");
await page.waitForSelector('[data-testid="modelsOpenAI"]', {
await page.waitForSelector('[data-testid="languagemodelsOpenAI"]', {
timeout: 1000,
});
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.hover()
.then(async () => {
await page.getByTestId("add-component-button-openai").last().click();

View file

@ -55,7 +55,7 @@ test(
await page.getByTestId("sidebar-search-input").fill("openai");
await page
.getByTestId("modelsOpenAI")
.getByTestId("languagemodelsOpenAI")
.dragTo(page.locator('//*[@id="react-flow-id"]'), {
targetPosition: { x: 100, y: 200 },
});