"""LLM 后端注册表(可插拔入口)。 config.yaml 的 llm_screen.provider 选择后端;OpenAI 兼容厂商(openai/deepseek/qwen/moonshot) 统一映射到 openai_compat 实现。 """ from typing import Dict from .base import LLMBackend from .mock_backend import MockBackend from .openai_compat_backend import OpenAICompatBackend, DEFAULT_SYSTEM_PROMPT LLM_BACKENDS: Dict[str, type] = { "mock": MockBackend, "openai_compat": OpenAICompatBackend, } # 厂商别名 -> openai_compat(它们都走 OpenAI 兼容协议) _ALIASES: Dict[str, str] = { "openai": "openai_compat", "deepseek": "openai_compat", "qwen": "openai_compat", "moonshot": "openai_compat", } def get_backend(name: str) -> LLMBackend: key = _ALIASES.get(name, name) cls = LLM_BACKENDS.get(key) if cls is None: raise ValueError(f"未知 LLM 后端: {name},可用: {list(LLM_BACKENDS)} (+别名 {list(_ALIASES)})") return cls()