- from flask_restful import fields
 - 
 - from fields.conversation_fields import message_file_fields
 - from libs.helper import TimestampField
 - 
 - feedback_fields = {"rating": fields.String}
 - 
 - retriever_resource_fields = {
 -     "id": fields.String,
 -     "message_id": fields.String,
 -     "position": fields.Integer,
 -     "dataset_id": fields.String,
 -     "dataset_name": fields.String,
 -     "document_id": fields.String,
 -     "document_name": fields.String,
 -     "data_source_type": fields.String,
 -     "segment_id": fields.String,
 -     "score": fields.Float,
 -     "hit_count": fields.Integer,
 -     "word_count": fields.Integer,
 -     "segment_position": fields.Integer,
 -     "index_node_hash": fields.String,
 -     "content": fields.String,
 -     "created_at": TimestampField,
 - }
 - 
 - feedback_fields = {"rating": fields.String}
 - 
 - agent_thought_fields = {
 -     "id": fields.String,
 -     "chain_id": fields.String,
 -     "message_id": fields.String,
 -     "position": fields.Integer,
 -     "thought": fields.String,
 -     "tool": fields.String,
 -     "tool_labels": fields.Raw,
 -     "tool_input": fields.String,
 -     "created_at": TimestampField,
 -     "observation": fields.String,
 -     "files": fields.List(fields.String),
 - }
 - 
 - retriever_resource_fields = {
 -     "id": fields.String,
 -     "message_id": fields.String,
 -     "position": fields.Integer,
 -     "dataset_id": fields.String,
 -     "dataset_name": fields.String,
 -     "document_id": fields.String,
 -     "document_name": fields.String,
 -     "data_source_type": fields.String,
 -     "segment_id": fields.String,
 -     "score": fields.Float,
 -     "hit_count": fields.Integer,
 -     "word_count": fields.Integer,
 -     "segment_position": fields.Integer,
 -     "index_node_hash": fields.String,
 -     "content": fields.String,
 -     "created_at": TimestampField,
 - }
 - 
 - message_fields = {
 -     "id": fields.String,
 -     "conversation_id": fields.String,
 -     "inputs": fields.Raw,
 -     "query": fields.String,
 -     "answer": fields.String(attribute="re_sign_file_url_answer"),
 -     "feedback": fields.Nested(feedback_fields, attribute="user_feedback", allow_null=True),
 -     "retriever_resources": fields.List(fields.Nested(retriever_resource_fields)),
 -     "created_at": TimestampField,
 -     "agent_thoughts": fields.List(fields.Nested(agent_thought_fields)),
 -     "message_files": fields.List(fields.Nested(message_file_fields), attribute="files"),
 -     "status": fields.String,
 -     "error": fields.String,
 - }
 - 
 - message_infinite_scroll_pagination_fields = {
 -     "limit": fields.Integer,
 -     "has_more": fields.Boolean,
 -     "data": fields.List(fields.Nested(message_fields)),
 - }
 
 
  |