|
17 | 17 | import anyio |
18 | 18 | from openai.types import CompletionUsage |
19 | 19 |
|
20 | | -from vendor.tau2.data_model.message import AssistantMessage, UserMessage |
21 | | -from vendor.tau2.user.user_simulator import UserSimulator |
22 | | - |
23 | 20 | from ...models import EvaluationRow, InputMetadata, Message, Status |
24 | 21 | from ...types import TerminationReason, Trajectory, NonSkippableException |
25 | 22 |
|
@@ -234,6 +231,10 @@ def extract_text_content(msg_dict): |
234 | 231 |
|
235 | 232 | # If user simulation is enabled, initial message is from the simulated user |
236 | 233 | if dataset_row.user_simulation and dataset_row.user_simulation.get("enabled", False): |
| 234 | + # Lazy import vendor.tau2 - only load when user simulation is actually used |
| 235 | + from vendor.tau2.data_model.message import AssistantMessage, UserMessage |
| 236 | + from vendor.tau2.user.user_simulator import UserSimulator |
| 237 | + |
237 | 238 | user_simulator = UserSimulator( |
238 | 239 | instructions=dataset_row.user_simulation.get("system_prompt"), |
239 | 240 | llm=dataset_row.user_simulation.get("llm", "gpt-4.1"), |
@@ -598,6 +599,9 @@ def _get_user_simulator_messages(self, conversation_history: List[Dict[str, Any] |
598 | 599 | """ |
599 | 600 | Filter conversation history for user simulator and convert to tau2-bench format. |
600 | 601 | """ |
| 602 | + # Lazy import vendor.tau2 types |
| 603 | + from vendor.tau2.data_model.message import AssistantMessage, UserMessage |
| 604 | + |
601 | 605 | tau2_messages = [] |
602 | 606 |
|
603 | 607 | for message in conversation_history: |
|
0 commit comments