From fed2fd8dd4984a4b1fe945909ca6bc3775af8d53 Mon Sep 17 00:00:00 2001 From: zyc404 Date: Thu, 12 Oct 2023 16:31:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0bing=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=BB=98=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/chat.js | 44 ++++++++++++++++++++++++-------- resources/view/setting_view.json | 6 +++++ utils/config.js | 1 + 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/apps/chat.js b/apps/chat.js index ff14e93..ae18188 100644 --- a/apps/chat.js +++ b/apps/chat.js @@ -1665,16 +1665,40 @@ export class chatgpt extends plugin { if (Config.debug) { logger.mark(`开始生成内容:${response.details.imageTag}`) } - let client = new BingDrawClient({ - baseUrl: Config.sydneyReverseProxy, - userToken: bingToken - }) - await redis.set(`CHATGPT:DRAW:${e.sender.user_id}`, 'c', { EX: 30 }) - try { - await client.getImages(response.details.imageTag, e) - } catch (err) { - await redis.del(`CHATGPT:DRAW:${e.sender.user_id}`) - await e.reply('绘图失败:' + err) + if (Config.bingDrawApi) { + // 调用第三方API进行绘图 + const drawOption = { + method: 'POST', + body: JSON.stringify({ + prompt: response.details.imageTag, + width: 512, + height: 512 + }) + } + const drawData = await fetch(Config.bingDrawApi, drawOption) + if (drawData.ok) { + let draw = await cacheres.json() + if (draw.images) { + for(let image of draw.images) { + this.reply(segment.image(`base64://${image}`), true) + } + } + } else { + await e.reply('绘图失败:第三方绘图服务器错误') + } + + } else { + let client = new BingDrawClient({ + baseUrl: Config.sydneyReverseProxy, + userToken: bingToken + }) + await redis.set(`CHATGPT:DRAW:${e.sender.user_id}`, 'c', { EX: 30 }) + try { + await client.getImages(response.details.imageTag, e) + } catch (err) { + await redis.del(`CHATGPT:DRAW:${e.sender.user_id}`) + await e.reply('绘图失败:' + err) + } } } diff --git a/resources/view/setting_view.json b/resources/view/setting_view.json index 9aa8063..cc183df 100644 --- a/resources/view/setting_view.json +++ b/resources/view/setting_view.json @@ -636,6 +636,12 @@ "label": "必应验证码pass服务", "placeholder": "必应出验证码会自动用该服务绕过", "data": "bingCaptchaOneShotUrl" + }, + { + "type": "url", + "label": "第三方绘图", + "placeholder": "Stable Diffusion API地址", + "data": "bingDrawApi" } ] }, diff --git a/utils/config.js b/utils/config.js index cfb7e6a..ed15408 100644 --- a/utils/config.js +++ b/utils/config.js @@ -96,6 +96,7 @@ const defaultConfig = { maxNumUserMessagesInConversation: 20, sydneyApologyIgnored: true, enforceMaster: false, + bingDrawApi: '', serverPort: 3321, serverHost: '', viewHost: '',