Files

39 lines
910 B
Python

"""适配器注册表。"""
from __future__ import annotations
from .agnes import AgnesAdapter
from .base import Capabilities, ImageResult, ProviderAdapter, ProviderConfig, ProviderError
from .openai_compat import OpenAICompatAdapter
ADAPTERS: dict[str, type[ProviderAdapter]] = {
OpenAICompatAdapter.name: OpenAICompatAdapter,
AgnesAdapter.name: AgnesAdapter,
}
ADAPTER_LABELS = {
"openai_compat": "OpenAI 兼容",
"agnes": "Agnes 原生",
}
def get_adapter(cfg: ProviderConfig) -> ProviderAdapter:
cls = ADAPTERS.get(cfg.adapter)
if cls is None:
raise ProviderError(f"不支持的适配器类型: {cfg.adapter}", status=400)
return cls(cfg)
__all__ = [
"ADAPTERS",
"ADAPTER_LABELS",
"AgnesAdapter",
"Capabilities",
"ImageResult",
"OpenAICompatAdapter",
"ProviderAdapter",
"ProviderConfig",
"ProviderError",
"get_adapter",
]