From d2d2ce535d8fd258505c0ddaa63cf035a236e646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mayoral=20Vilches?= Date: Fri, 28 Mar 2025 08:35:11 +0100 Subject: [PATCH] Address error while streaming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Error occurred during streaming: 1 validation error for ResponseUsage input_tokens_details Input should be a valid dictionary or instance of InputTokensDetails [type=model_type, input_value=InputTokensDetails(prompt...ens=17, cached_tokens=0), input_type=InputTokensDetails] For further information visit https://errors.pydantic.dev/2.10/v/model_type] Location: Traceback (most recent call last): File /Users/alias/Alias/research/openai-agents-python/src/cai/cli.py, line 209, in process_streamed_response async for event in result.stream_events(): File /Users/alias/Alias/research/openai-agents-python/src/cai/sdk/agents/result.py, line 186, in stream_events raise self._stored_exception File /Users/alias/Alias/research/openai-agents-python/src/cai/sdk/agents/run.py, line 539, in _run_streamed_impl turn_result = await cls._run_single_turn_streamed( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File /Users/alias/Alias/research/openai-agents-python/src/cai/sdk/agents/run.py, line 641, in _run_single_turn_streamed async for event in model.stream_response( File /Users/alias/Alias/research/openai-agents-python/src/cai/sdk/agents/models/openai_chatcompletions.py, line 421, in stream_response ResponseUsage( File /Users/alias/Alias/research/openai-agents-python/env/lib/python3.12/site-packages/pydantic/main.py, line 214, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for ResponseUsage input_tokens_details Input should be a valid dictionary or instance of InputTokensDetails [type=model_type, input_value=InputTokensDetails(prompt...ens=17, cached_tokens=0), input_type=InputTokensDetails] For further information visit https://errors.pydantic.dev/2.10/v/model_type Signed-off-by: VĂ­ctor Mayoral Vilches --- src/cai/sdk/agents/models/openai_chatcompletions.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/cai/sdk/agents/models/openai_chatcompletions.py b/src/cai/sdk/agents/models/openai_chatcompletions.py index c37ad1db..3bece718 100644 --- a/src/cai/sdk/agents/models/openai_chatcompletions.py +++ b/src/cai/sdk/agents/models/openai_chatcompletions.py @@ -61,6 +61,8 @@ from openai._models import BaseModel class InputTokensDetails(BaseModel): prompt_tokens: int """The number of prompt tokens.""" + cached_tokens: int = 0 + """The number of cached tokens.""" from .. import _debug from ..agent_output import AgentOutputSchema @@ -426,11 +428,12 @@ class OpenAIChatCompletionsModel(Model): and usage.completion_tokens_details.reasoning_tokens else 0 ), - input_tokens_details=InputTokensDetails( - cached_tokens=usage.prompt_tokens_details.cached_tokens + input_tokens_details={ + "prompt_tokens": usage.prompt_tokens if usage.prompt_tokens else 0, + "cached_tokens": usage.prompt_tokens_details.cached_tokens if usage.prompt_tokens_details and usage.prompt_tokens_details.cached_tokens else 0 - ), + }, ) if usage else None