您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

message_fields.py 2.3KB

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