|
require('dotenv').config(); |
|
const { KeyvFile } = require('keyv-file'); |
|
|
|
const askBing = async ({ |
|
text, |
|
parentMessageId, |
|
conversationId, |
|
jailbreak, |
|
jailbreakConversationId, |
|
context, |
|
systemMessage, |
|
conversationSignature, |
|
clientId, |
|
invocationId, |
|
toneStyle, |
|
token, |
|
onProgress, |
|
}) => { |
|
const { BingAIClient } = await import('@waylaidwanderer/chatgpt-api'); |
|
const store = { |
|
store: new KeyvFile({ filename: './data/cache.json' }), |
|
}; |
|
|
|
const bingAIClient = new BingAIClient({ |
|
|
|
|
|
|
|
|
|
cookies: process.env.BINGAI_TOKEN == 'user_provided' ? token : process.env.BINGAI_TOKEN ?? null, |
|
debug: false, |
|
cache: store, |
|
host: process.env.BINGAI_HOST || null, |
|
proxy: process.env.PROXY || null, |
|
}); |
|
|
|
let options = {}; |
|
|
|
if (jailbreakConversationId == 'false') { |
|
jailbreakConversationId = false; |
|
} |
|
|
|
if (jailbreak) { |
|
options = { |
|
jailbreakConversationId: jailbreakConversationId || jailbreak, |
|
context, |
|
systemMessage, |
|
parentMessageId, |
|
toneStyle, |
|
onProgress, |
|
clientOptions: { |
|
features: { |
|
genImage: { |
|
server: { |
|
enable: true, |
|
type: 'markdown_list', |
|
}, |
|
}, |
|
}, |
|
}, |
|
}; |
|
} else { |
|
options = { |
|
conversationId, |
|
context, |
|
systemMessage, |
|
parentMessageId, |
|
toneStyle, |
|
onProgress, |
|
clientOptions: { |
|
features: { |
|
genImage: { |
|
server: { |
|
enable: true, |
|
type: 'markdown_list', |
|
}, |
|
}, |
|
}, |
|
}, |
|
}; |
|
|
|
|
|
|
|
if (conversationSignature) { |
|
options.conversationSignature = conversationSignature; |
|
options.clientId = clientId; |
|
options.invocationId = invocationId; |
|
} |
|
} |
|
|
|
console.log('bing options', options); |
|
|
|
const res = await bingAIClient.sendMessage(text, options); |
|
|
|
return res; |
|
|
|
|
|
|
|
}; |
|
|
|
module.exports = { askBing }; |
|
|