mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
fix: adjust custom client for new progress CB
This commit is contained in:
parent
6192c2964e
commit
6e32f71565
2 changed files with 2 additions and 43 deletions
|
|
@ -9,7 +9,7 @@ const clientOptions = {
|
||||||
debug: false
|
debug: false
|
||||||
};
|
};
|
||||||
|
|
||||||
const customClient = async ({ text, progressCallback, convo, promptPrefix, chatGptLabel }) => {
|
const customClient = async ({ text, onProgress, convo, promptPrefix, chatGptLabel }) => {
|
||||||
const ChatGPTClient = (await import('@waylaidwanderer/chatgpt-api')).default;
|
const ChatGPTClient = (await import('@waylaidwanderer/chatgpt-api')).default;
|
||||||
const store = {
|
const store = {
|
||||||
store: new KeyvFile({ filename: './data/cache.json' })
|
store: new KeyvFile({ filename: './data/cache.json' })
|
||||||
|
|
@ -23,10 +23,7 @@ const customClient = async ({ text, progressCallback, convo, promptPrefix, chatG
|
||||||
|
|
||||||
const client = new ChatGPTClient(process.env.OPENAI_KEY, clientOptions, store);
|
const client = new ChatGPTClient(process.env.OPENAI_KEY, clientOptions, store);
|
||||||
|
|
||||||
let options = {
|
let options = { onProgress };
|
||||||
onProgress: async (partialRes) => await progressCallback(partialRes)
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!!convo.parentMessageId && !!convo.conversationId) {
|
if (!!convo.parentMessageId && !!convo.conversationId) {
|
||||||
options = { ...options, ...convo };
|
options = { ...options, ...convo };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
require('dotenv').config();
|
|
||||||
const Keyv = require('keyv');
|
|
||||||
const { Configuration, OpenAIApi } = require('openai');
|
|
||||||
const messageStore = new Keyv(process.env.MONGODB_URI, { namespace: 'chatgpt' });
|
|
||||||
|
|
||||||
const ask = async (question, progressCallback, convo) => {
|
|
||||||
const { ChatGPTAPI } = await import('chatgpt');
|
|
||||||
const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_KEY, messageStore });
|
|
||||||
let options = {
|
|
||||||
onProgress: async (partialRes) => {
|
|
||||||
if (partialRes.text.length > 0) {
|
|
||||||
await progressCallback(partialRes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!!convo.parentMessageId && !!convo.conversationId) {
|
|
||||||
options = { ...options, ...convo };
|
|
||||||
}
|
|
||||||
|
|
||||||
const res = await api.sendMessage(question, options);
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
|
|
||||||
const titleConvo = async (message, response, model) => {
|
|
||||||
const configuration = new Configuration({
|
|
||||||
apiKey: process.env.OPENAI_KEY
|
|
||||||
});
|
|
||||||
const openai = new OpenAIApi(configuration);
|
|
||||||
const completion = await openai.createCompletion({
|
|
||||||
model: 'text-davinci-002',
|
|
||||||
prompt: `Write a short title in title case, ideally in 5 words or less, and do not refer to the user or ${model}, that summarizes this conversation:\nUser:"${message}"\n${model}:"${response}"\nTitle: `
|
|
||||||
});
|
|
||||||
|
|
||||||
return completion.data.choices[0].text.replace(/\n/g, '');
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = { ask, titleConvo };
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue