"""Agent 内部使用的 LLM 适配层,公开对象按需解析。""" from importlib import import_module from typing import Any _EXPORT_MODULES = { "LLMHelper": "app.agent.llm.helper", "LLMTestError": "app.agent.llm.helper", "LLMTestTimeout": "app.agent.llm.helper", "AgentCapabilityManager": "app.agent.llm.capability", "AgentCapabilityProvider": "app.agent.llm.capability", "AudioCapabilityProvider": "app.agent.llm.capability", "MiMoAudioProvider": "app.agent.llm.capability", "OpenAIChatAudioProvider": "app.agent.llm.capability", "OpenAIAudioProvider": "app.agent.llm.capability", "LLMProviderAuthError": "app.agent.llm.provider", "LLMProviderError": "app.agent.llm.provider", "LLMProviderManager": "app.agent.llm.provider", "render_auth_result_html": "app.agent.llm.provider", } def __getattr__(name: str) -> Any: """首次访问公开对象时只加载其所属适配模块。""" module_name = _EXPORT_MODULES.get(name) if module_name is None: raise AttributeError(f"module 'app.agent.llm' has no attribute {name!r}") value = getattr(import_module(module_name), name) globals()[name] = value return value def __dir__() -> list[str]: """让延迟公开对象继续支持交互式发现。""" return sorted(set(globals()) | set(_EXPORT_MODULES)) __all__ = [ "LLMHelper", "AgentCapabilityManager", "AgentCapabilityProvider", "AudioCapabilityProvider", "LLMProviderAuthError", "LLMProviderError", "LLMProviderManager", "LLMTestError", "LLMTestTimeout", "MiMoAudioProvider", "OpenAIChatAudioProvider", "OpenAIAudioProvider", "render_auth_result_html", ]