From 0eb1684ef1b97f2ea50e50097c41d2ad7fc2bef6 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Fri, 7 Feb 2025 22:38:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20openai=5Fsource=20?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=BC=B9=E5=87=BA=E6=9C=80=E6=97=A9=E7=9A=84?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/provider/sources/gemini_source.py | 4 ++-- astrbot/core/provider/sources/openai_source.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/astrbot/core/provider/sources/gemini_source.py b/astrbot/core/provider/sources/gemini_source.py index b91facf74..3eb5a5dc9 100644 --- a/astrbot/core/provider/sources/gemini_source.py +++ b/astrbot/core/provider/sources/gemini_source.py @@ -181,9 +181,9 @@ class ProviderGoogleGenAI(Provider): llm_response = await self._query(payloads, func_tool) except Exception as e: if "maximum context length" in str(e): - retry_cnt = 10 + retry_cnt = 20 while retry_cnt > 0: - logger.warning(f"请求失败:{e}。上下文长度超过限制。尝试弹出最早的记录然后重试。") + logger.warning(f"请求失败:{e}。上下文长度超过限制。尝试弹出最早的记录然后重试。当前记录条数: {len(context_query)}") try: await self.pop_record(context_query) llm_response = await self._query(payloads, func_tool) diff --git a/astrbot/core/provider/sources/openai_source.py b/astrbot/core/provider/sources/openai_source.py index 111c2e41e..0f0d5359d 100644 --- a/astrbot/core/provider/sources/openai_source.py +++ b/astrbot/core/provider/sources/openai_source.py @@ -142,15 +142,16 @@ class ProviderOpenAIOfficial(Provider): # 尝试删除所有 image new_contexts = await self._remove_image_from_context(context_query) payloads['messages'] = new_contexts + context_query = new_contexts llm_response = await self._query(payloads, func_tool) except Exception as e: if "maximum context length" in str(e): # 重试 10 次 - retry_cnt = 10 + retry_cnt = 20 while retry_cnt > 0: - logger.warning("上下文长度超过限制。尝试弹出最早的记录然后重试。") + logger.warning(f"上下文长度超过限制。尝试弹出最早的记录然后重试。当前记录条数: {len(context_query)}") try: - await self.pop_record(session_id) + await self.pop_record(context_query) llm_response = await self._query(payloads, func_tool) break except Exception as e: