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