refactor: update provider metadata handling and enhance ProviderMetaData structure

This commit is contained in:
Soulter
2025-11-13 19:53:23 +08:00
parent 3957861878
commit 7d823af627
2 changed files with 7 additions and 21 deletions

View File

@@ -36,8 +36,9 @@ class ProviderMetaData:
desc: str = ""
"""提供商适配器描述"""
provider_type: ProviderType = ProviderType.CHAT_COMPLETION
"""提供商类型"""
cls_type: Any = None
"""提供商适配器类类型"""
default_config_tmpl: dict | None = None
"""平台的默认配置模板"""
provider_display_name: str | None = None

View File

@@ -1,28 +1,19 @@
import abc
import asyncio
from collections.abc import AsyncGenerator
from dataclasses import dataclass
from astrbot.core.agent.message import Message
from astrbot.core.agent.tool import ToolSet
from astrbot.core.db.po import Personality
from astrbot.core.provider.entities import (
LLMResponse,
ProviderType,
ProviderMetaData,
RerankResult,
ToolCallsResult,
)
from astrbot.core.provider.register import provider_cls_map
@dataclass
class ProviderMeta:
id: str
model: str
type: str
provider_type: ProviderType
class AbstractProvider(abc.ABC):
"""Provider Abstract Class"""
@@ -39,19 +30,13 @@ class AbstractProvider(abc.ABC):
"""Get the current model name"""
return self.model_name
def meta(self) -> ProviderMeta:
def meta(self) -> ProviderMetaData:
"""Get the provider metadata"""
provider_type_name = self.provider_config["type"]
meta_data = provider_cls_map.get(provider_type_name)
provider_type = meta_data.provider_type if meta_data else None
if provider_type is None:
raise ValueError(f"Cannot find provider type: {provider_type_name}")
return ProviderMeta(
id=self.provider_config["id"],
model=self.get_model(),
type=provider_type_name,
provider_type=provider_type,
)
if not meta_data:
raise ValueError(f"Provider type {provider_type_name} not registered")
return meta_data
class Provider(AbstractProvider):