LibreChat/api/app/sydney.js

46 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-03-08 19:47:23 -05:00
require('dotenv').config();
const { KeyvFile } = require('keyv-file');
const askSydney = async ({ text, progressCallback, convo }) => {
const { BingAIClient } = await import('@waylaidwanderer/chatgpt-api');
2023-03-08 19:47:23 -05:00
const clientOptions = {
2023-03-08 19:47:23 -05:00
userToken: process.env.BING_TOKEN,
debug: false,
cache: { store: new KeyvFile({ filename: './data/cache.json' }) }
};
const cookies = process.env.BING_COOKIES;
if (cookies?.length > 0) {
clientOptions.cookies = cookies;
delete clientOptions.userToken;
}
const sydneyClient = new BingAIClient(clientOptions);
2023-03-08 19:47:23 -05:00
let options = {
jailbreakConversationId: true,
onProgress: async (partialRes) => await progressCallback(partialRes)
2023-03-08 19:47:23 -05:00
};
if (convo.parentMessageId) {
options = {
...options,
jailbreakConversationId: convo.jailbreakConversationId,
parentMessageId: convo.parentMessageId
};
2023-03-08 19:47:23 -05:00
}
console.log('sydney options', options);
const res = await sydneyClient.sendMessage(text, options);
2023-03-08 19:47:23 -05:00
return res;
// for reference:
// https://github.com/waylaidwanderer/node-chatgpt-api/blob/main/demos/use-bing-client.js
};
module.exports = { askSydney };