Procházet zdrojové kódy

Update mq_message: support miniprogram

StrayWarrior před 1 měsícem
rodič
revize
c24d3ed3a1
2 změnil soubory, kde provedl 18 přidání a 5 odebrání
  1. 8 2
      pqai_agent/agent_service.py
  2. 10 3
      pqai_agent/mq_message.py

+ 8 - 2
pqai_agent/agent_service.py

@@ -365,10 +365,16 @@ class AgentService:
             return
         current_ts = int(time.time() * 1000)
         self.send_rate_limiter.wait_for_sending(staff_id, response)
+        # FIXME: 小程序相关的字段
         self.send_queue.produce(
-            MqMessage.build(message_type, MessageChannel.CORP_WECHAT,
-                            staff_id, user_id, response["content"], current_ts)
+            MqMessage(type=message_type, channel=MessageChannel.CORP_WECHAT,
+                      sender=staff_id, receiver=user_id, content=response["content"], sendTime=current_ts,
+                      desc=response.get("desc"), title=response.get("title"),
+                      appIconUrl=None, pagePath=response.get("content"),
+                      coverImage=response.get("cover_url"), miniProgramOriginId='FIXME',
+                      miniProgramAppId=None)
         )
+        print(self.send_queue.consume())
 
     def _route_to_human_intervention(self, user_id: str, origin_message: MqMessage):
         """路由到人工干预"""

+ 10 - 3
pqai_agent/mq_message.py

@@ -107,6 +107,14 @@ class MqMessage(BaseModel):
      senderUnionId: Optional[str] = None
      receiver: str
      content: Optional[str] = None
+     desc: Optional[str] = None
+     title: Optional[str] = None
+     appIconUrl: Optional[str] = None
+     pagePath: Optional[str] = None
+     coverImage: Optional[str] = None
+     miniProgramOriginId: Optional[str] = None
+     miniProgramAppId: Optional[str] = None
+
      # 由于需要和其它语言如Java进行序列化和反序列化交互,因此使用camelCase命名法
      sendTime: int
      refMsgId: Optional[int] = None
@@ -127,9 +135,8 @@ class MqMessage(BaseModel):
          )
 
      def to_json(self):
-         return self.model_dump_json(include={
-             "msgId", "type", "channel", "sender", "senderUnionId",
-             "receiver", "content", "sendTime", "refMsgId"
+         return self.model_dump_json(exclude={
+             "_rmq_message",
          })
 
      @staticmethod