fix(core.provider): 修复循环调用和错误assert

This commit is contained in:
Dt8333
2025-11-07 15:07:37 +08:00
parent e3b9473408
commit 2d5b171242
2 changed files with 9 additions and 7 deletions

View File

@@ -2,7 +2,7 @@ import base64
import enum
import json
from dataclasses import dataclass, field
from typing import Any
from typing import TYPE_CHECKING, Any
from anthropic.types import Message as AnthropicMessage
from google.genai.types import GenerateContentResponse
@@ -18,7 +18,9 @@ from astrbot.core.agent.message import (
from astrbot.core.agent.tool import ToolSet
from astrbot.core.db.po import Conversation
from astrbot.core.message.message_event_result import MessageChain
from astrbot.core.provider.provider import Providers
if TYPE_CHECKING:
from astrbot.core.provider.provider import Providers
from astrbot.core.utils.io import download_image_by_url

View File

@@ -374,7 +374,7 @@ class ProviderManager:
if provider_metadata.provider_type == ProviderType.SPEECH_TO_TEXT:
# STT 任务
assert cls_type is type[STTProvider]
assert issubclass(cls_type, STTProvider)
inst = cls_type(provider_config, self.provider_settings)
if getattr(inst, "initialize", None):
@@ -394,7 +394,7 @@ class ProviderManager:
elif provider_metadata.provider_type == ProviderType.TEXT_TO_SPEECH:
# TTS 任务
assert cls_type is type[TTSProvider]
assert issubclass(cls_type, TTSProvider)
inst = cls_type(provider_config, self.provider_settings)
if getattr(inst, "initialize", None):
@@ -411,7 +411,7 @@ class ProviderManager:
elif provider_metadata.provider_type == ProviderType.CHAT_COMPLETION:
# 文本生成任务
assert cls_type is type[Provider]
assert issubclass(cls_type, Provider)
inst = cls_type(
provider_config,
self.provider_settings,
@@ -434,13 +434,13 @@ class ProviderManager:
self.curr_provider_inst = inst
elif provider_metadata.provider_type == ProviderType.EMBEDDING:
assert cls_type is type[EmbeddingProvider]
assert issubclass(cls_type, EmbeddingProvider)
inst = cls_type(provider_config, self.provider_settings)
if getattr(inst, "initialize", None):
await cast(HasInitialize, inst).initialize()
self.embedding_provider_insts.append(inst)
elif provider_metadata.provider_type == ProviderType.RERANK:
assert cls_type is type[RerankProvider]
assert issubclass(cls_type, RerankProvider)
inst = cls_type(provider_config, self.provider_settings)
if getattr(inst, "initialize", None):
await cast(HasInitialize, inst).initialize()