33import json
44from collections .abc import AsyncIterator
55from dataclasses import dataclass
6- from typing import TYPE_CHECKING , Any , Literal , overload
6+ from typing import TYPE_CHECKING , Any , Literal , cast , overload
77
88from openai import NOT_GIVEN , APIStatusError , AsyncOpenAI , AsyncStream , NotGiven
99from openai .types import ChatModel
@@ -246,9 +246,12 @@ async def _fetch_response(
246246 converted_tools = Converter .convert_tools (tools , handoffs )
247247 response_format = Converter .get_response_format (output_schema )
248248
249- include : list [ ResponseIncludable ] = converted_tools .includes
249+ include_set : set [ str ] = set ( converted_tools .includes )
250250 if model_settings .response_include is not None :
251- include = list ({* include , * model_settings .response_include })
251+ include_set .update (model_settings .response_include )
252+ if model_settings .top_logprobs is not None :
253+ include_set .add ("message.output_text.logprobs" )
254+ include = cast (list [ResponseIncludable ], list (include_set ))
252255
253256 if _debug .DONT_LOG_MODEL_DATA :
254257 logger .debug ("Calling LLM" )
@@ -263,6 +266,10 @@ async def _fetch_response(
263266 f"Previous response id: { previous_response_id } \n "
264267 )
265268
269+ extra_args = dict (model_settings .extra_args or {})
270+ if model_settings .top_logprobs is not None :
271+ extra_args ["top_logprobs" ] = model_settings .top_logprobs
272+
266273 return await self ._client .responses .create (
267274 previous_response_id = self ._non_null_or_not_given (previous_response_id ),
268275 instructions = self ._non_null_or_not_given (system_instructions ),
@@ -285,7 +292,7 @@ async def _fetch_response(
285292 store = self ._non_null_or_not_given (model_settings .store ),
286293 reasoning = self ._non_null_or_not_given (model_settings .reasoning ),
287294 metadata = self ._non_null_or_not_given (model_settings .metadata ),
288- ** ( model_settings . extra_args or {}) ,
295+ ** extra_args ,
289296 )
290297
291298 def _get_client (self ) -> AsyncOpenAI :
0 commit comments