diff --git a/astrbot/core/provider/entities.py b/astrbot/core/provider/entities.py index a5a755a27..6852f9cd6 100644 --- a/astrbot/core/provider/entities.py +++ b/astrbot/core/provider/entities.py @@ -31,6 +31,8 @@ class ProviderType(enum.Enum): @dataclass class ProviderMetaData: + id: str + """提供商适配器 ID""" type: str """提供商适配器名称,如 openai, ollama""" desc: str = "" diff --git a/astrbot/core/provider/manager.py b/astrbot/core/provider/manager.py index 5fc5a4b5e..0984138ae 100644 --- a/astrbot/core/provider/manager.py +++ b/astrbot/core/provider/manager.py @@ -354,6 +354,8 @@ class ProviderManager: logger.error(f"无法找到 {provider_metadata.type} 的类") return + provider_metadata.id = provider_config["id"] + if provider_metadata.provider_type == ProviderType.SPEECH_TO_TEXT: # STT 任务 inst = cls_type(provider_config, self.provider_settings) diff --git a/astrbot/core/provider/register.py b/astrbot/core/provider/register.py index 1aead54df..af9870dd7 100644 --- a/astrbot/core/provider/register.py +++ b/astrbot/core/provider/register.py @@ -36,6 +36,7 @@ def register_provider_adapter( default_config_tmpl["id"] = provider_type_name pm = ProviderMetaData( + id="default", # will be replaced when instantiated type=provider_type_name, desc=desc, provider_type=provider_type,