LibreChat/client/src/utils/buildPresetByConversation.js
Daniel Avila aa4fd57459 feat(chatgpt-browser): add support for multiple GPT models
This commit adds support for multiple GPT models in the chatGPT-browser
client. The available models are now stored in a Map object, which maps
the model label to its corresponding model.

The commit adds a new component, ChatGPTOptions, to the client
UI to allow the user to select the GPT model to use in the chat. The
component is only displayed when the chatGPT-browser endpoint is
selected.
2023-04-02 14:34:12 -04:00

56 lines
1.5 KiB
JavaScript

const buildPresetByConversation = ({ title, conversation, ...others }) => {
const { endpoint } = conversation;
let preset = {};
if (endpoint === 'azureOpenAI' || endpoint === 'openAI') {
preset = {
endpoint,
model: conversation?.model || 'gpt-3.5-turbo',
chatGptLabel: conversation?.chatGptLabel || null,
promptPrefix: conversation?.promptPrefix || null,
temperature: conversation?.temperature || 1,
top_p: conversation?.top_p || 1,
presence_penalty: conversation?.presence_penalty || 0,
frequency_penalty: conversation?.frequency_penalty || 0,
title,
...others
};
} else if (endpoint === 'bingAI') {
preset = {
endpoint,
jailbreak: conversation?.jailbreak || false,
jailbreakConversationId: conversation?.jailbreakConversationId || null,
conversationSignature: null,
clientId: null,
invocationId: 1,
toneStyle: conversation?.toneStyle || 'fast',
title,
...others
};
} else if (endpoint === 'chatGPTBrowser') {
preset = {
endpoint,
model: conversation?.model || 'Default (GPT-3.5)',
title,
...others
};
} else if (endpoint === null) {
preset = {
...conversation,
endpoint,
title,
...others
};
} else {
console.error(`Unknown endpoint ${endpoint}`);
preset = {
endpoint: null,
title,
...others
};
}
return preset;
};
export default buildPresetByConversation;