Merge pull request #612 from SuanmoSuanyangTechnology/feature/message-file

feat(workflow): move conversation file content into metadata
This commit is contained in:
Mark
2026-03-19 11:12:28 +08:00
committed by GitHub
6 changed files with 20 additions and 14 deletions

View File

@@ -623,6 +623,7 @@ class AppChatService:
app_id: uuid.UUID,
release_id: uuid.UUID,
workspace_id: uuid.UUID,
files: Optional[List[FileInput]] = None,
user_id: Optional[str] = None,
variables: Optional[Dict[str, Any]] = None,
web_search: bool = False,
@@ -636,7 +637,8 @@ class AppChatService:
variables=variables,
conversation_id=str(conversation_id),
stream=True,
user_id=user_id
user_id=user_id,
files=files
)
return await self.workflow_service.run(
app_id=app_id,

View File

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