Skip to content

Commit 54b5fac

Browse files
committed
Merge remote-tracking branch 'origin/main' into openai/heartbeat
2 parents 0a9f03a + f815886 commit 54b5fac

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

tests/contrib/openai_agents/test_openai.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
ItemHelpers,
1818
MessageOutputItem,
1919
Model,
20+
ModelProvider,
2021
ModelResponse,
2122
ModelSettings,
2223
ModelTracing,
24+
OpenAIChatCompletionsModel,
2325
OpenAIResponsesModel,
2426
OutputGuardrailTripwireTriggered,
2527
RunContextWrapper,
@@ -1844,6 +1846,40 @@ async def test_exception_handling(client: Client):
18441846
await assert_status_retry_behavior(404, client, should_retry=False)
18451847

18461848

1849+
class CustomModelProvider(ModelProvider):
1850+
def get_model(self, model_name: Optional[str]) -> Model:
1851+
client = AsyncOpenAI(base_url="https://api.openai.com/v1")
1852+
return OpenAIChatCompletionsModel(model="gpt-4o", openai_client=client)
1853+
1854+
1855+
async def test_chat_completions_model(client: Client):
1856+
if not os.environ.get("OPENAI_API_KEY"):
1857+
pytest.skip("No openai API key")
1858+
1859+
new_config = client.config()
1860+
new_config["plugins"] = [
1861+
openai_agents.OpenAIAgentsPlugin(
1862+
model_params=ModelActivityParameters(
1863+
start_to_close_timeout=timedelta(seconds=30)
1864+
),
1865+
model_provider=CustomModelProvider(),
1866+
)
1867+
]
1868+
client = Client(**new_config)
1869+
1870+
async with new_worker(
1871+
client,
1872+
WorkflowToolWorkflow,
1873+
) as worker:
1874+
workflow_handle = await client.start_workflow(
1875+
WorkflowToolWorkflow.run,
1876+
id=f"workflow-tool-{uuid.uuid4()}",
1877+
task_queue=worker.task_queue,
1878+
execution_timeout=timedelta(seconds=10),
1879+
)
1880+
await workflow_handle.result()
1881+
1882+
18471883
class WaitModel(Model):
18481884
async def get_response(
18491885
self,

0 commit comments

Comments
 (0)