From 466a1c1c410b781603b200594837b06bbdd478d0 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Fri, 21 Feb 2025 00:38:02 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=8A=A5=E9=94=99=20AttributeError=20?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20#549?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/pipeline/process_stage/method/llm_request.py | 8 ++------ astrbot/core/pipeline/respond/stage.py | 4 +--- astrbot/core/pipeline/result_decorate/stage.py | 5 +---- astrbot/core/pipeline/stage.py | 2 ++ 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/astrbot/core/pipeline/process_stage/method/llm_request.py b/astrbot/core/pipeline/process_stage/method/llm_request.py index 2952f46dd..fd50d4423 100644 --- a/astrbot/core/pipeline/process_stage/method/llm_request.py +++ b/astrbot/core/pipeline/process_stage/method/llm_request.py @@ -69,9 +69,7 @@ class LLMRequestSubStage(Stage): handlers = star_handlers_registry.get_handlers_by_event_type(EventType.OnLLMRequestEvent) for handler in handlers: try: - wrapper = self._call_handler(self.ctx, event, handler.handler, req) - async for ret in wrapper: - yield ret + await handler.handler(event, req) except BaseException: logger.error(traceback.format_exc()) @@ -88,9 +86,7 @@ class LLMRequestSubStage(Stage): handlers = star_handlers_registry.get_handlers_by_event_type(EventType.OnLLMResponseEvent) for handler in handlers: try: - wrapper = self._call_handler(self.ctx, event, handler.handler, llm_response) - async for ret in wrapper: - yield ret + await handler.handler(event, llm_response) except BaseException: logger.error(traceback.format_exc()) diff --git a/astrbot/core/pipeline/respond/stage.py b/astrbot/core/pipeline/respond/stage.py index 9c5d5860e..a833ac76c 100644 --- a/astrbot/core/pipeline/respond/stage.py +++ b/astrbot/core/pipeline/respond/stage.py @@ -90,9 +90,7 @@ class RespondStage(Stage): handlers = star_handlers_registry.get_handlers_by_event_type(EventType.OnAfterMessageSentEvent) for handler in handlers: try: - wrapper = self._call_handler(self.ctx, event, handler.handler) - async for ret in wrapper: - yield ret + await handler.handler(event) except BaseException: logger.error(traceback.format_exc()) diff --git a/astrbot/core/pipeline/result_decorate/stage.py b/astrbot/core/pipeline/result_decorate/stage.py index 847d3549d..aa0ce02b7 100644 --- a/astrbot/core/pipeline/result_decorate/stage.py +++ b/astrbot/core/pipeline/result_decorate/stage.py @@ -63,13 +63,10 @@ class ResultDecorateStage(Stage): handlers = star_handlers_registry.get_handlers_by_event_type(EventType.OnDecoratingResultEvent) for handler in handlers: try: - wrapper = self._call_handler(self.ctx, event, handler.handler) - async for ret in wrapper: - yield ret + await handler.handler(event) except BaseException: logger.error(traceback.format_exc()) - # 需要再获取一次。插件可能直接对 chain 进行了替换。 result = event.get_result() if result is None: diff --git a/astrbot/core/pipeline/stage.py b/astrbot/core/pipeline/stage.py index e9d48a41b..fc31786b2 100644 --- a/astrbot/core/pipeline/stage.py +++ b/astrbot/core/pipeline/stage.py @@ -1,6 +1,7 @@ from __future__ import annotations import abc import inspect +from astrbot.api import logger from typing import List, AsyncGenerator, Union, Awaitable from astrbot.core.platform.astr_message_event import AstrMessageEvent from .context import PipelineContext @@ -46,6 +47,7 @@ class Stage(abc.ABC): ready_to_call = handler(event, *args, **kwargs) except TypeError as e: # 向下兼容 + logger.debug(str(e)) ready_to_call = handler(event, ctx.plugin_manager.context, *args, **kwargs) if isinstance(ready_to_call, AsyncGenerator):