From 1fa9111b2b7e6bd315090bf0a2a6aa84661179a4 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Thu, 9 Jan 2025 22:03:22 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=BF=9B=E4=B8=80=E6=AD=A5=E9=98=B2?= =?UTF-8?q?=E6=AD=A2llm=E9=80=92=E5=BD=92=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/pipeline/process_stage/method/llm_request.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/astrbot/core/pipeline/process_stage/method/llm_request.py b/astrbot/core/pipeline/process_stage/method/llm_request.py index a498fd37f..36ebae140 100644 --- a/astrbot/core/pipeline/process_stage/method/llm_request.py +++ b/astrbot/core/pipeline/process_stage/method/llm_request.py @@ -18,7 +18,7 @@ class LLMRequestSubStage(Stage): async def initialize(self, ctx: PipelineContext) -> None: self.ctx = ctx - async def process(self, event: AstrMessageEvent) -> Union[None, AsyncGenerator[None, None]]: + async def process(self, event: AstrMessageEvent, _nested: bool = False) -> Union[None, AsyncGenerator[None, None]]: req: ProviderRequest = None provider = self.ctx.plugin_manager.context.get_using_provider() @@ -58,6 +58,8 @@ class LLMRequestSubStage(Stage): try: logger.debug(f"提供商请求 Payload: {req.__dict__}") + if _nested: + req.func_tool = None # 暂时不支持递归工具调用 llm_response = await provider.text_chat(**req.__dict__) # 请求 LLM await Metric.upload(llm_tick=1, model_name=provider.get_model(), provider_type=provider.meta().type) @@ -91,7 +93,7 @@ class LLMRequestSubStage(Stage): for tool_name, tool_result in function_calling_result.items(): extra_prompt += f"Tool: {tool_name}\nTool Result: {tool_result}\n" req.prompt += extra_prompt - async for _ in self.process(event): + async for _ in self.process(event, _nested=True): yield except BaseException as e: