From 8af03398d5bb48f60b01f5017fecbb6ef3cb27cd Mon Sep 17 00:00:00 2001 From: josc146 Date: Thu, 20 Apr 2023 21:59:02 +0800 Subject: [PATCH] fix: conversation of bing sydney mode (#236, #242) --- src/background/apis/bing-web.mjs | 26 +++++++++++++++++---- src/background/apis/waylaidwanderer-api.mjs | 4 ++-- src/utils/init-session.mjs | 8 +++++++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/background/apis/bing-web.mjs b/src/background/apis/bing-web.mjs index 4e3997f..30d5dc1 100644 --- a/src/background/apis/bing-web.mjs +++ b/src/background/apis/bing-web.mjs @@ -20,6 +20,11 @@ export async function generateAnswersWithBingWebApi( const config = await getUserConfig() const bingAIClient = new BingAIClient({ userToken: accessToken }) + if (session.bingWeb_jailbreakConversationCache) + bingAIClient.conversationsCache.set( + session.bingWeb_jailbreakConversationId, + session.bingWeb_jailbreakConversationCache, + ) let answer = '' const response = await bingAIClient @@ -40,6 +45,11 @@ export async function generateAnswersWithBingWebApi( clientId: session.bingWeb_clientId, invocationId: session.bingWeb_invocationId, } + : session.bingWeb_jailbreakConversationId + ? { + jailbreakConversationId: session.bingWeb_jailbreakConversationId, + parentMessageId: session.bingWeb_parentMessageId, + } : {}), }) .catch((err) => { @@ -47,10 +57,18 @@ export async function generateAnswersWithBingWebApi( throw err }) - session.bingWeb_conversationSignature = response.conversationSignature - session.bingWeb_conversationId = response.conversationId - session.bingWeb_clientId = response.clientId - session.bingWeb_invocationId = response.invocationId + if (!sydneyMode) { + session.bingWeb_conversationSignature = response.conversationSignature + session.bingWeb_conversationId = response.conversationId + session.bingWeb_clientId = response.clientId + session.bingWeb_invocationId = response.invocationId + } else { + session.bingWeb_jailbreakConversationId = response.jailbreakConversationId + session.bingWeb_parentMessageId = response.messageId + session.bingWeb_jailbreakConversationCache = bingAIClient.conversationsCache.get( + response.jailbreakConversationId, + ) + } if (response.details.sourceAttributions.length > 0) { const footnotes = diff --git a/src/background/apis/waylaidwanderer-api.mjs b/src/background/apis/waylaidwanderer-api.mjs index 012eab9..58d261d 100644 --- a/src/background/apis/waylaidwanderer-api.mjs +++ b/src/background/apis/waylaidwanderer-api.mjs @@ -23,13 +23,13 @@ export async function generateAnswersWithWaylaidwandererApi(port, question, sess body: JSON.stringify({ message: question, stream: true, - ...(session.bingWeb_conversationId && { + ...(session.bingWeb_conversationSignature && { conversationId: session.bingWeb_conversationId, conversationSignature: session.bingWeb_conversationSignature, clientId: session.bingWeb_clientId, invocationId: session.bingWeb_invocationId, }), - ...(session.conversationId && { + ...(session.parentMessageId && { conversationId: session.conversationId, parentMessageId: session.parentMessageId, }), diff --git a/src/utils/init-session.mjs b/src/utils/init-session.mjs index cca5d11..f218597 100644 --- a/src/utils/init-session.mjs +++ b/src/utils/init-session.mjs @@ -17,6 +17,9 @@ import { Models } from '../config/index.mjs' * @property {string|null} bingWeb_conversationId * @property {string|null} bingWeb_clientId * @property {string|null} bingWeb_invocationId + * @property {string|null} bingWeb_jailbreakConversationId + * @property {string|null} bingWeb_parentMessageId + * @property {Object|null} bingWeb_jailbreakConversationCache * @property {number|null} poe_chatId */ /** @@ -59,6 +62,11 @@ export function initSession({ bingWeb_clientId: null, bingWeb_invocationId: null, + // bing sydney + bingWeb_jailbreakConversationId: null, + bingWeb_parentMessageId: null, + bingWeb_jailbreakConversationCache: null, + // poe poe_chatId: null, }