From 17759f6116cd045e099017ed7ecd42c4ae1ced7e Mon Sep 17 00:00:00 2001 From: shuiping233 <1944680304@qq.com> Date: Thu, 23 Apr 2026 22:08:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20kook=E9=80=82=E9=85=8D=E5=99=A8=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0`send=5Fstreaming`=E6=96=B9=E6=B3=95(=E9=99=8D?= =?UTF-8?q?=E7=BA=A7=E5=88=B0=E6=99=AE=E9=80=9A=E6=96=87=E6=9C=AC=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8F=91=E9=80=81)=E6=9D=A5=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E4=BA=86=E6=B5=81=E9=80=9D=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E5=90=8E=E5=8F=AF=E8=83=BDllm=E6=B6=88=E6=81=AF=E5=8F=91?= =?UTF-8?q?=E4=B8=8D=E5=87=BA=E5=8E=BB=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/platform/sources/kook/kook_event.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/astrbot/core/platform/sources/kook/kook_event.py b/astrbot/core/platform/sources/kook/kook_event.py index 884d066d8d..06cfe9753d 100644 --- a/astrbot/core/platform/sources/kook/kook_event.py +++ b/astrbot/core/platform/sources/kook/kook_event.py @@ -1,6 +1,6 @@ import asyncio import json -from collections.abc import Coroutine +from collections.abc import AsyncGenerator, Coroutine from pathlib import Path from typing import Any @@ -208,3 +208,19 @@ async def send(self, message: MessageChain): logger.error(f"[kook] {err_msg}") await super().send(message) + + async def send_streaming( + self, generator: AsyncGenerator[MessageChain, None], use_fallback: bool = False + ): + """KOOK 平台不支持流式输出, 调用此方法将回退到普通`send`方法""" + buffer = None + async for chain in generator: + if not buffer: + buffer = chain + else: + buffer.chain.extend(chain.chain) + if not buffer: + return None + buffer.squash_plain() + await self.send(buffer) + return await super().send_streaming(generator, use_fallback)