mirror of
https://github.com/wassname/chatGPTBox.git
synced 2026-06-27 20:51:37 +08:00
fix Poe AI "Clear Context" (#349)
This commit is contained in:
@@ -10,7 +10,7 @@ import { isEmpty } from 'lodash-es'
|
||||
* @param {Session} session
|
||||
*/
|
||||
export async function generateAnswersWithAzureOpenaiApi(port, question, session) {
|
||||
const { controller, messageListener } = setAbortController(port)
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
const config = await getUserConfig()
|
||||
|
||||
const prompt = getConversationPairs(
|
||||
@@ -60,9 +60,11 @@ export async function generateAnswersWithAzureOpenaiApi(port, question, session)
|
||||
async onStart() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(
|
||||
|
||||
@@ -8,7 +8,7 @@ import Bard from '../clients/bard'
|
||||
* @param {string} cookies
|
||||
*/
|
||||
export async function generateAnswersWithBardWebApi(port, question, session, cookies) {
|
||||
// const { controller, messageListener } = setAbortController(port)
|
||||
// const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
const bot = new Bard(cookies)
|
||||
|
||||
// eslint-disable-next-line
|
||||
@@ -18,9 +18,11 @@ export async function generateAnswersWithBardWebApi(port, question, session, coo
|
||||
pushRecord(session, question, answer)
|
||||
console.debug('conversation history', { content: session.conversationRecords })
|
||||
// port.onMessage.removeListener(messageListener)
|
||||
// port.onDisconnect.removeListener(disconnectListener)
|
||||
port.postMessage({ answer: answer, done: true, session: session })
|
||||
} catch (err) {
|
||||
// port.onMessage.removeListener(messageListener)
|
||||
// port.onDisconnect.removeListener(disconnectListener)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ export async function generateAnswersWithBingWebApi(
|
||||
accessToken,
|
||||
sydneyMode = false,
|
||||
) {
|
||||
const { controller, messageListener } = setAbortController(port)
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
const config = await getUserConfig()
|
||||
let modelMode
|
||||
if (session.modelName.includes('-')) modelMode = session.modelName.split('-')[1]
|
||||
@@ -59,6 +59,7 @@ export async function generateAnswersWithBingWebApi(
|
||||
})
|
||||
.catch((err) => {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
throw err
|
||||
})
|
||||
|
||||
@@ -87,5 +88,6 @@ export async function generateAnswersWithBingWebApi(
|
||||
pushRecord(session, question, answer)
|
||||
console.debug('conversation history', { content: session.conversationRecords })
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
port.postMessage({ answer: answer, done: true, session: session })
|
||||
}
|
||||
|
||||
@@ -60,12 +60,13 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
|
||||
session.parentMessageId = uuidv4()
|
||||
}
|
||||
|
||||
const { controller, messageListener } = setAbortController(port, null, () => {
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port, null, () => {
|
||||
if (session.autoClean) deleteConversation(accessToken, session.conversationId)
|
||||
})
|
||||
|
||||
const models = await getModels(accessToken).catch(() => {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
})
|
||||
console.debug('models', models)
|
||||
const config = await getUserConfig()
|
||||
@@ -141,9 +142,11 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
|
||||
},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
if (resp.status === 403) {
|
||||
throw new Error('CLOUDFLARE')
|
||||
|
||||
@@ -19,7 +19,7 @@ import { getCustomApiPromptBase, pushRecord, setAbortController } from './shared
|
||||
* @param {string} modelName
|
||||
*/
|
||||
export async function generateAnswersWithCustomApi(port, question, session, apiKey, modelName) {
|
||||
const { controller, messageListener } = setAbortController(port)
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
|
||||
const config = await getUserConfig()
|
||||
const prompt = getConversationPairs(
|
||||
@@ -73,9 +73,11 @@ export async function generateAnswersWithCustomApi(port, question, session, apiK
|
||||
async onStart() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(!isEmpty(error) ? JSON.stringify(error) : `${resp.status} ${resp.statusText}`)
|
||||
|
||||
@@ -25,7 +25,7 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
apiKey,
|
||||
modelName,
|
||||
) {
|
||||
const { controller, messageListener } = setAbortController(port)
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
|
||||
const config = await getUserConfig()
|
||||
const prompt =
|
||||
@@ -74,9 +74,11 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
async onStart() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(!isEmpty(error) ? JSON.stringify(error) : `${resp.status} ${resp.statusText}`)
|
||||
@@ -92,7 +94,7 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
* @param {string} modelName
|
||||
*/
|
||||
export async function generateAnswersWithChatgptApi(port, question, session, apiKey, modelName) {
|
||||
const { controller, messageListener } = setAbortController(port)
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
|
||||
const config = await getUserConfig()
|
||||
const prompt = getConversationPairs(
|
||||
@@ -143,9 +145,11 @@ export async function generateAnswersWithChatgptApi(port, question, session, api
|
||||
async onStart() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(!isEmpty(error) ? JSON.stringify(error) : `${resp.status} ${resp.statusText}`)
|
||||
|
||||
@@ -9,10 +9,16 @@ import PoeAiClient from '../clients/poe/index.mjs'
|
||||
*/
|
||||
export async function generateAnswersWithPoeWebApi(port, question, session, modelName) {
|
||||
const bot = new PoeAiClient(session.poe_chatId)
|
||||
const { messageListener } = setAbortController(port, () => {
|
||||
bot.breakMsg()
|
||||
bot.close()
|
||||
})
|
||||
const { messageListener, disconnectListener } = setAbortController(
|
||||
port,
|
||||
() => {
|
||||
bot.close()
|
||||
},
|
||||
() => {
|
||||
bot.breakMsg()
|
||||
bot.close()
|
||||
},
|
||||
)
|
||||
|
||||
let answer = ''
|
||||
await bot
|
||||
@@ -29,12 +35,15 @@ export async function generateAnswersWithPoeWebApi(port, question, session, mode
|
||||
pushRecord(session, question, answer)
|
||||
console.debug('conversation history', { content: session.conversationRecords })
|
||||
port.onMessage.removeListener(messageListener)
|
||||
if (session.conversationRecords.length > 1)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
port.postMessage({ answer: answer, done: true, session: session })
|
||||
bot.close()
|
||||
},
|
||||
)
|
||||
.catch((err) => {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
bot.close()
|
||||
throw err
|
||||
})
|
||||
|
||||
@@ -36,7 +36,7 @@ export function setAbortController(port, onStop, onDisconnect) {
|
||||
}
|
||||
port.onDisconnect.addListener(disconnectListener)
|
||||
|
||||
return { controller, messageListener }
|
||||
return { controller, messageListener, disconnectListener }
|
||||
}
|
||||
|
||||
export function pushRecord(session, question, answer) {
|
||||
|
||||
@@ -9,7 +9,7 @@ import { isEmpty } from 'lodash-es'
|
||||
* @param {Session} session
|
||||
*/
|
||||
export async function generateAnswersWithWaylaidwandererApi(port, question, session) {
|
||||
const { controller, messageListener } = setAbortController(port)
|
||||
const { controller, messageListener, disconnectListener } = setAbortController(port)
|
||||
|
||||
const config = await getUserConfig()
|
||||
|
||||
@@ -65,9 +65,11 @@ export async function generateAnswersWithWaylaidwandererApi(port, question, sess
|
||||
async onStart() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
port.onMessage.removeListener(messageListener)
|
||||
port.onDisconnect.removeListener(disconnectListener)
|
||||
if (resp instanceof Error) throw resp
|
||||
const error = await resp.json().catch(() => ({}))
|
||||
throw new Error(!isEmpty(error) ? JSON.stringify(error) : `${resp.status} ${resp.statusText}`)
|
||||
|
||||
Reference in New Issue
Block a user