LibreChat/api/app/clients/bingai.js

85 lines
2.5 KiB
JavaScript
Raw Normal View History

require('dotenv').config();
const { KeyvFile } = require('keyv-file');
2023-03-31 03:22:57 +08:00
const askBing = async ({
text,
parentMessageId,
conversationId,
jailbreak,
jailbreakConversationId,
context,
systemMessage,
2023-03-31 03:22:57 +08:00
conversationSignature,
clientId,
invocationId,
toneStyle,
onProgress
}) => {
const { BingAIClient } = await import('@waylaidwanderer/chatgpt-api');
2023-03-31 03:22:57 +08:00
const store = {
store: new KeyvFile({ filename: './data/cache.json' })
};
2023-03-10 12:55:45 -05:00
const bingAIClient = new BingAIClient({
// "_U" cookie from bing.com
userToken: process.env.BING_TOKEN,
2023-03-10 12:55:45 -05:00
// If the above doesn't work, provide all your cookies as a string instead
// cookies: '',
debug: false,
2023-03-31 03:22:57 +08:00
cache: store,
proxy: process.env.PROXY || null
2023-03-10 12:55:45 -05:00
});
2023-03-31 03:22:57 +08:00
let options = {
jailbreakConversationId: jailbreakConversationId || jailbreak,
context,
systemMessage,
2023-03-31 03:22:57 +08:00
parentMessageId,
conversationId: jailbreakConversationId ? jailbreakConversationId : conversationId,
2023-03-31 03:22:57 +08:00
toneStyle,
onProgress
};
if (conversationSignature) options.conversationSignature = conversationSignature;
if (conversationSignature) options.clientId = clientId;
if (conversationSignature) options.invocationId = invocationId;
if (conversationSignature) options.toneStyle = toneStyle;
if (options?.jailbreakConversationId == 'false') {
options.jailbreakConversationId = false;
}
console.log('bing options', options);
const res = await bingAIClient.sendMessage(text, options);
return res;
// Example response for reference
// {
// conversationSignature: 'wwZ2GC/qRgEqP3VSNIhbPGwtno5RcuBhzZFASOM+Sxg=',
// conversationId: '51D|BingProd|026D3A4017554DE6C446798144B6337F4D47D5B76E62A31F31D0B1D0A95ED868',
// clientId: '914800201536527',
// invocationId: 1,
// conversationExpiryTime: '2023-02-15T21:48:46.2892088Z',
// response: 'Hello, this is Bing. Nice to meet you. 😊',
// details: {
// text: 'Hello, this is Bing. Nice to meet you. 😊',
// author: 'bot',
// createdAt: '2023-02-15T15:48:43.0631898+00:00',
// timestamp: '2023-02-15T15:48:43.0631898+00:00',
// messageId: '9d0c9a80-91b1-49ab-b9b1-b457dc3fe247',
// requestId: '5b252ef8-4f09-4c08-b6f5-4499d2e12fba',
// offense: 'None',
// adaptiveCards: [ [Object] ],
// sourceAttributions: [],
// feedback: { tag: null, updatedOn: null, type: 'None' },
// contentOrigin: 'DeepLeo',
// privacy: null,
// suggestedResponses: [ [Object], [Object], [Object] ]
// }
// }
};
module.exports = { askBing };