mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
feat: 遇到风控直接返回
This commit is contained in:
parent
9377d66b47
commit
211ccba00a
2 changed files with 29 additions and 5 deletions
|
|
@ -136,6 +136,9 @@ export default class SydneyAIClient {
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.warn(err)
|
logger.warn(err)
|
||||||
retryTimes--
|
retryTimes--
|
||||||
|
if (retryTimes === 0) {
|
||||||
|
throw new Error(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} while (retryTimes > 0)
|
} while (retryTimes > 0)
|
||||||
ws.on('error', console.error)
|
ws.on('error', console.error)
|
||||||
|
|
@ -288,7 +291,9 @@ export default class SydneyAIClient {
|
||||||
conversation.messages.push(userMessage)
|
conversation.messages.push(userMessage)
|
||||||
|
|
||||||
const ws = await this.createWebSocketConnection()
|
const ws = await this.createWebSocketConnection()
|
||||||
|
if (Config.debug) {
|
||||||
|
logger.mark('sydney websocket constructed successful')
|
||||||
|
}
|
||||||
const obj = {
|
const obj = {
|
||||||
arguments: [
|
arguments: [
|
||||||
{
|
{
|
||||||
|
|
@ -369,7 +374,7 @@ export default class SydneyAIClient {
|
||||||
reject('Request aborted')
|
reject('Request aborted')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
let apology = false
|
||||||
ws.on('message', (data) => {
|
ws.on('message', (data) => {
|
||||||
const objects = data.toString().split('')
|
const objects = data.toString().split('')
|
||||||
const events = objects.map((object) => {
|
const events = objects.map((object) => {
|
||||||
|
|
@ -385,13 +390,28 @@ export default class SydneyAIClient {
|
||||||
const event = events[0]
|
const event = events[0]
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case 1: {
|
case 1: {
|
||||||
if (stopTokenFound) {
|
if (stopTokenFound || apology) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const messages = event?.arguments?.[0]?.messages
|
const messages = event?.arguments?.[0]?.messages
|
||||||
if (!messages?.length || messages[0].author !== 'bot') {
|
if (!messages?.length || messages[0].author !== 'bot') {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
const message = messages.length ? messages[messages.length - 1] : null
|
||||||
|
if (messages[0].contentOrigin === 'Apology') {
|
||||||
|
console.log('Apology found')
|
||||||
|
stopTokenFound = true
|
||||||
|
clearTimeout(messageTimeout)
|
||||||
|
clearTimeout(firstTimeout)
|
||||||
|
this.cleanupWebSocketConnection(ws)
|
||||||
|
message.adaptiveCards[0].body[0].text = replySoFar
|
||||||
|
message.text = replySoFar
|
||||||
|
resolve({
|
||||||
|
message,
|
||||||
|
conversationExpiryTime: event?.item?.conversationExpiryTime
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
const updatedText = messages[0].text
|
const updatedText = messages[0].text
|
||||||
if (!updatedText || updatedText === replySoFar) {
|
if (!updatedText || updatedText === replySoFar) {
|
||||||
return
|
return
|
||||||
|
|
@ -400,7 +420,7 @@ export default class SydneyAIClient {
|
||||||
const difference = updatedText.substring(replySoFar.length)
|
const difference = updatedText.substring(replySoFar.length)
|
||||||
onProgress(difference)
|
onProgress(difference)
|
||||||
if (updatedText.trim().endsWith(stopToken)) {
|
if (updatedText.trim().endsWith(stopToken)) {
|
||||||
stopTokenFound = true
|
apology = true
|
||||||
// remove stop token from updated text
|
// remove stop token from updated text
|
||||||
replySoFar = updatedText.replace(stopToken, '').trim()
|
replySoFar = updatedText.replace(stopToken, '').trim()
|
||||||
return
|
return
|
||||||
|
|
@ -409,7 +429,11 @@ export default class SydneyAIClient {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
case 2: {
|
case 2: {
|
||||||
|
if (apology) {
|
||||||
|
return
|
||||||
|
}
|
||||||
clearTimeout(messageTimeout)
|
clearTimeout(messageTimeout)
|
||||||
|
clearTimeout(firstTimeout)
|
||||||
this.cleanupWebSocketConnection(ws)
|
this.cleanupWebSocketConnection(ws)
|
||||||
if (event.item?.result?.value === 'InvalidSession') {
|
if (event.item?.result?.value === 'InvalidSession') {
|
||||||
reject(`${event.item.result.value}: ${event.item.result.message}`)
|
reject(`${event.item.result.value}: ${event.item.result.message}`)
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ const defaultConfig = {
|
||||||
noiseScaleW: 0.668,
|
noiseScaleW: 0.668,
|
||||||
lengthScale: 1.2,
|
lengthScale: 1.2,
|
||||||
initiativeChatGroups: [],
|
initiativeChatGroups: [],
|
||||||
version: 'v2.1.1'
|
version: 'v2.1.2'
|
||||||
}
|
}
|
||||||
const _path = process.cwd()
|
const _path = process.cwd()
|
||||||
let config = {}
|
let config = {}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue