Files
MoviePilot/app/agent/tools/base.py
jxxghp 055117d83d refactor: enhance tool message handling and improve error logging
- Updated _send_tool_message to accept a title parameter for better message context.
- Modified various tool implementations to utilize the new title parameter for clearer messaging.
- Improved error logging across multiple tools to include exception details for better debugging.
2025-10-31 09:16:53 +08:00

39 lines
1.1 KiB
Python

"""MoviePilot工具基类"""
from langchain.tools import BaseTool
from pydantic import PrivateAttr
from app.helper.message import MessageHelper
from app.log import logger
class MoviePilotTool(BaseTool):
"""MoviePilot专用工具基类"""
_session_id: str = PrivateAttr()
_user_id: str = PrivateAttr()
_message_helper: MessageHelper = PrivateAttr()
def __init__(self, session_id: str, user_id: str, message_helper: MessageHelper = None, **kwargs):
super().__init__(**kwargs)
self._session_id = session_id
self._user_id = user_id
self._message_helper = message_helper or MessageHelper()
def _run(self, **kwargs) -> str:
raise NotImplementedError
async def _arun(self, **kwargs) -> str:
raise NotImplementedError
def _send_tool_message(self, message: str, title: str = None, **kwargs):
"""发送工具执行消息"""
try:
self._message_helper.put(
message=message,
role="system",
title=title or "工具执行"
)
except Exception as e:
logger.error(f"发送工具消息失败: {e}")