修复bing图片生成请求(绘图接口仍有问题)

This commit is contained in:
zyc404 2024-05-06 22:47:20 +08:00
parent 8dab6fd0b5
commit 33e04c1c24
3 changed files with 56 additions and 6 deletions

View file

@ -500,6 +500,11 @@
"label": "是否允许机器人读取近期的群聊聊天记录", "label": "是否允许机器人读取近期的群聊聊天记录",
"data": "enableGroupContext" "data": "enableGroupContext"
}, },
{
"type": "check",
"label": "是否允许必应进行搜索",
"data": "sydneyEnableSearch"
},
{ {
"type": "number", "type": "number",
"label": "允许机器人读取近期的最多群聊聊天记录条数", "label": "允许机器人读取近期的最多群聊聊天记录条数",
@ -581,6 +586,42 @@
"label": "第三方绘图", "label": "第三方绘图",
"placeholder": "使用AP插件代替Bing进行绘图", "placeholder": "使用AP插件代替Bing进行绘图",
"data": "bingAPDraw" "data": "bingAPDraw"
},
{
"type": "textarea",
"label": "前置对话第一轮(用户)",
"placeholder": "会强行插入该轮对话,能有效抑制抱歉",
"data": "chatExampleUser1"
},
{
"type": "textarea",
"label": "前置对话第一轮AI",
"placeholder": "会强行插入该轮对话,能有效抑制抱歉",
"data": "chatExampleBot1"
},
{
"type": "textarea",
"label": "前置对话第二轮(用户)",
"placeholder": "会强行插入该轮对话,能有效抑制抱歉",
"data": "chatExampleUser2"
},
{
"type": "textarea",
"label": "前置对话第二轮AI",
"placeholder": "会强行插入该轮对话,能有效抑制抱歉",
"data": "chatExampleBot2"
},
{
"type": "textarea",
"label": "前置对话第三轮(用户)",
"placeholder": "会强行插入该轮对话,能有效抑制抱歉",
"data": "chatExampleUser3"
},
{
"type": "textarea",
"label": "前置对话第三轮AI",
"placeholder": "会强行插入该轮对话,能有效抑制抱歉",
"data": "chatExampleBot3"
} }
] ]
}, },
@ -1029,6 +1070,12 @@
"value": "prefix" "value": "prefix"
} }
] ]
},
{
"type": "text",
"label": "主动发起聊天群聊的群号",
"placeholder": "在这些群聊里会不定时主动说一些随机的打招呼的话用英文逗号隔开。必须配置了OpenAI Key",
"data": "initiativeChatGroups"
} }
] ]
}, },

View file

@ -2,6 +2,7 @@ import fetch, { FormData } from 'node-fetch'
import { makeForwardMsg } from './common.js' import { makeForwardMsg } from './common.js'
import { Config } from './config.js' import { Config } from './config.js'
import { getProxy } from './proxy.js' import { getProxy } from './proxy.js'
import crypto from 'crypto'
let proxy = getProxy() let proxy = getProxy()
export default class BingDrawClient { export default class BingDrawClient {
@ -47,7 +48,7 @@ export default class BingDrawClient {
} }
// headers['x-forwarded-for'] = '141.11.138.30' // headers['x-forwarded-for'] = '141.11.138.30'
let body = new FormData() let body = new FormData()
body.append('q', prompt) body.append('q', urlEncodedPrompt)
body.append('qs', 'ds') body.append('qs', 'ds')
let fetchOptions = { let fetchOptions = {
headers headers
@ -65,6 +66,9 @@ export default class BingDrawClient {
throw new Error('Your prompt has been blocked by Bing. Try to change any bad words and try again.') throw new Error('Your prompt has been blocked by Bing. Try to change any bad words and try again.')
} }
if (response.status !== 302) { if (response.status !== 302) {
if (this.debug) {
console.debug(`第一次重试绘图:${prompt}`)
}
url = `${this.opts.baseUrl}/images/create?q=${urlEncodedPrompt}&rt=3&FORM=GENCRE` url = `${this.opts.baseUrl}/images/create?q=${urlEncodedPrompt}&rt=3&FORM=GENCRE`
response = await fetch(url, Object.assign(fetchOptions, { body, redirect: 'manual', method: 'POST', credentials: 'include' })) response = await fetch(url, Object.assign(fetchOptions, { body, redirect: 'manual', method: 'POST', credentials: 'include' }))
} }

View file

@ -386,7 +386,7 @@ export default class SydneyAIClient {
} }
let optionsSets = getOptionSet(Config.toneStyle, Config.enableGenerateContents) let optionsSets = getOptionSet(Config.toneStyle, Config.enableGenerateContents)
let source = 'cib-ccp'; let gptId = 'copilot' let source = 'cib-ccp'; let gptId = 'copilot'
if (!Config.sydneyEnableSearch || toSummaryFileContent?.content) { if ((!Config.sydneyEnableSearch && !Config.enableGenerateContents) || toSummaryFileContent?.content) {
optionsSets.push(...['nosearchall']) optionsSets.push(...['nosearchall'])
} }
if (isPro) { if (isPro) {
@ -430,7 +430,9 @@ export default class SydneyAIClient {
'SemanticSerp', 'SemanticSerp',
'GenerateContentQuery', 'GenerateContentQuery',
'SearchQuery', 'SearchQuery',
'GeneratedCode' 'GeneratedCode',
// 'InternalTasksMessage',
// 'Disclaimer'
], ],
sliceIds: [], sliceIds: [],
requestId: crypto.randomUUID(), requestId: crypto.randomUUID(),
@ -1025,8 +1027,5 @@ function getOptionSet (tone, generateContent = false) {
]) ])
break break
} }
if (generateContent) {
optionset.push('gencontentv3')
}
return optionset return optionset
} }