|
1 | 1 | """Initialize Temporal OpenAI Agents overrides.""" |
2 | 2 |
|
3 | 3 | from contextlib import contextmanager |
| 4 | +from datetime import timedelta |
4 | 5 | from typing import AsyncIterator, Callable, Optional, Union |
5 | 6 |
|
6 | 7 | from agents import ( |
|
39 | 40 |
|
40 | 41 | @contextmanager |
41 | 42 | def set_open_ai_agent_temporal_overrides( |
42 | | - model_params: Optional[ModelActivityParameters] = None, |
| 43 | + model_params: ModelActivityParameters, |
43 | 44 | auto_close_tracing_in_workflows: bool = False, |
44 | 45 | ): |
45 | 46 | """Configure Temporal-specific overrides for OpenAI agents. |
@@ -69,14 +70,6 @@ def set_open_ai_agent_temporal_overrides( |
69 | 70 | if model_params is None: |
70 | 71 | model_params = ModelActivityParameters() |
71 | 72 |
|
72 | | - if ( |
73 | | - not model_params.start_to_close_timeout |
74 | | - and not model_params.schedule_to_close_timeout |
75 | | - ): |
76 | | - raise ValueError( |
77 | | - "Activity must have start_to_close_timeout or schedule_to_close_timeout" |
78 | | - ) |
79 | | - |
80 | 73 | previous_runner = get_default_agent_runner() |
81 | 74 | previous_trace_provider = get_trace_provider() |
82 | 75 | provider = TemporalTraceProvider( |
@@ -208,6 +201,22 @@ def __init__( |
208 | 201 | model_provider: Optional model provider for custom model implementations. |
209 | 202 | Useful for testing or custom model integrations. |
210 | 203 | """ |
| 204 | + if model_params is None: |
| 205 | + model_params = ModelActivityParameters() |
| 206 | + |
| 207 | + # For the default provider, we provide a default start_to_close_timeout of 60 seconds. |
| 208 | + # Other providers will need to define their own. |
| 209 | + if ( |
| 210 | + model_params.start_to_close_timeout is None |
| 211 | + and model_params.schedule_to_close_timeout is None |
| 212 | + ): |
| 213 | + if model_provider is None: |
| 214 | + model_params.start_to_close_timeout = timedelta(seconds=60) |
| 215 | + else: |
| 216 | + raise ValueError( |
| 217 | + "When configuring a custom provider, the model activity must have start_to_close_timeout or schedule_to_close_timeout" |
| 218 | + ) |
| 219 | + |
211 | 220 | self._model_params = model_params |
212 | 221 | self._model_provider = model_provider |
213 | 222 |
|
|
0 commit comments