Spaces:
Runtime error
Runtime error
const Keyv = require('keyv'); | |
const { KeyvFile } = require('keyv-file'); | |
const addToCache = async ({ endpoint, endpointOption, userMessage, responseMessage }) => { | |
try { | |
const conversationsCache = new Keyv({ | |
store: new KeyvFile({ filename: './data/cache.json' }), | |
namespace: 'chatgpt', // should be 'bing' for bing/sydney | |
}); | |
const { | |
conversationId, | |
messageId: userMessageId, | |
parentMessageId: userParentMessageId, | |
text: userText, | |
} = userMessage; | |
const { | |
messageId: responseMessageId, | |
parentMessageId: responseParentMessageId, | |
text: responseText, | |
} = responseMessage; | |
let conversation = await conversationsCache.get(conversationId); | |
// used to generate a title for the conversation if none exists | |
// let isNewConversation = false; | |
if (!conversation) { | |
conversation = { | |
messages: [], | |
createdAt: Date.now(), | |
}; | |
// isNewConversation = true; | |
} | |
const roles = (options) => { | |
if (endpoint === 'openAI') { | |
return options?.chatGptLabel || 'ChatGPT'; | |
} else if (endpoint === 'bingAI') { | |
return options?.jailbreak ? 'Sydney' : 'BingAI'; | |
} | |
}; | |
let _userMessage = { | |
id: userMessageId, | |
parentMessageId: userParentMessageId, | |
role: 'User', | |
message: userText, | |
}; | |
let _responseMessage = { | |
id: responseMessageId, | |
parentMessageId: responseParentMessageId, | |
role: roles(endpointOption), | |
message: responseText, | |
}; | |
conversation.messages.push(_userMessage, _responseMessage); | |
await conversationsCache.set(conversationId, conversation); | |
} catch (error) { | |
console.error('Trouble adding to cache', error); | |
} | |
}; | |
module.exports = addToCache; | |