feat(Input/NewConversationMenu): save last selected model to localStorage

fix(getDefaultConversation.js): use last selected model from localStorage if available
This commit is contained in:
Daniel Avila 2023-04-11 21:33:14 -04:00
parent dcf2ee480b
commit e68c163ef6
2 changed files with 13 additions and 3 deletions

View file

@ -61,7 +61,11 @@ export default function NewConversationMenu() {
// save selected model to localstoreage // save selected model to localstoreage
useEffect(() => { useEffect(() => {
if (endpoint) localStorage.setItem('lastConversationSetup', JSON.stringify(conversation)); if (endpoint) {
const lastSelectedModel = JSON.parse(localStorage.getItem('lastSelectedModel')) || {};
localStorage.setItem('lastConversationSetup', JSON.stringify(conversation));
localStorage.setItem('lastSelectedModel', JSON.stringify({ ...lastSelectedModel, [endpoint] : conversation.model }));
}
}, [conversation]); }, [conversation]);
// set the current model // set the current model
@ -113,7 +117,7 @@ export default function NewConversationMenu() {
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button <Button
variant="outline" variant="outline"
className={`group relative mt-[-8px] mb-[-12px] ml-0 items-center rounded-md border-0 p-1 outline-none focus:ring-0 focus:ring-offset-0 dark:data-[state=open]:bg-opacity-50 md:left-1 md:ml-[-12px] md:pl-1`} className={`group relative mb-[-12px] ml-0 mt-[-8px] items-center rounded-md border-0 p-1 outline-none focus:ring-0 focus:ring-offset-0 dark:data-[state=open]:bg-opacity-50 md:left-1 md:ml-[-12px] md:pl-1`}
> >
{icon} {icon}
<span className="max-w-0 overflow-hidden whitespace-nowrap px-0 text-slate-600 transition-all group-hover:max-w-[80px] group-hover:px-2 group-data-[state=open]:max-w-[80px] group-data-[state=open]:px-2 dark:text-slate-300"> <span className="max-w-0 overflow-hidden whitespace-nowrap px-0 text-slate-600 transition-all group-hover:max-w-[80px] group-hover:px-2 group-data-[state=open]:max-w-[80px] group-data-[state=open]:px-2 dark:text-slate-300">

View file

@ -4,12 +4,17 @@ const buildDefaultConversation = ({
endpointsConfig = {}, endpointsConfig = {},
lastConversationSetup = {} lastConversationSetup = {}
}) => { }) => {
const lastSelectedModel = JSON.parse(localStorage.getItem('lastSelectedModel')) || {};
if (endpoint === 'azureOpenAI' || endpoint === 'openAI') { if (endpoint === 'azureOpenAI' || endpoint === 'openAI') {
conversation = { conversation = {
...conversation, ...conversation,
endpoint, endpoint,
model: model:
lastConversationSetup?.model ?? endpointsConfig[endpoint]?.availableModels?.[0] ?? 'gpt-3.5-turbo', lastConversationSetup?.model ??
lastSelectedModel[endpoint] ??
endpointsConfig[endpoint]?.availableModels?.[0] ??
'gpt-3.5-turbo',
chatGptLabel: lastConversationSetup?.chatGptLabel ?? null, chatGptLabel: lastConversationSetup?.chatGptLabel ?? null,
promptPrefix: lastConversationSetup?.promptPrefix ?? null, promptPrefix: lastConversationSetup?.promptPrefix ?? null,
temperature: lastConversationSetup?.temperature ?? 1, temperature: lastConversationSetup?.temperature ?? 1,
@ -36,6 +41,7 @@ const buildDefaultConversation = ({
endpoint, endpoint,
model: model:
lastConversationSetup?.model ?? lastConversationSetup?.model ??
lastSelectedModel[endpoint] ??
endpointsConfig[endpoint]?.availableModels?.[0] ?? endpointsConfig[endpoint]?.availableModels?.[0] ??
'text-davinci-002-render-sha' 'text-davinci-002-render-sha'
}; };