Spaces:
Runtime error
Runtime error
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({ | |
// "_U" cookie from bing.com | |
// userToken: | |
// process.env.BINGAI_TOKEN == 'user_provided' ? token : process.env.BINGAI_TOKEN ?? null, | |
// If the above doesn't work, provide all your cookies as a string instead | |
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', | |
}, | |
}, | |
}, | |
}, | |
}; | |
// don't give those parameters for new conversation | |
// for new conversation, conversationSignature always is null | |
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; | |
// for reference: | |
// https://github.com/waylaidwanderer/node-chatgpt-api/blob/main/demos/use-bing-client.js | |
}; | |
module.exports = { askBing }; | |