change gpt-4o and install in .yml

This commit is contained in:
Mery-Sanz 2025-04-11 11:38:21 +02:00
parent 58a0aaaae8
commit bd33d3fd67
4 changed files with 27 additions and 20 deletions

View File

@ -9,6 +9,7 @@
<<: *use_base_container
script:
- pip3 install -e .
- pip install inline-snapshot pytest-asyncio graphviz pytest-mock
- pytest -s $TEST_PATH
tags:
- p40

View File

@ -31,7 +31,8 @@ from cai.sdk.agents import (
generation_span,
)
from cai.sdk.agents.models.fake_id import FAKE_RESPONSES_ID
import os
cai_model = os.getenv('CAI_MODEL', "qwen2.5:14b")
@pytest.mark.allow_call_model_methods
@pytest.mark.asyncio
@ -57,7 +58,7 @@ async def test_get_response_with_text_message(monkeypatch) -> None:
return chat
monkeypatch.setattr(OpenAIChatCompletionsModel, "_fetch_response", patched_fetch_response)
model = OpenAIProvider(use_responses=False).get_model("gpt-4")
model = OpenAIProvider(use_responses=False).get_model(cai_model)
resp: ModelResponse = await model.get_response(
system_instructions=None,
input="",
@ -105,7 +106,7 @@ async def test_get_response_with_refusal(monkeypatch) -> None:
return chat
monkeypatch.setattr(OpenAIChatCompletionsModel, "_fetch_response", patched_fetch_response)
model = OpenAIProvider(use_responses=False).get_model("gpt-4")
model = OpenAIProvider(use_responses=False).get_model(cai_model)
resp: ModelResponse = await model.get_response(
system_instructions=None,
input="",
@ -154,7 +155,7 @@ async def test_get_response_with_tool_call(monkeypatch) -> None:
return chat
monkeypatch.setattr(OpenAIChatCompletionsModel, "_fetch_response", patched_fetch_response)
model = OpenAIProvider(use_responses=False).get_model("gpt-4")
model = OpenAIProvider(use_responses=False).get_model(cai_model)
resp: ModelResponse = await model.get_response(
system_instructions=None,
input="",
@ -208,7 +209,7 @@ async def test_fetch_response_non_stream(monkeypatch) -> None:
)
completions = DummyCompletions()
dummy_client = DummyClient(completions)
model = OpenAIChatCompletionsModel(model="gpt-4", openai_client=dummy_client) # type: ignore
model = OpenAIChatCompletionsModel(model=cai_model, openai_client=dummy_client) # type: ignore
# Execute the private fetch with a system instruction and simple string input.
with generation_span(disabled=True) as span:
result = await model._fetch_response(
@ -227,7 +228,7 @@ async def test_fetch_response_non_stream(monkeypatch) -> None:
kwargs = completions.kwargs
assert kwargs["stream"] is False
assert kwargs["store"] is True
assert kwargs["model"] == "gpt-4"
assert kwargs["model"] == cai_model
assert kwargs["messages"][0]["role"] == "system"
assert kwargs["messages"][0]["content"] == "sys"
assert kwargs["messages"][1]["role"] == "user"
@ -265,7 +266,7 @@ async def test_fetch_response_stream(monkeypatch) -> None:
completions = DummyCompletions()
dummy_client = DummyClient(completions)
model = OpenAIChatCompletionsModel(model="gpt-4", openai_client=dummy_client) # type: ignore
model = OpenAIChatCompletionsModel(model=cai_model, openai_client=dummy_client) # type: ignore
with generation_span(disabled=True) as span:
response, stream = await model._fetch_response(
system_instructions=None,
@ -285,7 +286,7 @@ async def test_fetch_response_stream(monkeypatch) -> None:
# Response is a proper openai Response
assert isinstance(response, Response)
assert response.id == FAKE_RESPONSES_ID
assert response.model == "gpt-4"
assert response.model == cai_model
assert response.object == "response"
assert response.output == []
# We returned the async iterator produced by our dummy.

View File

@ -22,6 +22,8 @@ from cai.sdk.agents.models.interface import ModelTracing
from cai.sdk.agents.models.openai_chatcompletions import OpenAIChatCompletionsModel
from cai.sdk.agents.models.openai_provider import OpenAIProvider
import os
cai_model = os.getenv('CAI_MODEL', "qwen2.5:14b")
@pytest.mark.allow_call_model_methods
@pytest.mark.asyncio
@ -69,7 +71,7 @@ async def test_stream_response_yields_events_for_text_content(monkeypatch) -> No
return resp, fake_stream()
monkeypatch.setattr(OpenAIChatCompletionsModel, "_fetch_response", patched_fetch_response)
model = OpenAIProvider(use_responses=False).get_model("gpt-4")
model = OpenAIProvider(use_responses=False).get_model(cai_model)
output_events = []
async for event in model.stream_response(
system_instructions=None,
@ -158,7 +160,7 @@ async def test_stream_response_yields_events_for_refusal_content(monkeypatch) ->
return resp, fake_stream()
monkeypatch.setattr(OpenAIChatCompletionsModel, "_fetch_response", patched_fetch_response)
model = OpenAIProvider(use_responses=False).get_model("gpt-4")
model = OpenAIProvider(use_responses=False).get_model(cai_model)
output_events = []
async for event in model.stream_response(
system_instructions=None,
@ -245,7 +247,7 @@ async def test_stream_response_yields_events_for_tool_call(monkeypatch) -> None:
return resp, fake_stream()
monkeypatch.setattr(OpenAIChatCompletionsModel, "_fetch_response", patched_fetch_response)
model = OpenAIProvider(use_responses=False).get_model("gpt-4")
model = OpenAIProvider(use_responses=False).get_model(cai_model)
output_events = []
async for event in model.stream_response(
system_instructions=None,

View File

@ -9,22 +9,25 @@ from cai.sdk.agents.models.openai_provider import OpenAIProvider
from cai.sdk.agents.models.openai_responses import OpenAIResponsesModel
import os
cai_model = os.getenv('CAI_MODEL', "qwen2.5:14b")
def test_cc_no_default_key_errors(monkeypatch):
monkeypatch.delenv("OPENAI_API_KEY", raising=False)
with pytest.raises(openai.OpenAIError):
OpenAIProvider(use_responses=False).get_model("gpt-4")
OpenAIProvider(use_responses=False).get_model(cai_model)
def test_cc_set_default_openai_key():
set_default_openai_key("test_key")
chat_model = OpenAIProvider(use_responses=False).get_model("gpt-4")
chat_model = OpenAIProvider(use_responses=False).get_model(cai_model)
assert chat_model._client.api_key == "test_key" # type: ignore
def test_cc_set_default_openai_client():
client = openai.AsyncOpenAI(api_key="test_key")
set_default_openai_client(client)
chat_model = OpenAIProvider(use_responses=False).get_model("gpt-4")
chat_model = OpenAIProvider(use_responses=False).get_model(cai_model)
assert chat_model._client.api_key == "test_key" # type: ignore
@ -32,33 +35,33 @@ def test_resp_no_default_key_errors(monkeypatch):
monkeypatch.delenv("OPENAI_API_KEY", raising=False)
assert os.getenv("OPENAI_API_KEY") is None
with pytest.raises(openai.OpenAIError):
OpenAIProvider(use_responses=True).get_model("gpt-4")
OpenAIProvider(use_responses=True).get_model(cai_model)
def test_resp_set_default_openai_key():
set_default_openai_key("test_key")
resp_model = OpenAIProvider(use_responses=True).get_model("gpt-4")
resp_model = OpenAIProvider(use_responses=True).get_model(cai_model)
assert resp_model._client.api_key == "test_key" # type: ignore
def test_resp_set_default_openai_client():
client = openai.AsyncOpenAI(api_key="test_key")
set_default_openai_client(client)
resp_model = OpenAIProvider(use_responses=True).get_model("gpt-4")
resp_model = OpenAIProvider(use_responses=True).get_model(cai_model)
assert resp_model._client.api_key == "test_key" # type: ignore
def test_set_default_openai_api():
assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIResponsesModel), (
assert isinstance(OpenAIProvider().get_model(cai_model), OpenAIResponsesModel), (
"Default should be responses"
)
set_default_openai_api("chat_completions")
assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIChatCompletionsModel), (
assert isinstance(OpenAIProvider().get_model(cai_model), OpenAIChatCompletionsModel), (
"Should be chat completions model"
)
set_default_openai_api("responses")
assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIResponsesModel), (
assert isinstance(OpenAIProvider().get_model(cai_model), OpenAIResponsesModel), (
"Should be responses model"
)