mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-20 03:57:30 +08:00
38 lines
1.1 KiB
Python
38 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, **kwargs):
|
|
"""发送工具执行消息"""
|
|
try:
|
|
self._message_helper.put(
|
|
message=message,
|
|
role="system"
|
|
)
|
|
except Exception as e:
|
|
logger.error(f"发送工具消息失败: {e}")
|