| 123456789101112131415161718192021222324252627282930313233343536 |
- """智能体基类 —— LLM 初始化、配置读取与通用工具方法."""
- from __future__ import annotations
- import logging
- from typing import Any
- from ..services.llm.llm_service import get_llm
- from ..settings import get_settings
- logger = logging.getLogger(__name__)
- class BaseAgent:
- def __init__(self) -> None:
- self._settings = get_settings()
- self.llm = self._init_llm()
- def _init_llm(self) -> Any:
- try:
- return get_llm()
- except Exception as e:
- logger.exception("[%s] LLM 初始化失败", type(self).__name__)
- raise RuntimeError(f"{type(self).__name__}_llm_init_failed") from e
- def _cfg(self, name: str, default: Any = None) -> Any:
- return getattr(self._settings, name, default)
- def _cfg_int(self, name: str, default: int = 0) -> int:
- try:
- return int(self._cfg(name, default))
- except (TypeError, ValueError):
- return int(default)
- @staticmethod
- def _clip(value: Any, limit: int) -> str:
- return str(value or "").strip()[:limit]
|