diff --git a/integrations/stackit/src/haystack_integrations/components/embedders/stackit/document_embedder.py b/integrations/stackit/src/haystack_integrations/components/embedders/stackit/document_embedder.py index d0370d47c0..9c7a012b4a 100644 --- a/integrations/stackit/src/haystack_integrations/components/embedders/stackit/document_embedder.py +++ b/integrations/stackit/src/haystack_integrations/components/embedders/stackit/document_embedder.py @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2023-present deepset GmbH # # SPDX-License-Identifier: Apache-2.0 -from typing import Any +from typing import Any, ClassVar from haystack import component, default_to_dict from haystack.components.embedders import OpenAIDocumentEmbedder @@ -30,6 +30,14 @@ class STACKITDocumentEmbedder(OpenAIDocumentEmbedder): ``` """ + SUPPORTED_MODELS: ClassVar[list[str]] = [ + "intfloat/e5-mistral-7b-instruct", + "Qwen/Qwen3-VL-Embedding-8B", + ] + """A non-exhaustive list of embedding models supported by this component. + See https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models + for the full list.""" + def __init__( self, model: str, diff --git a/integrations/stackit/src/haystack_integrations/components/embedders/stackit/text_embedder.py b/integrations/stackit/src/haystack_integrations/components/embedders/stackit/text_embedder.py index afa9798733..578c20f5f8 100644 --- a/integrations/stackit/src/haystack_integrations/components/embedders/stackit/text_embedder.py +++ b/integrations/stackit/src/haystack_integrations/components/embedders/stackit/text_embedder.py @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2023-present deepset GmbH # # SPDX-License-Identifier: Apache-2.0 -from typing import Any +from typing import Any, ClassVar from haystack import component, default_to_dict from haystack.components.embedders import OpenAITextEmbedder @@ -23,6 +23,14 @@ class STACKITTextEmbedder(OpenAITextEmbedder): ``` """ + SUPPORTED_MODELS: ClassVar[list[str]] = [ + "intfloat/e5-mistral-7b-instruct", + "Qwen/Qwen3-VL-Embedding-8B", + ] + """A non-exhaustive list of embedding models supported by this component. + See https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models + for the full list.""" + def __init__( self, model: str, diff --git a/integrations/stackit/src/haystack_integrations/components/generators/stackit/chat/chat_generator.py b/integrations/stackit/src/haystack_integrations/components/generators/stackit/chat/chat_generator.py index f6675faaa9..d062e8fd06 100644 --- a/integrations/stackit/src/haystack_integrations/components/generators/stackit/chat/chat_generator.py +++ b/integrations/stackit/src/haystack_integrations/components/generators/stackit/chat/chat_generator.py @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2025-present deepset GmbH # # SPDX-License-Identifier: Apache-2.0 -from typing import Any +from typing import Any, ClassVar from haystack import component, default_to_dict from haystack.components.generators.chat import OpenAIChatGenerator @@ -38,6 +38,19 @@ class STACKITChatGenerator(OpenAIChatGenerator): ``` """ + SUPPORTED_MODELS: ClassVar[list[str]] = [ + "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", + "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", + "openai/gpt-oss-120b", + "google/gemma-3-27b-it", + "openai/gpt-oss-20b", + "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", + "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", + ] + """A non-exhaustive list of chat models supported by this component. + See https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models + for the full list.""" + def __init__( self, model: str, diff --git a/integrations/stackit/tests/test_stackit_chat_generator.py b/integrations/stackit/tests/test_stackit_chat_generator.py index 691a91432f..9689d710f3 100644 --- a/integrations/stackit/tests/test_stackit_chat_generator.py +++ b/integrations/stackit/tests/test_stackit_chat_generator.py @@ -63,6 +63,13 @@ def mock_chat_completion(): class TestSTACKITChatGenerator: + def test_supported_models(self): + """SUPPORTED_MODELS is a non-empty list of strings.""" + models = STACKITChatGenerator.SUPPORTED_MODELS + assert isinstance(models, list) + assert len(models) > 0 + assert all(isinstance(m, str) for m in models) + def test_init_default(self, monkeypatch): monkeypatch.setenv("STACKIT_API_KEY", "test-api-key") component = STACKITChatGenerator(model="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8") diff --git a/integrations/stackit/tests/test_stackit_document_embedder.py b/integrations/stackit/tests/test_stackit_document_embedder.py index d649094864..6ba4fa5aea 100644 --- a/integrations/stackit/tests/test_stackit_document_embedder.py +++ b/integrations/stackit/tests/test_stackit_document_embedder.py @@ -11,6 +11,13 @@ class TestSTACKITDocumentEmbedder: + def test_supported_models(self): + """SUPPORTED_MODELS is a non-empty list of strings.""" + models = STACKITDocumentEmbedder.SUPPORTED_MODELS + assert isinstance(models, list) + assert len(models) > 0 + assert all(isinstance(m, str) for m in models) + def test_init_default(self, monkeypatch): monkeypatch.setenv("STACKIT_API_KEY", "test-api-key") diff --git a/integrations/stackit/tests/test_stackit_text_embedder.py b/integrations/stackit/tests/test_stackit_text_embedder.py index 4e8d3235ea..bf3ee737d2 100644 --- a/integrations/stackit/tests/test_stackit_text_embedder.py +++ b/integrations/stackit/tests/test_stackit_text_embedder.py @@ -10,6 +10,13 @@ class TestSTACKITTextEmbedder: + def test_supported_models(self): + """SUPPORTED_MODELS is a non-empty list of strings.""" + models = STACKITTextEmbedder.SUPPORTED_MODELS + assert isinstance(models, list) + assert len(models) > 0 + assert all(isinstance(m, str) for m in models) + def test_init_default(self, monkeypatch): monkeypatch.setenv("STACKIT_API_KEY", "test-api-key")