From 7d823af6270e11b16c969f5c6cb770656901ceac Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Thu, 13 Nov 2025 19:53:23 +0800 Subject: [PATCH] refactor: update provider metadata handling and enhance ProviderMetaData structure --- astrbot/core/provider/entities.py | 3 ++- astrbot/core/provider/provider.py | 25 +++++-------------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/astrbot/core/provider/entities.py b/astrbot/core/provider/entities.py index 2f1e84419..a5a755a27 100644 --- a/astrbot/core/provider/entities.py +++ b/astrbot/core/provider/entities.py @@ -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 diff --git a/astrbot/core/provider/provider.py b/astrbot/core/provider/provider.py index 7ab8f00ba..cd1781fb6 100644 --- a/astrbot/core/provider/provider.py +++ b/astrbot/core/provider/provider.py @@ -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):