|
@@ -27,24 +27,28 @@ class MessageToolkit(BaseToolkit):
|
|
"""Outputs a multimodal message to the user.
|
|
"""Outputs a multimodal message to the user.
|
|
Message schema:
|
|
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:
|
|
Args:
|
|
message (Dict[str, str]): The message to output.
|
|
message (Dict[str, str]): The message to output.
|
|
Returns:
|
|
Returns:
|
|
str: A confirmation message.
|
|
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}")
|
|
logger.info(f"Multimodal message to user: {message}")
|
|
return 'success'
|
|
return 'success'
|
|
|
|
|