queue_entities.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. from enum import Enum
  2. from typing import Any
  3. from core.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk
  4. from pydantic import BaseModel
  5. class QueueEvent(Enum):
  6. """
  7. QueueEvent enum
  8. """
  9. MESSAGE = "message"
  10. AGENT_MESSAGE = "agent_message"
  11. MESSAGE_REPLACE = "message-replace"
  12. MESSAGE_END = "message-end"
  13. RETRIEVER_RESOURCES = "retriever-resources"
  14. ANNOTATION_REPLY = "annotation-reply"
  15. AGENT_THOUGHT = "agent-thought"
  16. MESSAGE_FILE = "message-file"
  17. ERROR = "error"
  18. PING = "ping"
  19. STOP = "stop"
  20. class AppQueueEvent(BaseModel):
  21. """
  22. QueueEvent entity
  23. """
  24. event: QueueEvent
  25. class QueueMessageEvent(AppQueueEvent):
  26. """
  27. QueueMessageEvent entity
  28. """
  29. event = QueueEvent.MESSAGE
  30. chunk: LLMResultChunk
  31. class QueueAgentMessageEvent(AppQueueEvent):
  32. """
  33. QueueMessageEvent entity
  34. """
  35. event = QueueEvent.AGENT_MESSAGE
  36. chunk: LLMResultChunk
  37. class QueueMessageReplaceEvent(AppQueueEvent):
  38. """
  39. QueueMessageReplaceEvent entity
  40. """
  41. event = QueueEvent.MESSAGE_REPLACE
  42. text: str
  43. class QueueRetrieverResourcesEvent(AppQueueEvent):
  44. """
  45. QueueRetrieverResourcesEvent entity
  46. """
  47. event = QueueEvent.RETRIEVER_RESOURCES
  48. retriever_resources: list[dict]
  49. class AnnotationReplyEvent(AppQueueEvent):
  50. """
  51. AnnotationReplyEvent entity
  52. """
  53. event = QueueEvent.ANNOTATION_REPLY
  54. message_annotation_id: str
  55. class QueueMessageEndEvent(AppQueueEvent):
  56. """
  57. QueueMessageEndEvent entity
  58. """
  59. event = QueueEvent.MESSAGE_END
  60. llm_result: LLMResult
  61. class QueueAgentThoughtEvent(AppQueueEvent):
  62. """
  63. QueueAgentThoughtEvent entity
  64. """
  65. event = QueueEvent.AGENT_THOUGHT
  66. agent_thought_id: str
  67. class QueueMessageFileEvent(AppQueueEvent):
  68. """
  69. QueueAgentThoughtEvent entity
  70. """
  71. event = QueueEvent.MESSAGE_FILE
  72. message_file_id: str
  73. class QueueErrorEvent(AppQueueEvent):
  74. """
  75. QueueErrorEvent entity
  76. """
  77. event = QueueEvent.ERROR
  78. error: Any
  79. class QueuePingEvent(AppQueueEvent):
  80. """
  81. QueuePingEvent entity
  82. """
  83. event = QueueEvent.PING
  84. class QueueStopEvent(AppQueueEvent):
  85. """
  86. QueueStopEvent entity
  87. """
  88. class StopBy(Enum):
  89. """
  90. Stop by enum
  91. """
  92. USER_MANUAL = "user-manual"
  93. ANNOTATION_REPLY = "annotation-reply"
  94. OUTPUT_MODERATION = "output-moderation"
  95. event = QueueEvent.STOP
  96. stopped_by: StopBy
  97. class QueueMessage(BaseModel):
  98. """
  99. QueueMessage entity
  100. """
  101. task_id: str
  102. message_id: str
  103. conversation_id: str
  104. app_mode: str
  105. event: AppQueueEvent