Prechádzať zdrojové kódy

Update message_toolit: support link and minigram

StrayWarrior 1 deň pred
rodič
commit
affc16a978
1 zmenil súbory, kde vykonal 15 pridanie a 11 odobranie
  1. 15 11
      pqai_agent/toolkit/message_toolkit.py

+ 15 - 11
pqai_agent/toolkit/message_toolkit.py

@@ -27,24 +27,28 @@ class MessageToolkit(BaseToolkit):
         """Outputs a multimodal message to the user.
         Message schema:
         {
-            "type": "text|image|gif|video|mini_program",
-            "content": "message content",
-            "title": "only needed if type is video or mini_program",
-            "cover_image": "only needed if type is mini_program",
+            "type": "text|image|gif|video|mini_program|link",
+            "content": "text message content or url of the media",
+            "title": "only needed if type in: video, link, mini_program",
+            "cover_url": "cover image url, only needed if type in: mini_program",
+            "desc": "description, optional if type in: link"
         }
-        if message type is image, gif, video or mini_program, the content should be a URL.
+        if message type is image, gif, video, link or mini_program, the content should be a URL.
 
         Args:
             message (Dict[str, str]): The message to output.
         Returns:
             str: A confirmation message.
         """
-        if message["type"] not in ["text", "image", "gif", "video", "mini_program"]:
-            return f"Invalid message type: {message['type']}"
-        if message["type"] in ("video", "mini_program") and "title" not in message:
-            return "Title is required for video or mini_program messages."
-        if message["type"] == "mini_program" and "cover_image" not in message:
-            return "Cover image is required for mini_program messages."
+        msg_type = message.get("type", "")
+        if msg_type not in ["text", "image", "gif", "video", "mini_program", "link"]:
+            return f"Invalid message type: {msg_type}"
+        if msg_type in ("video", "mini_program", "link") and "title" not in message:
+            return f"Title is required for [{msg_type}] messages."
+        if msg_type in ("mini_program", ) and "cover_url" not in message:
+            return f"Cover image URL is required for [{msg_type}] messages."
+        # if msg_type in ("link", ) and "desc" not in message:
+        #     return f"Description is required for [link] messages."
         logger.info(f"Multimodal message to user: {message}")
         return 'success'