| 
				
			 | 
			
			 | 
			@@ -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, |