22from pydantic import BaseModel
33from pydantic_ai import Agent
44from pydantic_ai .models .openai import OpenAIChatModel , OpenAIChatModelSettings
5+ from pydantic_ai .providers .openai import OpenAIProvider
56import pytest
67
78from eval_protocol .models import EvaluateResult , EvaluationRow
2425
2526def agent_factory (config : RolloutProcessorConfig ) -> Agent :
2627 model_name = config .completion_params ["model" ]
27- provider = config .completion_params .get ("provider" )
28+ provider_param = config .completion_params .get ("provider" )
2829 reasoning = config .completion_params .get ("reasoning" )
29- settings = OpenAIChatModelSettings (openai_reasoning_effort = reasoning )
30- model = OpenAIChatModel (model_name , provider = provider or "openai" , settings = settings )
30+ # gpt-4o-mini does not support reasoning
31+ if model_name == "gpt-4o-mini" :
32+ settings = OpenAIChatModelSettings ()
33+ else :
34+ settings = OpenAIChatModelSettings (openai_reasoning_effort = reasoning )
35+ base_url = config .completion_params .get ("base_url" )
36+ api_key = config .completion_params .get ("api_key" ) or os .getenv ("OPENAI_API_KEY" ) or "dummy"
37+ if base_url or provider_param == "ollama" :
38+ provider = OpenAIProvider (
39+ api_key = api_key ,
40+ base_url = base_url or os .getenv ("OLLAMA_OPENAI_BASE_URL" , "http://localhost:11434/v1" ),
41+ )
42+ else :
43+ provider = provider_param or "openai"
44+ model = OpenAIChatModel (model_name , provider = provider , settings = settings )
3145 return setup_agent (model )
3246
3347
@@ -51,7 +65,11 @@ def agent_factory(config: RolloutProcessorConfig) -> Agent:
5165 # "model": "accounts/fireworks/models/kimi-k2-instruct-0905",
5266 # "provider": "fireworks",
5367 # },
54- {"model" : "gpt-5" },
68+ # {"model": "gpt-4o-mini"},
69+ {"model" : "gpt-5-nano-2025-08-07" },
70+ # {"model": "qwen3:4b", "provider": "ollama", "base_url": os.getenv("OLLAMA_OPENAI_BASE_URL", "http://localhost:11434/v1")},
71+ # {"model": "qwen3:8b", "provider": "ollama", "base_url": os.getenv("OLLAMA_OPENAI_BASE_URL", "http://localhost:11434/v1")},
72+ # {"model": "granite4:micro", "provider": "ollama", "base_url": os.getenv("OLLAMA_OPENAI_BASE_URL", "http://localhost:11434/v1")},
5573 # {"model": "gpt-5", "reasoning": "high"},
5674 ],
5775 rollout_processor = PydanticAgentRolloutProcessor (agent_factory ),
0 commit comments