From 84729fb15a8c86e585658fb52f4b5dd26baef031 Mon Sep 17 00:00:00 2001 From: foxhui Date: Fri, 24 Apr 2026 01:39:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D=20G?= =?UTF-8?q?PT=20=E9=80=89=E6=8B=A9=E6=A8=A1=E5=9E=8B=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(ref=20#81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/adapter/chatgpt_text.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/backend/adapter/chatgpt_text.js b/src/backend/adapter/chatgpt_text.js index 720f3ad..807e1a6 100644 --- a/src/backend/adapter/chatgpt_text.js +++ b/src/backend/adapter/chatgpt_text.js @@ -49,12 +49,17 @@ async function selectModel(page, codeName, meta = {}) { await sleep(300, 500); } - // 3. 查找匹配 codeName 开头的 menuitem - const targetMenuItem = page.getByRole('menuitem', { name: new RegExp(`^${codeName}`) }); - const targetExists = await targetMenuItem.count(); + // 3. 查找匹配 codeName 开头的 menuitem 或 menuitemradio + let targetMenuItem = page.getByRole('menuitemradio', { name: new RegExp(`^${codeName}`, 'i') }); + let targetExists = await targetMenuItem.count(); + if (targetExists === 0) { + targetMenuItem = page.getByRole('menuitem', { name: new RegExp(`^${codeName}`, 'i') }); + targetExists = await targetMenuItem.count(); + } + if (targetExists > 0) { logger.info('适配器', `正在选择模型: ${codeName}`, meta); - await safeClick(page, targetMenuItem, { bias: 'button' }); + await safeClick(page, targetMenuItem.first(), { bias: 'button' }); return true; } else { logger.debug('适配器', `未找到模型 ${codeName},使用默认模型`, meta); @@ -94,10 +99,13 @@ async function generate(context, prompt, imgPaths, modelId, meta = {}) { await waitForInput(page, INPUT_SELECTOR, { click: false }); // 2. 选择模型 - const modelConfig = manifest.models.find(m => m.id === modelId); - const targetModel = modelConfig?.codeName || modelId; - if (targetModel) { - await selectModel(page, targetModel, meta); + if (modelId) { + const modelConfig = manifest.models.find(m => m.id === modelId); + if (modelConfig && modelConfig.codeName) { + await selectModel(page, modelConfig.codeName, meta); + } else { + logger.info('适配器', `未指定模型或未知模型 (${modelId}),跳过模型选择`, meta); + } } // 3. 上传图片 (双击 Add files and more 按钮)