fix: 修复 Antigravity 反代 systemInstruction oneof 冲突

当客户端发送 snake_case 格式的 system_instruction 字段时,
_inject_system_instruction 函数会额外设置 camelCase 格式的
systemInstruction,导致 Gemini API 报错 oneof 字段冲突。

现在在注入前先统一 snake_case 到 camelCase,确保只有一个字段存在
This commit is contained in:
AAEE86
2026-02-10 00:00:56 +08:00
committed by fawney19
parent 1d625916ff
commit bd9c264375

View File

@@ -228,7 +228,18 @@ def _inject_system_instruction(inner_request: dict[str, Any]) -> None:
- 如果已有 systemInstruction在前面插入避免重复
- 如果没有:创建新的
- 补全 role: userGemini API 要求)
注意Gemini API 使用 protobuf oneof`system_instruction`snake_case
`systemInstruction`camelCase是同一个字段只能设置其中一个。
需要先统一到 camelCase 再处理。
"""
# 统一 snake_case 到 camelCase避免 oneof 冲突)
if "system_instruction" in inner_request:
snake_value = inner_request.pop("system_instruction")
# 仅当 camelCase 不存在时才迁移
if "systemInstruction" not in inner_request:
inner_request["systemInstruction"] = snake_value
system_instruction = inner_request.get("systemInstruction")
if isinstance(system_instruction, dict):