@@ -349,11 +349,31 @@ def transform_response(
349
349
350
350
## RESPONSE OBJECT
351
351
model_response .choices [0 ].finish_reason = "stop"
352
+ response_json_message = response_json .get ("message" )
353
+ if response_json_message is not None :
354
+ if "thinking" in response_json_message :
355
+ # remap 'thinking' to 'reasoning_content'
356
+ response_json_message ["reasoning_content" ] = response_json_message [
357
+ "thinking"
358
+ ]
359
+ del response_json_message ["thinking" ]
360
+ elif response_json_message .get ("content" ) is not None :
361
+ # parse reasoning content from content
362
+ from litellm .litellm_core_utils .llm_response_utils .convert_dict_to_response import (
363
+ _parse_content_for_reasoning ,
364
+ )
365
+
366
+ reasoning_content , content = _parse_content_for_reasoning (
367
+ response_json_message ["content" ]
368
+ )
369
+ response_json_message ["reasoning_content" ] = reasoning_content
370
+ response_json_message ["content" ] = content
371
+
352
372
if (
353
373
request_data .get ("format" , "" ) == "json"
354
374
and litellm_params .get ("function_name" ) is not None
355
375
):
356
- function_call = json .loads (response_json [ "message" ] ["content" ])
376
+ function_call = json .loads (response_json_message ["content" ])
357
377
message = litellm .Message (
358
378
content = None ,
359
379
tool_calls = [
@@ -370,11 +390,13 @@ def transform_response(
370
390
"type" : "function" ,
371
391
}
372
392
],
393
+ reasoning_content = response_json_message .get ("reasoning_content" ),
373
394
)
374
395
model_response .choices [0 ].message = message # type: ignore
375
396
model_response .choices [0 ].finish_reason = "tool_calls"
376
397
else :
377
- _message = litellm .Message (** response_json ["message" ])
398
+
399
+ _message = litellm .Message (** response_json_message )
378
400
model_response .choices [0 ].message = _message # type: ignore
379
401
model_response .created = int (time .time ())
380
402
model_response .model = "ollama_chat/" + model
0 commit comments