mirror of
https://github.com/wassname/chatGPTBox.git
synced 2026-07-26 13:18:44 +08:00
feat: stop generating answers
This commit is contained in:
@@ -53,13 +53,24 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
|
||||
}
|
||||
|
||||
const controller = new AbortController()
|
||||
const stopListener = (msg) => {
|
||||
if (msg.stop) {
|
||||
console.debug('stop generating')
|
||||
port.postMessage({ done: true })
|
||||
controller.abort()
|
||||
port.onMessage.removeListener(stopListener)
|
||||
}
|
||||
}
|
||||
port.onMessage.addListener(stopListener)
|
||||
port.onDisconnect.addListener(() => {
|
||||
console.debug('port disconnected')
|
||||
controller.abort()
|
||||
deleteConversation()
|
||||
})
|
||||
|
||||
const models = await getModels(accessToken).catch(() => {})
|
||||
const models = await getModels(accessToken).catch(() => {
|
||||
port.onMessage.removeListener(stopListener)
|
||||
})
|
||||
const config = await getUserConfig()
|
||||
|
||||
let answer = ''
|
||||
@@ -112,8 +123,12 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
|
||||
async onStart() {
|
||||
// sendModerations(accessToken, question, session.conversationId, session.messageId)
|
||||
},
|
||||
async onEnd() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(stopListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
if (resp instanceof Error) throw resp
|
||||
port.onMessage.removeListener(stopListener)
|
||||
if (resp.status === 403) {
|
||||
throw new Error('CLOUDFLARE')
|
||||
}
|
||||
|
||||
@@ -35,6 +35,15 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
modelName,
|
||||
) {
|
||||
const controller = new AbortController()
|
||||
const stopListener = (msg) => {
|
||||
if (msg.stop) {
|
||||
console.debug('stop generating')
|
||||
port.postMessage({ done: true })
|
||||
controller.abort()
|
||||
port.onMessage.removeListener(stopListener)
|
||||
}
|
||||
}
|
||||
port.onMessage.addListener(stopListener)
|
||||
port.onDisconnect.addListener(() => {
|
||||
console.debug('port disconnected')
|
||||
controller.abort()
|
||||
@@ -79,8 +88,12 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
port.postMessage({ answer: answer, done: false, session: null })
|
||||
},
|
||||
async onStart() {},
|
||||
async onEnd() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(stopListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
if (resp instanceof Error) throw resp
|
||||
port.onMessage.removeListener(stopListener)
|
||||
if (resp.status === 403) {
|
||||
throw new Error('CLOUDFLARE')
|
||||
}
|
||||
@@ -99,6 +112,15 @@ export async function generateAnswersWithGptCompletionApi(
|
||||
*/
|
||||
export async function generateAnswersWithChatgptApi(port, question, session, apiKey, modelName) {
|
||||
const controller = new AbortController()
|
||||
const stopListener = (msg) => {
|
||||
if (msg.stop) {
|
||||
console.debug('stop generating')
|
||||
port.postMessage({ done: true })
|
||||
controller.abort()
|
||||
port.onMessage.removeListener(stopListener)
|
||||
}
|
||||
}
|
||||
port.onMessage.addListener(stopListener)
|
||||
port.onDisconnect.addListener(() => {
|
||||
console.debug('port disconnected')
|
||||
controller.abort()
|
||||
@@ -142,8 +164,12 @@ export async function generateAnswersWithChatgptApi(port, question, session, api
|
||||
port.postMessage({ answer: answer, done: false, session: null })
|
||||
},
|
||||
async onStart() {},
|
||||
async onEnd() {},
|
||||
async onEnd() {
|
||||
port.onMessage.removeListener(stopListener)
|
||||
},
|
||||
async onError(resp) {
|
||||
if (resp instanceof Error) throw resp
|
||||
port.onMessage.removeListener(stopListener)
|
||||
if (resp.status === 403) {
|
||||
throw new Error('CLOUDFLARE')
|
||||
}
|
||||
|
||||
@@ -51,8 +51,9 @@ Browser.runtime.onConnect.addListener((port) => {
|
||||
console.debug('connected')
|
||||
port.onMessage.addListener(async (msg) => {
|
||||
console.debug('received msg', msg)
|
||||
const config = await getUserConfig()
|
||||
const session = msg.session
|
||||
if (!session) return
|
||||
const config = await getUserConfig()
|
||||
if (session.useApiKey == null) {
|
||||
session.useApiKey = isUsingApiKey(config)
|
||||
}
|
||||
@@ -84,8 +85,10 @@ Browser.runtime.onConnect.addListener((port) => {
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
port.postMessage({ error: err.message })
|
||||
cache.delete(KEY_ACCESS_TOKEN)
|
||||
if (!err.message.includes('aborted')) {
|
||||
port.postMessage({ error: err.message })
|
||||
cache.delete(KEY_ACCESS_TOKEN)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user