diff --git a/apps/chat.js b/apps/chat.js index b1b4ae0..c3df2ec 100644 --- a/apps/chat.js +++ b/apps/chat.js @@ -34,6 +34,7 @@ import { SlackClaudeClient } from '../utils/slack/slackClient.js' import { ChatgptManagement } from './management.js' import { getPromptByName } from '../utils/prompts.js' import Translate from '../utils/baiduTranslate.js' +import BingDrawClient from '../utils/BingDraw.js' import emojiStrip from 'emoji-strip' import XinghuoClient from "../utils/xinghuo/xinghuo.js"; try { @@ -1652,6 +1653,25 @@ export class chatgpt extends plugin { }) } } + console.log(response) + // 处理内容生成的图片 + if (response.details.imageTag) { + 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) + } + } + // 如果token曾经有异常,则清除异常 let Tokens = JSON.parse(await redis.get('CHATGPT:BING_TOKENS')) const TokenIndex = Tokens.findIndex(element => element.Token === abtrs.bingToken) diff --git a/utils/SydneyAIClient.js b/utils/SydneyAIClient.js index 76b2fc6..acaae73 100644 --- a/utils/SydneyAIClient.js +++ b/utils/SydneyAIClient.js @@ -358,6 +358,9 @@ export default class SydneyAIClient { 'responsible_ai_policy_235', 'enablemm', toneOption, + 'clgalileo', + 'gencontentv3', + 'rai267', 'dtappid', 'cricinfo', 'cricinfov2', @@ -625,7 +628,11 @@ export default class SydneyAIClient { adaptiveCards: adaptiveCardsSoFar, text: replySoFar.join('') } - message.text = messages.filter(m => m.author === 'bot').map(m => m.text).join('') + // 获取到图片内容 + if (message.contentType === 'IMAGE') { + message.imageTag = messages.filter(m => m.contentType === 'IMAGE').map(m => m.text).join('') + } + message.text = messages.filter(m => m.author === 'bot' && m.contentType != 'IMAGE').map(m => m.text).join('') if (!message) { reject('No message was generated.') return diff --git a/utils/uploadRecord.js b/utils/uploadRecord.js index 5328f13..d5d2b80 100644 --- a/utils/uploadRecord.js +++ b/utils/uploadRecord.js @@ -62,6 +62,10 @@ async function uploadRecord (recordUrl, ttsMode = 'vits-uma-genshin-honkai') { recordUrl = tmpFile } if (recordType === 'file' || Config.cloudMode === 'file') { + if (!recordUrl) { + logger.error('云转码错误:recordUrl 异常') + return false + } const formData = new FormData() let buffer if (!recordUrl.startsWith('http')) { @@ -83,9 +87,13 @@ async function uploadRecord (recordUrl, ttsMode = 'vits-uma-genshin-honkai') { method: 'POST', body: formData }) - let t = await resultres.text() + let t = await resultres.arrayBuffer() try { - result = JSON.parse(t) + result = { + buffer: { + data: t + } + } } catch (e) { logger.error(t) throw e