From e130405809b08962b15a5f8b5886dbfdfb87b07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=BA=86=E9=9B=B7?= Date: Wed, 12 Nov 2025 21:31:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0tools=E5=92=8CtoolConfig?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/standardGeminiRoutes.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/routes/standardGeminiRoutes.js b/src/routes/standardGeminiRoutes.js index 72ca4f11..46914b93 100644 --- a/src/routes/standardGeminiRoutes.js +++ b/src/routes/standardGeminiRoutes.js @@ -144,7 +144,8 @@ async function handleStandardGenerateContent(req, res) { const sessionHash = sessionHelper.generateSessionHash(req.body) // 标准 Gemini API 请求体直接包含 contents 等字段 - const { contents, generationConfig, safetySettings, systemInstruction } = req.body + const { contents, generationConfig, safetySettings, systemInstruction, tools, toolConfig } = + req.body // 验证必需参数 if (!contents || !Array.isArray(contents) || contents.length === 0) { @@ -172,6 +173,15 @@ async function handleStandardGenerateContent(req, res) { actualRequestData.safetySettings = safetySettings } + // 添加工具配置(tools 和 toolConfig) + if (tools) { + actualRequestData.tools = tools + } + + if (toolConfig) { + actualRequestData.toolConfig = toolConfig + } + // 如果有 system instruction,修正格式并添加到请求体 // Gemini CLI 的内部 API 需要 role: "user" 字段 if (systemInstruction) { @@ -335,7 +345,8 @@ async function handleStandardStreamGenerateContent(req, res) { const sessionHash = sessionHelper.generateSessionHash(req.body) // 标准 Gemini API 请求体直接包含 contents 等字段 - const { contents, generationConfig, safetySettings, systemInstruction } = req.body + const { contents, generationConfig, safetySettings, systemInstruction, tools, toolConfig } = + req.body // 验证必需参数 if (!contents || !Array.isArray(contents) || contents.length === 0) { @@ -363,6 +374,15 @@ async function handleStandardStreamGenerateContent(req, res) { actualRequestData.safetySettings = safetySettings } + // 添加工具配置(tools 和 toolConfig) + if (tools) { + actualRequestData.tools = tools + } + + if (toolConfig) { + actualRequestData.toolConfig = toolConfig + } + // 如果有 system instruction,修正格式并添加到请求体 // Gemini CLI 的内部 API 需要 role: "user" 字段 if (systemInstruction) {