message_notifier.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from typing import List, Dict
  2. from pqai_agent.logging_service import logger
  3. from pqai_agent.toolkit.base import BaseToolkit
  4. from pqai_agent.toolkit.function_tool import FunctionTool
  5. class MessageNotifier(BaseToolkit):
  6. def __init__(self):
  7. super().__init__()
  8. def message_notify_user(self, message: str) -> str:
  9. """Sends a message to the user.
  10. Args:
  11. message (str): The message to send.
  12. Returns:
  13. str: A confirmation message.
  14. """
  15. logger.info(f"Message to user: {message}")
  16. return 'success'
  17. def output_multimodal_message(self, message: Dict[str, str]) -> str:
  18. """Outputs a multimodal message to the user.
  19. Message schema:
  20. {
  21. "type": "text|image|gif|video|mini_program",
  22. "content": "message content",
  23. "title": "only needed if type is video or mini_program",
  24. "cover_image": "only needed if type is mini_program",
  25. }
  26. if message type is image, gif, video or mini_program, the content should be a URL.
  27. Args:
  28. message (Dict[str, str]): The message to output.
  29. Returns:
  30. str: A confirmation message.
  31. """
  32. logger.info(f"Multimodal message to user: {message}")
  33. return 'success'
  34. def get_tools(self):
  35. return [FunctionTool(self.message_notify_user),
  36. FunctionTool(self.output_multimodal_message)]