39 lines
910 B
Python
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",
|
|
]
|