fix(workflow): fix incorrect file message display in non-streaming calls

This commit is contained in:
Eternity
2026-03-19 12:04:48 +08:00
parent 33d522b387
commit 83fcabadae

View File

@@ -636,30 +636,33 @@ class WorkflowService:
final_messages = result.get("messages", [])[init_message_length:] final_messages = result.get("messages", [])[init_message_length:]
human_message = "" human_message = ""
assistant_message = "" assistant_message = ""
human_meta = {
"files": []
}
for message in final_messages: for message in final_messages:
if message["role"] == "user": if message["role"] == "user":
if isinstance(message["content"], str): if isinstance(message["content"], str):
human_message += message["content"] human_message += message["content"]
elif isinstance(message["content"], list): elif isinstance(message["content"], list):
for file in message["content"]: for file in message["content"]:
if file.get("type") == FileType.IMAGE: human_meta["files"].append({
human_message += f"![image]({file.get('url', '')})" "type": file.get("type"),
else: "url": file.get("url")
human_message += f"[{file.get('type')}]({file.get('url', '')})" })
if message["role"] == "assistant": if message["role"] == "assistant":
assistant_message = message["content"] assistant_message = message["content"]
self.conversation_service.add_message( self.conversation_service.add_message(
conversation_id=conversation_id_uuid, conversation_id=conversation_id_uuid,
role="user", role="user",
content=human_message, content=human_message,
meta_data=None meta_data=human_meta
) )
self.conversation_service.add_message( self.conversation_service.add_message(
message_id=message_id, message_id=message_id,
conversation_id=conversation_id_uuid, conversation_id=conversation_id_uuid,
role="assistant", role="assistant",
content=assistant_message, content=assistant_message,
meta_data={"usage": token_usage} meta_data={"usage": token_usage, "audio_url": None}
) )
self.update_execution_status( self.update_execution_status(
execution.execution_id, execution.execution_id,