@@ -45,6 +45,7 @@ def responses_to_camel_response(
4545
4646 audio_bytes : Optional [bytes ] = None
4747 audio_transcript : Optional [str ] = None
48+ logprobs_list : List [Any ] = []
4849
4950 text = getattr (resp , "output_text" , None )
5051 parts : List [str ] = []
@@ -64,6 +65,13 @@ def responses_to_camel_response(
6465 val = chunk .get ("text" ) or chunk .get ("output_text" )
6566 if val :
6667 parts .append (str (val ))
68+ lp = (
69+ chunk .get ("logprobs" )
70+ if isinstance (chunk , dict )
71+ else getattr (chunk , "logprobs" , None )
72+ )
73+ if lp is not None :
74+ logprobs_list .append (lp )
6775 elif chunk_type == "output_audio" :
6876 audio = chunk .get ("audio" )
6977 if isinstance (audio , dict ):
@@ -184,6 +192,7 @@ def responses_to_camel_response(
184192 total_tokens = usage_dict .get ("total_tokens" ),
185193 raw = usage_raw or None ,
186194 )
195+ logprobs : Optional [List [Any ]] = logprobs_list if logprobs_list else None
187196
188197 return CamelModelResponse (
189198 id = getattr (resp , "id" , "" ),
@@ -193,6 +202,7 @@ def responses_to_camel_response(
193202 tool_call_requests = tool_call_requests if tool_call_requests else None ,
194203 finish_reasons = ["stop" ],
195204 usage = usage ,
205+ logprobs = logprobs ,
196206 raw = resp ,
197207 )
198208
0 commit comments