From 8dab6fd0b57229f48373af9be28ffda12ee0b1cf Mon Sep 17 00:00:00 2001 From: zyc404 Date: Mon, 6 May 2024 20:28:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbing=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/SydneyAIClient.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/utils/SydneyAIClient.js b/utils/SydneyAIClient.js index 1601b46..327d2b7 100644 --- a/utils/SydneyAIClient.js +++ b/utils/SydneyAIClient.js @@ -410,7 +410,7 @@ export default class SydneyAIClient { // } let maxConv = Config.maxNumUserMessagesInConversation const currentDate = moment().format('YYYY-MM-DDTHH:mm:ssZ') - const imageDate = await this.kblobImage(opts.imageUrl) + const imageDate = await this.kblobImage(opts.imageUrl, conversationId) let argument0 = { source, optionsSets, @@ -880,20 +880,31 @@ export default class SydneyAIClient { } } - async kblobImage (url) { + async kblobImage (url, conversationId) { if (!url) return false + if (!conversationId) return false + // 获取并转换图片为base64 + let imgBase64 + try { + const response = await fetch(url) + const arrayBuffer = await response.arrayBuffer() + const buffer = Buffer.from(arrayBuffer) + imgBase64 = buffer.toString('base64') + } catch (error) { + console.error(error) + return false + } const formData = new FormData() formData.append('knowledgeRequest', JSON.stringify({ - imageInfo: { - url - }, + imageInfo: {}, knowledgeRequest: { invokedSkills: ['ImageById'], subscriptionId: 'Bing.Chat.Multimodal', invokedSkillsRequestData: { enableFaceBlur: true }, - convoData: { convoid: '', convotone: 'Creative' } + convoData: { convoid: conversationId, convotone: 'Creative' } } })) + formData.append('imageBase64', imgBase64) const fetchOptions = { headers: { Referer: 'https://www.bing.com/search?q=Bing+AI&showconv=1&FORM=hpcodx'