| 123456789101112131415161718192021222324252627282930313233343536 |
- from __future__ import annotations
- from typing import Any, Awaitable, Callable, Dict
- from app.core.config import GlobalConfigSettings
- from app.core.database import DatabaseManager
- from app.core.observability import LogService
- from ._mapper import LongArticlesMcpMapper
- from ._utils import LongArticlesMcpUtils
- class LongArticlesMcpHandlers:
- """MCP 处理层:每个 task_name 对应一个同名 handler 方法。"""
- def __init__(self, pool: DatabaseManager, log_service: LogService, config: GlobalConfigSettings):
- self.log_service = log_service
- self.config = config
- self.tools = LongArticlesMcpUtils()
- self.mapper = LongArticlesMcpMapper(pool=pool)
- def get_handler(self, task_name: str) -> Callable[[Dict[str, Any]], Awaitable[Dict[str, Any]]]:
- """根据 task_name 查找同名方法,未找到时抛出 KeyError。"""
- method = getattr(self, task_name, None)
- if method is None or not callable(method):
- raise KeyError(task_name)
- return method
- # ---- 下面是各 task_name 对应的 handler 方法,统一签名 ----
- async def get_decode_response(self, params: Dict[str, Any]) -> Dict[str, Any]:
- """get_decode_response 处理逻辑(待实现)。"""
- pass
- __all__ = ["LongArticlesMcpHandlers"]
|