From 11e95d2a61ba49e37383d4ee7424c1a37797af89 Mon Sep 17 00:00:00 2001 From: liguochuan <37566390+liguochuan00@users.noreply.github.com> Date: Wed, 2 Apr 2025 12:44:29 +0800 Subject: [PATCH] Fix (api): Fix the processing logic of the retriever_resources field. (#17304) Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- api/controllers/service_api/app/message.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/api/controllers/service_api/app/message.py b/api/controllers/service_api/app/message.py index 749099053d..38917bf345 100644 --- a/api/controllers/service_api/app/message.py +++ b/api/controllers/service_api/app/message.py @@ -1,3 +1,4 @@ +import json import logging from flask_restful import Resource, fields, marshal_with, reqparse # type: ignore @@ -10,7 +11,7 @@ from controllers.service_api.app.error import NotChatAppError from controllers.service_api.wraps import FetchUserArg, WhereisUserArg, validate_app_token from core.app.entities.app_invoke_entities import InvokeFrom from fields.conversation_fields import message_file_fields -from fields.message_fields import agent_thought_fields, feedback_fields, retriever_resource_fields +from fields.message_fields import agent_thought_fields, feedback_fields from fields.raws import FilesContainedField from libs.helper import TimestampField, uuid_value from models.model import App, AppMode, EndUser @@ -19,6 +20,14 @@ from services.message_service import MessageService class MessageListApi(Resource): + def get_retriever_resources(self): + try: + if self.message_metadata: + return json.loads(self.message_metadata).get("retriever_resources", []) + return [] + except (json.JSONDecodeError, TypeError): + return [] + message_fields = { "id": fields.String, "conversation_id": fields.String, @@ -28,7 +37,7 @@ class MessageListApi(Resource): "answer": fields.String(attribute="re_sign_file_url_answer"), "message_files": fields.List(fields.Nested(message_file_fields)), "feedback": fields.Nested(feedback_fields, attribute="user_feedback", allow_null=True), - "retriever_resources": fields.List(fields.Nested(retriever_resource_fields)), + "retriever_resources": get_retriever_resources, "created_at": TimestampField, "agent_thoughts": fields.List(fields.Nested(agent_thought_fields)), "status": fields.String,