@@ -399,15 +399,28 @@ async def create_chat_completion(request: ChatCompletionRequest):
399399 for i , content in enumerate (all_tasks ):
400400 if content ["error_code" ] != 0 :
401401 return create_error_response (content ["error_code" ], content ["text" ])
402- choices .append (
403- ChatCompletionResponseChoice (
404- index = i ,
405- message = ChatMessage (role = "assistant" , content = content ["text" ]),
406- finish_reason = content .get ("finish_reason" , "stop" ),
402+ if isinstance (content ["text" ], list ):
403+ for t in content ["text" ]:
404+ choices .append (
405+ ChatCompletionResponseChoice (
406+ index = i ,
407+ message = ChatMessage (role = "assistant" , content = t ),
408+ finish_reason = content .get ("finish_reason" , "stop" ),
409+ )
410+ )
411+ else :
412+ choices .append (
413+ ChatCompletionResponseChoice (
414+ index = i ,
415+ message = ChatMessage (role = "assistant" , content = content ["text" ]),
416+ finish_reason = content .get ("finish_reason" , "stop" ),
417+ )
407418 )
408- )
409419 if "usage" in content :
410- task_usage = UsageInfo .parse_obj (content ["usage" ])
420+ if isinstance (content ["usage" ], list ):
421+ task_usage = UsageInfo .parse_obj (content ["usage" ][0 ])
422+ else :
423+ task_usage = UsageInfo .parse_obj (content ["usage" ])
411424 for usage_key , usage_value in task_usage .dict ().items ():
412425 setattr (usage , usage_key , getattr (usage , usage_key ) + usage_value )
413426
@@ -775,14 +788,27 @@ async def create_chat_completion(request: APIChatCompletionRequest):
775788 for i , content in enumerate (all_tasks ):
776789 if content ["error_code" ] != 0 :
777790 return create_error_response (content ["error_code" ], content ["text" ])
778- choices .append (
779- ChatCompletionResponseChoice (
780- index = i ,
781- message = ChatMessage (role = "assistant" , content = content ["text" ]),
782- finish_reason = content .get ("finish_reason" , "stop" ),
791+ if isinstance (content ["text" ], list ):
792+ for t in content ["text" ]:
793+ choices .append (
794+ ChatCompletionResponseChoice (
795+ index = i ,
796+ message = ChatMessage (role = "assistant" , content = t ),
797+ finish_reason = content .get ("finish_reason" , "stop" ),
798+ )
799+ )
800+ else :
801+ choices .append (
802+ ChatCompletionResponseChoice (
803+ index = i ,
804+ message = ChatMessage (role = "assistant" , content = content ["text" ]),
805+ finish_reason = content .get ("finish_reason" , "stop" ),
806+ )
783807 )
784- )
785- task_usage = UsageInfo .parse_obj (content ["usage" ])
808+ if isinstance (content ["usage" ], list ):
809+ task_usage = UsageInfo .parse_obj (content ["usage" ][0 ])
810+ else :
811+ task_usage = UsageInfo .parse_obj (content ["usage" ])
786812 for usage_key , usage_value in task_usage .dict ().items ():
787813 setattr (usage , usage_key , getattr (usage , usage_key ) + usage_value )
788814
0 commit comments