fix: bingtoken国企

This commit is contained in:
ikechan8370 2023-09-23 20:13:26 +08:00
parent 7c5e9ea434
commit ad95327b1b

View file

@ -1716,39 +1716,40 @@ export class chatgpt extends plugin {
} }
} }
} else } else
if (message && typeof message === 'string' && message.indexOf('限流') > -1) { if (message && typeof message === 'string' && message.indexOf('限流') > -1) {
throttledTokens.push(bingToken) throttledTokens.push(bingToken)
let bingTokens = JSON.parse(await redis.get('CHATGPT:BING_TOKENS')) let bingTokens = JSON.parse(await redis.get('CHATGPT:BING_TOKENS'))
const badBingToken = bingTokens.findIndex(element => element.Token === bingToken) const badBingToken = bingTokens.findIndex(element => element.Token === bingToken)
const now = new Date() const now = new Date()
const hours = now.getHours() const hours = now.getHours()
now.setHours(hours + 6) now.setHours(hours + 6)
bingTokens[badBingToken].State = '受限' bingTokens[badBingToken].State = '受限'
bingTokens[badBingToken].DisactivationTime = now bingTokens[badBingToken].DisactivationTime = now
await redis.set('CHATGPT:BING_TOKENS', JSON.stringify(bingTokens)) await redis.set('CHATGPT:BING_TOKENS', JSON.stringify(bingTokens))
// 不减次数 // 不减次数
} else if (message && typeof message === 'string' && message.indexOf('UnauthorizedRequest') > -1) { } else if (message && typeof message === 'string' && message.indexOf('UnauthorizedRequest') > -1) {
// token过期了 // token过期了
// let bingTokens = JSON.parse(await redis.get('CHATGPT:BING_TOKENS')) let bingTokens = JSON.parse(await redis.get('CHATGPT:BING_TOKENS'))
// const badBingToken = bingTokens.findIndex(element => element.Token === bingToken) const badBingToken = bingTokens.findIndex(element => element.Token === bingToken)
// // 可能是微软抽风,给三次机会 // 可能是微软抽风,给三次机会
// if (bingTokens[badBingToken].exception) { if (bingTokens[badBingToken].exception) {
// if (bingTokens[badBingToken].exception <= 3) { if (bingTokens[badBingToken].exception <= 3) {
// bingTokens[badBingToken].exception += 1 bingTokens[badBingToken].exception += 1
// } else { } else {
// bingTokens[badBingToken].exception = 0 bingTokens[badBingToken].exception = 0
// bingTokens[badBingToken].State = '过期' bingTokens[badBingToken].State = '过期'
// } }
// } else {
// bingTokens[badBingToken].exception = 1
// }
// await redis.set('CHATGPT:BING_TOKENS', JSON.stringify(bingTokens))
logger.warn(`token${bingToken}疑似不存在或已过期,再试试`)
retry = retry - 1
} else { } else {
retry-- bingTokens[badBingToken].exception = 1
errorMessage = message === 'Timed out waiting for response. Try enabling debug mode to see more information.' ? (reply ? `${reply}\n不行了,我的大脑过载了,处理不过来了!` : '必应的小脑瓜不好使了,不知道怎么回答!') : message
} }
await redis.set('CHATGPT:BING_TOKENS', JSON.stringify(bingTokens))
errorMessage = 'UnauthorizedRequest必应token不正确或已过期'
// logger.warn(`token${bingToken}疑似不存在或已过期,再试试`)
// retry = retry - 1
} else {
retry--
errorMessage = message === 'Timed out waiting for response. Try enabling debug mode to see more information.' ? (reply ? `${reply}\n不行了,我的大脑过载了,处理不过来了!` : '必应的小脑瓜不好使了,不知道怎么回答!') : message
}
} }
} while (retry > 0) } while (retry > 0)
if (errorMessage) { if (errorMessage) {
@ -1766,7 +1767,7 @@ export class chatgpt extends plugin {
} }
} else { } else {
return { return {
text: response.response, text: response?.response,
quote: response.quote, quote: response.quote,
suggestedResponses: response.suggestedResponses, suggestedResponses: response.suggestedResponses,
conversationId: response.conversationId, conversationId: response.conversationId,