message_fields.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from flask_restful import fields # type: ignore
  2. from fields.conversation_fields import message_file_fields
  3. from libs.helper import TimestampField
  4. from .raws import FilesContainedField
  5. feedback_fields = {"rating": fields.String}
  6. agent_thought_fields = {
  7. "id": fields.String,
  8. "chain_id": fields.String,
  9. "message_id": fields.String,
  10. "position": fields.Integer,
  11. "thought": fields.String,
  12. "tool": fields.String,
  13. "tool_labels": fields.Raw,
  14. "tool_input": fields.String,
  15. "created_at": TimestampField,
  16. "observation": fields.String,
  17. "files": fields.List(fields.String),
  18. }
  19. retriever_resource_fields = {
  20. "id": fields.String,
  21. "message_id": fields.String,
  22. "position": fields.Integer,
  23. "dataset_id": fields.String,
  24. "dataset_name": fields.String,
  25. "document_id": fields.String,
  26. "document_name": fields.String,
  27. "data_source_type": fields.String,
  28. "segment_id": fields.String,
  29. "score": fields.Float,
  30. "hit_count": fields.Integer,
  31. "word_count": fields.Integer,
  32. "segment_position": fields.Integer,
  33. "index_node_hash": fields.String,
  34. "content": fields.String,
  35. "created_at": TimestampField,
  36. }
  37. message_fields = {
  38. "id": fields.String,
  39. "conversation_id": fields.String,
  40. "parent_message_id": fields.String,
  41. "inputs": FilesContainedField,
  42. "query": fields.String,
  43. "answer": fields.String(attribute="re_sign_file_url_answer"),
  44. "feedback": fields.Nested(feedback_fields, attribute="user_feedback", allow_null=True),
  45. "retriever_resources": fields.List(fields.Nested(retriever_resource_fields)),
  46. "created_at": TimestampField,
  47. "agent_thoughts": fields.List(fields.Nested(agent_thought_fields)),
  48. "message_files": fields.List(fields.Nested(message_file_fields)),
  49. "status": fields.String,
  50. "error": fields.String,
  51. }
  52. message_infinite_scroll_pagination_fields = {
  53. "limit": fields.Integer,
  54. "has_more": fields.Boolean,
  55. "data": fields.List(fields.Nested(message_fields)),
  56. }