From 8d7273924fd4c6980e07fc46fdf671301900a5fb Mon Sep 17 00:00:00 2001 From: Raven95676 Date: Tue, 22 Apr 2025 22:12:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Gemini=E4=BF=9D=E8=AF=81=E5=81=B6?= =?UTF-8?q?=E6=95=B0=E7=B4=A2=E5=BC=95=E4=B8=BA=E7=94=A8=E6=88=B7=E6=B6=88?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E5=A5=87=E6=95=B0=E7=B4=A2=E5=BC=95=E4=B8=BA?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/provider/sources/gemini_source.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/astrbot/core/provider/sources/gemini_source.py b/astrbot/core/provider/sources/gemini_source.py index ef2305069..038d57751 100644 --- a/astrbot/core/provider/sources/gemini_source.py +++ b/astrbot/core/provider/sources/gemini_source.py @@ -260,6 +260,20 @@ class ProviderGoogleGenAI(Provider): ) ) + # 保证偶数索引为用户消息,奇数索引为模型消息 + content_num = len(gemini_contents) + for i in range(content_num): + expected_type = types.UserContent if i % 2 == 0 else types.ModelContent + if not isinstance(gemini_contents[i], expected_type): + for j in range(i + 1, content_num): + if isinstance(gemini_contents[j], expected_type): + logger.debug(f"交换索引 {i} 与 {j}") + gemini_contents[i], gemini_contents[j] = ( + gemini_contents[j], + gemini_contents[i], + ) + break + return gemini_contents @staticmethod