diff --git a/e2e/pipelines/test_evaluation_pipeline.py b/e2e/pipelines/test_evaluation_pipeline.py index fde2b85ccb..1cd41fa4d8 100644 --- a/e2e/pipelines/test_evaluation_pipeline.py +++ b/e2e/pipelines/test_evaluation_pipeline.py @@ -59,7 +59,7 @@ def rag_pipeline(document_store: InMemoryDocumentStore, top_k: int): # type: ig rag.add_component("embedder", SentenceTransformersTextEmbedder(model=EMBEDDINGS_MODEL, progress_bar=False)) # type: ignore rag.add_component("retriever", InMemoryEmbeddingRetriever(document_store, top_k=top_k)) # type: ignore rag.add_component("prompt_builder", PromptBuilder(template=template)) # type: ignore - rag.add_component("generator", OpenAIGenerator(model="gpt-3.5-turbo")) # type: ignore + rag.add_component("generator", OpenAIGenerator(model="gpt-4o-mini")) # type: ignore rag.add_component("answer_builder", AnswerBuilder()) # type: ignore rag.connect("embedder", "retriever.query_embedding") rag.connect("retriever", "prompt_builder.documents") @@ -200,7 +200,8 @@ def test_evaluation_pipeline(samples_path): for article in os.listdir(full_path): with open(f"{full_path}/{article}", "r") as f: for text in f.read().split("\n"): - docs.append(Document(content=text, meta={"name": article})) if text else None + if doc := Document(content=text, meta={"name": article}) if text else None: + docs.append(doc) doc_store = indexing_pipeline(docs) # running the RAG pipeline A + evaluation pipeline diff --git a/haystack/components/builders/chat_prompt_builder.py b/haystack/components/builders/chat_prompt_builder.py index a46101b05e..a8824dffca 100644 --- a/haystack/components/builders/chat_prompt_builder.py +++ b/haystack/components/builders/chat_prompt_builder.py @@ -58,7 +58,7 @@ class ChatPromptBuilder: # no parameter init, we don't use any runtime template variables prompt_builder = ChatPromptBuilder() - llm = OpenAIChatGenerator(api_key=Secret.from_token(""), model="gpt-3.5-turbo") + llm = OpenAIChatGenerator(api_key=Secret.from_token(""), model="gpt-4o-mini") pipe = Pipeline() pipe.add_component("prompt_builder", prompt_builder) @@ -76,7 +76,7 @@ class ChatPromptBuilder: >> {'llm': {'replies': [ChatMessage(content="Berlin is the capital city of Germany and one of the most vibrant and diverse cities in Europe. Here are some key things to know...Enjoy your time exploring the vibrant and dynamic - capital of Germany!", role=, name=None, meta={'model': 'gpt-3.5-turbo-0613', + capital of Germany!", role=, name=None, meta={'model': 'gpt-4o-mini', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 27, 'completion_tokens': 681, 'total_tokens': 708}})]}} @@ -90,7 +90,7 @@ class ChatPromptBuilder: print(res) >> {'llm': {'replies': [ChatMessage(content="Here is the weather forecast for Berlin in the next 5 days:\\n\\nDay 1: Mostly cloudy with a high of 22°C (72°F) and...so it's always a good idea to check for updates - closer to your visit.", role=, name=None, meta={'model': 'gpt-3.5-turbo-0613', + closer to your visit.", role=, name=None, meta={'model': 'gpt-4o-mini', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 37, 'completion_tokens': 201, 'total_tokens': 238}})]}} ``` diff --git a/haystack/components/generators/azure.py b/haystack/components/generators/azure.py index f0c5da7bee..20bb2cda8e 100644 --- a/haystack/components/generators/azure.py +++ b/haystack/components/generators/azure.py @@ -40,7 +40,7 @@ class AzureOpenAIGenerator(OpenAIGenerator): client = AzureOpenAIGenerator( azure_endpoint="", api_key=Secret.from_token(""), - azure_deployment="") + azure_deployment="") response = client.run("What's Natural Language Processing? Be brief.") print(response) ``` @@ -49,7 +49,7 @@ class AzureOpenAIGenerator(OpenAIGenerator): >> {'replies': ['Natural Language Processing (NLP) is a branch of artificial intelligence that focuses on >> the interaction between computers and human language. It involves enabling computers to understand, interpret, >> and respond to natural human language in a way that is both meaningful and useful.'], 'meta': [{'model': - >> 'gpt-3.5-turbo-0613', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 16, + >> 'gpt-4o-mini', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 16, >> 'completion_tokens': 49, 'total_tokens': 65}}]} ``` """ @@ -59,7 +59,7 @@ class AzureOpenAIGenerator(OpenAIGenerator): self, azure_endpoint: Optional[str] = None, api_version: Optional[str] = "2023-05-15", - azure_deployment: Optional[str] = "gpt-35-turbo", + azure_deployment: Optional[str] = "gpt-4o-mini", api_key: Optional[Secret] = Secret.from_env_var("AZURE_OPENAI_API_KEY", strict=False), azure_ad_token: Optional[Secret] = Secret.from_env_var("AZURE_OPENAI_AD_TOKEN", strict=False), organization: Optional[str] = None, @@ -135,7 +135,7 @@ class AzureOpenAIGenerator(OpenAIGenerator): self.azure_endpoint = azure_endpoint self.azure_deployment = azure_deployment self.organization = organization - self.model: str = azure_deployment or "gpt-35-turbo" + self.model: str = azure_deployment or "gpt-4o-mini" self.timeout = timeout or float(os.environ.get("OPENAI_TIMEOUT", 30.0)) self.max_retries = max_retries or int(os.environ.get("OPENAI_MAX_RETRIES", 5)) self.default_headers = default_headers or {} diff --git a/haystack/components/generators/chat/azure.py b/haystack/components/generators/chat/azure.py index d8dc555cdc..445e580402 100644 --- a/haystack/components/generators/chat/azure.py +++ b/haystack/components/generators/chat/azure.py @@ -45,7 +45,7 @@ class AzureOpenAIChatGenerator(OpenAIChatGenerator): client = AzureOpenAIGenerator( azure_endpoint="", api_key=Secret.from_token(""), - azure_deployment="") + azure_deployment="") response = client.run(messages) print(response) ``` @@ -55,7 +55,7 @@ class AzureOpenAIChatGenerator(OpenAIChatGenerator): [ChatMessage(content='Natural Language Processing (NLP) is a branch of artificial intelligence that focuses on enabling computers to understand, interpret, and generate human language in a way that is useful.', role=, name=None, - meta={'model': 'gpt-3.5-turbo-0613', 'index': 0, 'finish_reason': 'stop', + meta={'model': 'gpt-4o-mini', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 15, 'completion_tokens': 36, 'total_tokens': 51}})] } ``` @@ -66,7 +66,7 @@ class AzureOpenAIChatGenerator(OpenAIChatGenerator): self, azure_endpoint: Optional[str] = None, api_version: Optional[str] = "2023-05-15", - azure_deployment: Optional[str] = "gpt-35-turbo", + azure_deployment: Optional[str] = "gpt-4o-mini", api_key: Optional[Secret] = Secret.from_env_var("AZURE_OPENAI_API_KEY", strict=False), azure_ad_token: Optional[Secret] = Secret.from_env_var("AZURE_OPENAI_AD_TOKEN", strict=False), organization: Optional[str] = None, @@ -137,7 +137,7 @@ class AzureOpenAIChatGenerator(OpenAIChatGenerator): self.azure_endpoint = azure_endpoint self.azure_deployment = azure_deployment self.organization = organization - self.model = azure_deployment or "gpt-35-turbo" + self.model = azure_deployment or "gpt-4o-mini" self.timeout = timeout or float(os.environ.get("OPENAI_TIMEOUT", 30.0)) self.max_retries = max_retries or int(os.environ.get("OPENAI_MAX_RETRIES", 5)) self.default_headers = default_headers or {} diff --git a/haystack/components/generators/chat/openai.py b/haystack/components/generators/chat/openai.py index 6334496257..8f54b7ad36 100644 --- a/haystack/components/generators/chat/openai.py +++ b/haystack/components/generators/chat/openai.py @@ -5,7 +5,6 @@ import copy import json import os -import warnings from typing import Any, Callable, Dict, List, Optional, Union from openai import OpenAI, Stream @@ -57,7 +56,7 @@ class OpenAIChatGenerator: that focuses on enabling computers to understand, interpret, and generate human language in a way that is meaningful and useful.', role=, name=None, - meta={'model': 'gpt-3.5-turbo-0613', 'index': 0, 'finish_reason': 'stop', + meta={'model': 'gpt-4o-mini', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 15, 'completion_tokens': 36, 'total_tokens': 51}}) ] } @@ -67,7 +66,7 @@ class OpenAIChatGenerator: def __init__( self, api_key: Secret = Secret.from_env_var("OPENAI_API_KEY"), - model: str = "gpt-3.5-turbo", + model: str = "gpt-4o-mini", streaming_callback: Optional[Callable[[StreamingChunk], None]] = None, api_base_url: Optional[str] = None, organization: Optional[str] = None, @@ -76,7 +75,7 @@ class OpenAIChatGenerator: max_retries: Optional[int] = None, ): """ - Creates an instance of OpenAIChatGenerator. Unless specified otherwise in `model`, uses OpenAI's GPT-3.5. + Creates an instance of OpenAIChatGenerator. Unless specified otherwise in `model`, uses OpenAI's gpt-4o-mini Before initializing the component, you can set the 'OPENAI_TIMEOUT' and 'OPENAI_MAX_RETRIES' environment variables to override the `timeout` and `max_retries` parameters respectively @@ -118,11 +117,6 @@ class OpenAIChatGenerator: Maximum number of retries to contact OpenAI after an internal error. If not set, it defaults to either the `OPENAI_MAX_RETRIES` environment variable, or set to 5. """ - warnings.warn( - "In the upcoming releases 'gpt-3.5-turbo' will be replaced by 'gpt-4o-mini' as the default model", - DeprecationWarning, - ) - self.api_key = api_key self.model = model self.generation_kwargs = generation_kwargs or {} diff --git a/haystack/components/generators/openai.py b/haystack/components/generators/openai.py index 3b0ca999ed..83f1a02d96 100644 --- a/haystack/components/generators/openai.py +++ b/haystack/components/generators/openai.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: Apache-2.0 import os -import warnings from typing import Any, Callable, Dict, List, Optional, Union from openai import OpenAI, Stream @@ -45,7 +44,7 @@ class OpenAIGenerator: >> {'replies': ['Natural Language Processing (NLP) is a branch of artificial intelligence that focuses on >> the interaction between computers and human language. It involves enabling computers to understand, interpret, >> and respond to natural human language in a way that is both meaningful and useful.'], 'meta': [{'model': - >> 'gpt-3.5-turbo-0613', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 16, + >> 'gpt-4o-mini', 'index': 0, 'finish_reason': 'stop', 'usage': {'prompt_tokens': 16, >> 'completion_tokens': 49, 'total_tokens': 65}}]} ``` """ @@ -53,7 +52,7 @@ class OpenAIGenerator: def __init__( self, api_key: Secret = Secret.from_env_var("OPENAI_API_KEY"), - model: str = "gpt-3.5-turbo", + model: str = "gpt-4o-mini", streaming_callback: Optional[Callable[[StreamingChunk], None]] = None, api_base_url: Optional[str] = None, organization: Optional[str] = None, @@ -63,7 +62,7 @@ class OpenAIGenerator: max_retries: Optional[int] = None, ): """ - Creates an instance of OpenAIGenerator. Unless specified otherwise in `model`, uses OpenAI's GPT-3.5. + Creates an instance of OpenAIGenerator. Unless specified otherwise in `model`, uses OpenAI's gpt-4o-mini By setting the 'OPENAI_TIMEOUT' and 'OPENAI_MAX_RETRIES' you can change the timeout and max_retries parameters in the OpenAI client. @@ -103,11 +102,6 @@ class OpenAIGenerator: from the `OPENAI_MAX_RETRIES` environment variable or set to 5. """ - warnings.warn( - "In the upcoming releases 'gpt-3.5-turbo' will be replaced by 'gpt-4o-mini' as the default model", - DeprecationWarning, - ) - self.api_key = api_key self.model = model self.generation_kwargs = generation_kwargs or {} diff --git a/haystack/components/joiners/branch.py b/haystack/components/joiners/branch.py index 28357ab7e1..788d78a913 100644 --- a/haystack/components/joiners/branch.py +++ b/haystack/components/joiners/branch.py @@ -62,7 +62,7 @@ class BranchJoiner: # Add components to the pipeline pipe.add_component('joiner', BranchJoiner(List[ChatMessage])) - pipe.add_component('fc_llm', OpenAIChatGenerator(model="gpt-3.5-turbo-0125")) + pipe.add_component('fc_llm', OpenAIChatGenerator(model="gpt-4o-mini")) pipe.add_component('validator', JsonSchemaValidator(json_schema=person_schema)) pipe.add_component('adapter', OutputAdapter("{{chat_message}}", List[ChatMessage])), # And connect them diff --git a/releasenotes/notes/change-default-openai-model-99ed5477500196e2.yaml b/releasenotes/notes/change-default-openai-model-99ed5477500196e2.yaml new file mode 100644 index 0000000000..c4c36b33ff --- /dev/null +++ b/releasenotes/notes/change-default-openai-model-99ed5477500196e2.yaml @@ -0,0 +1,4 @@ +--- +upgrade: + - | + `gpt-3.5-turbo` was replaced by `gpt-4o-mini` as the default model for all components relying on OpenAI API diff --git a/test/components/builders/test_answer_builder.py b/test/components/builders/test_answer_builder.py index 9272b355ac..46c40e3422 100644 --- a/test/components/builders/test_answer_builder.py +++ b/test/components/builders/test_answer_builder.py @@ -160,7 +160,7 @@ class TestAnswerBuilder: role=ChatRole.ASSISTANT, name=None, meta={ - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -172,7 +172,7 @@ class TestAnswerBuilder: assert len(answers) == 1 assert answers[0].data == "Answer: AnswerString" assert answers[0].meta == { - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -189,7 +189,7 @@ class TestAnswerBuilder: role=ChatRole.ASSISTANT, name=None, meta={ - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -201,7 +201,7 @@ class TestAnswerBuilder: assert len(answers) == 1 assert answers[0].data == "AnswerString" assert answers[0].meta == { - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -218,7 +218,7 @@ class TestAnswerBuilder: role=ChatRole.ASSISTANT, name=None, meta={ - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -235,7 +235,7 @@ class TestAnswerBuilder: assert len(answers) == 1 assert answers[0].data == "Answer: AnswerString[2]" assert answers[0].meta == { - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -252,7 +252,7 @@ class TestAnswerBuilder: role=ChatRole.ASSISTANT, name=None, meta={ - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, @@ -264,7 +264,7 @@ class TestAnswerBuilder: assert len(answers) == 1 assert answers[0].data == "AnswerString" assert answers[0].meta == { - "model": "gpt-3.5-turbo-0613", + "model": "gpt-4o-mini", "index": 0, "finish_reason": "stop", "usage": {"prompt_tokens": 32, "completion_tokens": 153, "total_tokens": 185}, diff --git a/test/components/embedders/test_azure_document_embedder.py b/test/components/embedders/test_azure_document_embedder.py index f9663e612f..354f35a0fc 100644 --- a/test/components/embedders/test_azure_document_embedder.py +++ b/test/components/embedders/test_azure_document_embedder.py @@ -81,4 +81,4 @@ class TestAzureOpenAIDocumentEmbedder: assert isinstance(doc.embedding, list) assert len(doc.embedding) == 1536 assert all(isinstance(x, float) for x in doc.embedding) - assert metadata == {"model": "ada", "usage": {"prompt_tokens": 15, "total_tokens": 15}} + assert metadata == {"model": "text-embedding-ada-002", "usage": {"prompt_tokens": 15, "total_tokens": 15}} diff --git a/test/components/embedders/test_azure_text_embedder.py b/test/components/embedders/test_azure_text_embedder.py index 6a567b8fd8..5f1f82e3d8 100644 --- a/test/components/embedders/test_azure_text_embedder.py +++ b/test/components/embedders/test_azure_text_embedder.py @@ -59,4 +59,4 @@ class TestAzureOpenAITextEmbedder: assert len(result["embedding"]) == 1536 assert all(isinstance(x, float) for x in result["embedding"]) - assert result["meta"] == {"model": "ada", "usage": {"prompt_tokens": 6, "total_tokens": 6}} + assert result["meta"] == {"model": "text-embedding-ada-002", "usage": {"prompt_tokens": 6, "total_tokens": 6}} diff --git a/test/components/generators/chat/test_azure.py b/test/components/generators/chat/test_azure.py index 0741c9849c..fdafec682d 100644 --- a/test/components/generators/chat/test_azure.py +++ b/test/components/generators/chat/test_azure.py @@ -18,7 +18,7 @@ class TestOpenAIChatGenerator: monkeypatch.setenv("AZURE_OPENAI_API_KEY", "test-api-key") component = AzureOpenAIChatGenerator(azure_endpoint="some-non-existing-endpoint") assert component.client.api_key == "test-api-key" - assert component.azure_deployment == "gpt-35-turbo" + assert component.azure_deployment == "gpt-4o-mini" assert component.streaming_callback is None assert not component.generation_kwargs @@ -36,7 +36,7 @@ class TestOpenAIChatGenerator: generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, ) assert component.client.api_key == "test-api-key" - assert component.azure_deployment == "gpt-35-turbo" + assert component.azure_deployment == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} @@ -51,7 +51,7 @@ class TestOpenAIChatGenerator: "azure_ad_token": {"env_vars": ["AZURE_OPENAI_AD_TOKEN"], "strict": False, "type": "env_var"}, "api_version": "2023-05-15", "azure_endpoint": "some-non-existing-endpoint", - "azure_deployment": "gpt-35-turbo", + "azure_deployment": "gpt-4o-mini", "organization": None, "streaming_callback": None, "generation_kwargs": {}, @@ -79,7 +79,7 @@ class TestOpenAIChatGenerator: "azure_ad_token": {"env_vars": ["ENV_VAR1"], "strict": False, "type": "env_var"}, "api_version": "2023-05-15", "azure_endpoint": "some-non-existing-endpoint", - "azure_deployment": "gpt-35-turbo", + "azure_deployment": "gpt-4o-mini", "organization": None, "streaming_callback": None, "timeout": 2.5, @@ -114,7 +114,7 @@ class TestOpenAIChatGenerator: assert len(results["replies"]) == 1 message: ChatMessage = results["replies"][0] assert "Paris" in message.content - assert "gpt-35-turbo" in message.meta["model"] + assert "gpt-4o-mini" in message.meta["model"] assert message.meta["finish_reason"] == "stop" # additional tests intentionally omitted as they are covered by test_openai.py diff --git a/test/components/generators/chat/test_openai.py b/test/components/generators/chat/test_openai.py index 335cc253bb..c3332aae97 100644 --- a/test/components/generators/chat/test_openai.py +++ b/test/components/generators/chat/test_openai.py @@ -26,7 +26,7 @@ class TestOpenAIChatGenerator: monkeypatch.setenv("OPENAI_API_KEY", "test-api-key") component = OpenAIChatGenerator() assert component.client.api_key == "test-api-key" - assert component.model == "gpt-3.5-turbo" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is None assert not component.generation_kwargs assert component.client.timeout == 30 @@ -42,7 +42,7 @@ class TestOpenAIChatGenerator: monkeypatch.setenv("OPENAI_MAX_RETRIES", "10") component = OpenAIChatGenerator( api_key=Secret.from_token("test-api-key"), - model="gpt-4", + model="gpt-4o-mini", streaming_callback=print_streaming_chunk, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, @@ -50,7 +50,7 @@ class TestOpenAIChatGenerator: max_retries=1, ) assert component.client.api_key == "test-api-key" - assert component.model == "gpt-4" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} assert component.client.timeout == 40.0 @@ -61,13 +61,13 @@ class TestOpenAIChatGenerator: monkeypatch.setenv("OPENAI_MAX_RETRIES", "10") component = OpenAIChatGenerator( api_key=Secret.from_token("test-api-key"), - model="gpt-4", + model="gpt-4o-mini", streaming_callback=print_streaming_chunk, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, ) assert component.client.api_key == "test-api-key" - assert component.model == "gpt-4" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} assert component.client.timeout == 100.0 @@ -81,7 +81,7 @@ class TestOpenAIChatGenerator: "type": "haystack.components.generators.chat.openai.OpenAIChatGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-3.5-turbo", + "model": "gpt-4o-mini", "organization": None, "streaming_callback": None, "api_base_url": None, @@ -93,7 +93,7 @@ class TestOpenAIChatGenerator: monkeypatch.setenv("ENV_VAR", "test-api-key") component = OpenAIChatGenerator( api_key=Secret.from_env_var("ENV_VAR"), - model="gpt-4", + model="gpt-4o-mini", streaming_callback=print_streaming_chunk, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, @@ -103,7 +103,7 @@ class TestOpenAIChatGenerator: "type": "haystack.components.generators.chat.openai.OpenAIChatGenerator", "init_parameters": { "api_key": {"env_vars": ["ENV_VAR"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "organization": None, "api_base_url": "test-base-url", "streaming_callback": "haystack.components.generators.utils.print_streaming_chunk", @@ -114,7 +114,7 @@ class TestOpenAIChatGenerator: def test_to_dict_with_lambda_streaming_callback(self, monkeypatch): monkeypatch.setenv("OPENAI_API_KEY", "test-api-key") component = OpenAIChatGenerator( - model="gpt-4", + model="gpt-4o-mini", streaming_callback=lambda x: x, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, @@ -124,7 +124,7 @@ class TestOpenAIChatGenerator: "type": "haystack.components.generators.chat.openai.OpenAIChatGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "organization": None, "api_base_url": "test-base-url", "streaming_callback": "chat.test_openai.", @@ -138,14 +138,14 @@ class TestOpenAIChatGenerator: "type": "haystack.components.generators.chat.openai.OpenAIChatGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "api_base_url": "test-base-url", "streaming_callback": "haystack.components.generators.utils.print_streaming_chunk", "generation_kwargs": {"max_tokens": 10, "some_test_param": "test-params"}, }, } component = OpenAIChatGenerator.from_dict(data) - assert component.model == "gpt-4" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.api_base_url == "test-base-url" assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} @@ -157,7 +157,7 @@ class TestOpenAIChatGenerator: "type": "haystack.components.generators.chat.openai.OpenAIChatGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "organization": None, "api_base_url": "test-base-url", "streaming_callback": "haystack.components.generators.utils.print_streaming_chunk", @@ -279,7 +279,7 @@ class TestOpenAIChatGenerator: assert len(results["replies"]) == 1 message: ChatMessage = results["replies"][0] assert "Paris" in message.content - assert "gpt-3.5" in message.meta["model"] + assert "gpt-4o-mini" in message.meta["model"] assert message.meta["finish_reason"] == "stop" @pytest.mark.skipif( @@ -315,7 +315,7 @@ class TestOpenAIChatGenerator: message: ChatMessage = results["replies"][0] assert "Paris" in message.content - assert "gpt-3.5" in message.meta["model"] + assert "gpt-4o-mini" in message.meta["model"] assert message.meta["finish_reason"] == "stop" assert callback.counter > 1 diff --git a/test/components/generators/test_azure.py b/test/components/generators/test_azure.py index bca22e2143..d3e524f602 100644 --- a/test/components/generators/test_azure.py +++ b/test/components/generators/test_azure.py @@ -18,7 +18,7 @@ class TestAzureOpenAIGenerator: monkeypatch.setenv("AZURE_OPENAI_API_KEY", "test-api-key") component = AzureOpenAIGenerator(azure_endpoint="some-non-existing-endpoint") assert component.client.api_key == "test-api-key" - assert component.azure_deployment == "gpt-35-turbo" + assert component.azure_deployment == "gpt-4o-mini" assert component.streaming_callback is None assert not component.generation_kwargs @@ -32,12 +32,12 @@ class TestAzureOpenAIGenerator: component = AzureOpenAIGenerator( api_key=Secret.from_token("fake-api-key"), azure_endpoint="some-non-existing-endpoint", - azure_deployment="gpt-35-turbo", + azure_deployment="gpt-4o-mini", streaming_callback=print_streaming_chunk, generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, ) assert component.client.api_key == "fake-api-key" - assert component.azure_deployment == "gpt-35-turbo" + assert component.azure_deployment == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.timeout == 30.0 assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} @@ -51,7 +51,7 @@ class TestAzureOpenAIGenerator: "init_parameters": { "api_key": {"env_vars": ["AZURE_OPENAI_API_KEY"], "strict": False, "type": "env_var"}, "azure_ad_token": {"env_vars": ["AZURE_OPENAI_AD_TOKEN"], "strict": False, "type": "env_var"}, - "azure_deployment": "gpt-35-turbo", + "azure_deployment": "gpt-4o-mini", "api_version": "2023-05-15", "streaming_callback": None, "azure_endpoint": "some-non-existing-endpoint", @@ -81,7 +81,7 @@ class TestAzureOpenAIGenerator: "init_parameters": { "api_key": {"env_vars": ["ENV_VAR"], "strict": False, "type": "env_var"}, "azure_ad_token": {"env_vars": ["ENV_VAR1"], "strict": False, "type": "env_var"}, - "azure_deployment": "gpt-35-turbo", + "azure_deployment": "gpt-4o-mini", "api_version": "2023-05-15", "streaming_callback": None, "azure_endpoint": "some-non-existing-endpoint", @@ -121,7 +121,7 @@ class TestAzureOpenAIGenerator: assert "Paris" in response metadata = results["meta"][0] - assert "gpt-35-turbo" in metadata["model"] + assert "gpt-4o-mini" in metadata["model"] assert metadata["finish_reason"] == "stop" assert "usage" in metadata diff --git a/test/components/generators/test_openai.py b/test/components/generators/test_openai.py index d3a1fbb860..a164fa5e0e 100644 --- a/test/components/generators/test_openai.py +++ b/test/components/generators/test_openai.py @@ -19,7 +19,7 @@ class TestOpenAIGenerator: monkeypatch.setenv("OPENAI_API_KEY", "test-api-key") component = OpenAIGenerator() assert component.client.api_key == "test-api-key" - assert component.model == "gpt-3.5-turbo" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is None assert not component.generation_kwargs assert component.client.timeout == 30 @@ -35,7 +35,7 @@ class TestOpenAIGenerator: monkeypatch.setenv("OPENAI_MAX_RETRIES", "10") component = OpenAIGenerator( api_key=Secret.from_token("test-api-key"), - model="gpt-4", + model="gpt-4o-mini", streaming_callback=print_streaming_chunk, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, @@ -43,7 +43,7 @@ class TestOpenAIGenerator: max_retries=1, ) assert component.client.api_key == "test-api-key" - assert component.model == "gpt-4" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} assert component.client.timeout == 40.0 @@ -54,13 +54,13 @@ class TestOpenAIGenerator: monkeypatch.setenv("OPENAI_MAX_RETRIES", "10") component = OpenAIGenerator( api_key=Secret.from_token("test-api-key"), - model="gpt-4", + model="gpt-4o-mini", streaming_callback=print_streaming_chunk, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, ) assert component.client.api_key == "test-api-key" - assert component.model == "gpt-4" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} assert component.client.timeout == 100.0 @@ -74,7 +74,7 @@ class TestOpenAIGenerator: "type": "haystack.components.generators.openai.OpenAIGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-3.5-turbo", + "model": "gpt-4o-mini", "streaming_callback": None, "system_prompt": None, "api_base_url": None, @@ -87,7 +87,7 @@ class TestOpenAIGenerator: monkeypatch.setenv("ENV_VAR", "test-api-key") component = OpenAIGenerator( api_key=Secret.from_env_var("ENV_VAR"), - model="gpt-4", + model="gpt-4o-mini", streaming_callback=print_streaming_chunk, api_base_url="test-base-url", organization="org-1234567", @@ -98,7 +98,7 @@ class TestOpenAIGenerator: "type": "haystack.components.generators.openai.OpenAIGenerator", "init_parameters": { "api_key": {"env_vars": ["ENV_VAR"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "system_prompt": None, "api_base_url": "test-base-url", "organization": "org-1234567", @@ -110,7 +110,7 @@ class TestOpenAIGenerator: def test_to_dict_with_lambda_streaming_callback(self, monkeypatch): monkeypatch.setenv("OPENAI_API_KEY", "test-api-key") component = OpenAIGenerator( - model="gpt-4", + model="gpt-4o-mini", streaming_callback=lambda x: x, api_base_url="test-base-url", generation_kwargs={"max_tokens": 10, "some_test_param": "test-params"}, @@ -120,7 +120,7 @@ class TestOpenAIGenerator: "type": "haystack.components.generators.openai.OpenAIGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "system_prompt": None, "organization": None, "api_base_url": "test-base-url", @@ -135,7 +135,7 @@ class TestOpenAIGenerator: "type": "haystack.components.generators.openai.OpenAIGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "system_prompt": None, "organization": None, "api_base_url": "test-base-url", @@ -144,7 +144,7 @@ class TestOpenAIGenerator: }, } component = OpenAIGenerator.from_dict(data) - assert component.model == "gpt-4" + assert component.model == "gpt-4o-mini" assert component.streaming_callback is print_streaming_chunk assert component.api_base_url == "test-base-url" assert component.generation_kwargs == {"max_tokens": 10, "some_test_param": "test-params"} @@ -156,7 +156,7 @@ class TestOpenAIGenerator: "type": "haystack.components.generators.openai.OpenAIGenerator", "init_parameters": { "api_key": {"env_vars": ["OPENAI_API_KEY"], "strict": True, "type": "env_var"}, - "model": "gpt-4", + "model": "gpt-4o-mini", "api_base_url": "test-base-url", "streaming_callback": "haystack.components.generators.utils.print_streaming_chunk", "generation_kwargs": {"max_tokens": 10, "some_test_param": "test-params"}, @@ -278,7 +278,7 @@ class TestOpenAIGenerator: assert "Paris" in response metadata = results["meta"][0] - assert "gpt-3.5" in metadata["model"] + assert "gpt-4o-mini" in metadata["model"] assert metadata["finish_reason"] == "stop" assert "usage" in metadata @@ -322,7 +322,7 @@ class TestOpenAIGenerator: metadata = results["meta"][0] - assert "gpt-3.5" in metadata["model"] + assert "gpt-4o-mini" in metadata["model"] assert metadata["finish_reason"] == "stop" # unfortunately, the usage is not available for streaming calls