Coverage for providers / __init__.py: 94%
16 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-29 02:55 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-29 02:55 +0800
1from qrclaw.providers.base import LLMProvider
2from qrclaw.config import LLM_PROVIDER
3from qrclaw.logger import get_logger
5logger = get_logger("qrclaw.providers")
7_REGISTRY = {
8 "openai": "qrclaw.providers.openai.OpenAIProvider",
9 "vertex": "qrclaw.providers.vertex.VertexProvider",
10}
13def _load_provider() -> LLMProvider:
14 path = _REGISTRY.get(LLM_PROVIDER)
15 if not path:
16 raise ValueError(f"未知的 LLM 渠道: {LLM_PROVIDER},可选: {list(_REGISTRY.keys())}")
18 module_path, class_name = path.rsplit(".", 1)
19 import importlib
20 module = importlib.import_module(module_path)
21 cls = getattr(module, class_name)
22 logger.info(f"加载 LLM 渠道: {LLM_PROVIDER}")
23 return cls()
26provider: LLMProvider = _load_provider()