chore: update bing client and improve error messages (#337)

This commit is contained in:
josc146
2023-05-16 11:47:34 +08:00
parent a00a40ad7a
commit 839f653c3e
5 changed files with 27 additions and 15 deletions
+8 -11
View File
@@ -234,6 +234,7 @@ export default class BingAIClient {
author: 'system',
},
...previousCachedMessages,
// We still need this to avoid repeating introduction in some cases
{
text: message,
author: 'user',
@@ -241,13 +242,6 @@ export default class BingAIClient {
]
: undefined
if (context) {
previousMessages.push({
text: context,
author: 'context', // not a real/valid author, we're just piggybacking on the existing logic
})
}
// prepare messages for prompt injection
previousMessagesFormatted = previousMessages
?.map((previousMessage) => {
@@ -257,14 +251,16 @@ export default class BingAIClient {
case 'bot':
return `[assistant](#message)\n${previousMessage.text}`
case 'system':
return `N/A\n\n[system](#additional_instructions)\n- ${previousMessage.text}`
case 'context':
return `[user](#context)\n${previousMessage.text}`
return `[system](#additional_instructions)\n${previousMessage.text}`
default:
throw new Error(`Unknown message author: ${previousMessage.author}`)
}
})
.join('\n\n')
if (context) {
previousMessagesFormatted = `${context}\n\n${previousMessagesFormatted}`
}
}
const userMessage = {
@@ -313,13 +309,14 @@ export default class BingAIClient {
'cricinfo',
'cricinfov2',
'dv3sugg',
'nojbfedge',
],
sliceIds: ['222dtappid', '225cricinfo', '224locals0'],
traceId: genRanHex(32),
isStartOfSession: invocationId === 0,
message: {
author: 'user',
text: jailbreakConversationId ? '' : message,
text: message,
messageType: jailbreakConversationId ? 'SearchQuery' : 'Chat',
},
conversationSignature,
+7 -1
View File
@@ -55,7 +55,13 @@ export function registerPortListener(executor) {
err.message.includes(m),
)
)
port.postMessage({ error: t('Exceeded maximum context length') + '\n' + err.message })
port.postMessage({ error: t('Exceeded maximum context length') + '\n\n' + err.message })
else if (['CaptchaChallenge', 'CAPTCHA'].some((m) => err.message.includes(m)))
port.postMessage({ error: t('Bing CaptchaChallenge') + '\n\n' + err.message })
else if (['exceeded your current quota'].some((m) => err.message.includes(m)))
port.postMessage({ error: t('Exceeded quota') + '\n\n' + err.message })
else if (['Rate limit reached'].some((m) => err.message.includes(m)))
port.postMessage({ error: t('Rate limit') + '\n\n' + err.message })
else port.postMessage({ error: err.message })
}
}