Skip to content

Commit b921f16

Browse files
Rayrtfrwuyongyu
andauthored
bugfix of openai_api_server for fastchat.serve.vllm_worker (#2398)
Co-authored-by: wuyongyu <wuyongyu@atomecho.xyz>
1 parent 7dcdafe commit b921f16

File tree

1 file changed

+40
-14
lines changed

1 file changed

+40
-14
lines changed

fastchat/serve/openai_api_server.py

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)