Feature request: Adding temperature as parameter (#513)
* Adding temperature as parameter * NEXT_PUBLIC_ prefix added * add spacing --------- Co-authored-by: Ivan Fioravanti <> Co-authored-by: Mckay Wrigley <mckaywrigley@gmail.com>
This commit is contained in:
parent
d1eb6ee29b
commit
ea1d09244a
|
@ -1,4 +1,4 @@
|
||||||
import { DEFAULT_SYSTEM_PROMPT } from '@/utils/app/const';
|
import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from '@/utils/app/const';
|
||||||
import {
|
import {
|
||||||
cleanData,
|
cleanData,
|
||||||
isExportFormatV1,
|
isExportFormatV1,
|
||||||
|
@ -102,6 +102,7 @@ describe('cleanData Functions', () => {
|
||||||
],
|
],
|
||||||
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -157,6 +158,7 @@ describe('cleanData Functions', () => {
|
||||||
],
|
],
|
||||||
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -192,6 +194,7 @@ describe('cleanData Functions', () => {
|
||||||
],
|
],
|
||||||
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -234,6 +237,7 @@ describe('cleanData Functions', () => {
|
||||||
],
|
],
|
||||||
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
model: OpenAIModels[OpenAIModelID.GPT_3_5],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
|
@ -32,6 +32,7 @@ import { ChatMessage } from './ChatMessage';
|
||||||
import { ErrorMessageDiv } from './ErrorMessageDiv';
|
import { ErrorMessageDiv } from './ErrorMessageDiv';
|
||||||
import { ModelSelect } from './ModelSelect';
|
import { ModelSelect } from './ModelSelect';
|
||||||
import { SystemPrompt } from './SystemPrompt';
|
import { SystemPrompt } from './SystemPrompt';
|
||||||
|
import { TemperatureSlider } from './Temperature';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
stopConversationRef: MutableRefObject<boolean>;
|
stopConversationRef: MutableRefObject<boolean>;
|
||||||
|
@ -97,6 +98,7 @@ export const Chat = memo(({ stopConversationRef }: Props) => {
|
||||||
messages: updatedConversation.messages,
|
messages: updatedConversation.messages,
|
||||||
key: apiKey,
|
key: apiKey,
|
||||||
prompt: updatedConversation.prompt,
|
prompt: updatedConversation.prompt,
|
||||||
|
temperature: updatedConversation.temperature
|
||||||
};
|
};
|
||||||
const endpoint = getEndpoint(plugin);
|
const endpoint = getEndpoint(plugin);
|
||||||
let body;
|
let body;
|
||||||
|
@ -421,6 +423,16 @@ export const Chat = memo(({ stopConversationRef }: Props) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<TemperatureSlider
|
||||||
|
label="Temperature"
|
||||||
|
onChangeTemperature={(temperature) =>
|
||||||
|
handleUpdateConversation(selectedConversation, {
|
||||||
|
key: 'temperature',
|
||||||
|
value: temperature,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
import { FC, useState } from 'react';
|
||||||
|
|
||||||
|
import { useTranslation } from 'next-i18next';
|
||||||
|
|
||||||
|
import { DEFAULT_TEMPERATURE } from '@/utils/app/const';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
label: string;
|
||||||
|
onChangeTemperature: (temperature: number) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const TemperatureSlider: FC<Props> = ({
|
||||||
|
label,
|
||||||
|
onChangeTemperature,
|
||||||
|
}) => {
|
||||||
|
const [temperature, setTemperature] = useState(DEFAULT_TEMPERATURE);
|
||||||
|
const { t } = useTranslation('chat');
|
||||||
|
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
|
const newValue = parseFloat(event.target.value);
|
||||||
|
setTemperature(newValue);
|
||||||
|
onChangeTemperature(newValue);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col">
|
||||||
|
<label className="mb-2 text-left text-neutral-700 dark:text-neutral-400">
|
||||||
|
{label}
|
||||||
|
</label>
|
||||||
|
<span className="text-[12px] text-black/50 dark:text-white/50 text-sm">
|
||||||
|
{t(
|
||||||
|
'Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.',
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
<span className="mt-2 mb-1 text-center">{temperature.toFixed(1)}</span>
|
||||||
|
<input
|
||||||
|
className="cursor-pointer"
|
||||||
|
type="range"
|
||||||
|
min={0}
|
||||||
|
max={1}
|
||||||
|
step={0.1}
|
||||||
|
value={temperature}
|
||||||
|
onChange={handleChange}
|
||||||
|
/>
|
||||||
|
<ul className="w mt-2 pb-8 flex justify-between px-[24px]">
|
||||||
|
<li className="relative flex justify-center">
|
||||||
|
<span className="absolute">{t('Precise')}</span>
|
||||||
|
</li>
|
||||||
|
<li className="relative flex justify-center">
|
||||||
|
<span className="absolute">{t('Neutral')}</span>
|
||||||
|
</li>
|
||||||
|
<li className="relative flex justify-center">
|
||||||
|
<span className="absolute">{t('Creative')}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
|
@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
|
||||||
|
|
||||||
import { useCreateReducer } from '@/hooks/useCreateReducer';
|
import { useCreateReducer } from '@/hooks/useCreateReducer';
|
||||||
|
|
||||||
import { DEFAULT_SYSTEM_PROMPT } from '@/utils/app/const';
|
import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from '@/utils/app/const';
|
||||||
import { saveConversation, saveConversations } from '@/utils/app/conversation';
|
import { saveConversation, saveConversations } from '@/utils/app/conversation';
|
||||||
import { saveFolders } from '@/utils/app/folders';
|
import { saveFolders } from '@/utils/app/folders';
|
||||||
import { exportData, importData } from '@/utils/app/importExport';
|
import { exportData, importData } from '@/utils/app/importExport';
|
||||||
|
@ -119,6 +119,7 @@ export const Chatbar = () => {
|
||||||
messages: [],
|
messages: [],
|
||||||
model: OpenAIModels[defaultModelId],
|
model: OpenAIModels[defaultModelId],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -160,6 +161,7 @@ export const Chatbar = () => {
|
||||||
messages: [],
|
messages: [],
|
||||||
model: OpenAIModels[defaultModelId],
|
model: OpenAIModels[defaultModelId],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { DEFAULT_SYSTEM_PROMPT } from '@/utils/app/const';
|
import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from '@/utils/app/const';
|
||||||
import { OpenAIError, OpenAIStream } from '@/utils/server';
|
import { OpenAIError, OpenAIStream } from '@/utils/server';
|
||||||
|
|
||||||
import { ChatBody, Message } from '@/types/chat';
|
import { ChatBody, Message } from '@/types/chat';
|
||||||
|
@ -15,7 +15,7 @@ export const config = {
|
||||||
|
|
||||||
const handler = async (req: Request): Promise<Response> => {
|
const handler = async (req: Request): Promise<Response> => {
|
||||||
try {
|
try {
|
||||||
const { model, messages, key, prompt } = (await req.json()) as ChatBody;
|
const { model, messages, key, prompt, temperature } = (await req.json()) as ChatBody;
|
||||||
|
|
||||||
await init((imports) => WebAssembly.instantiate(wasm, imports));
|
await init((imports) => WebAssembly.instantiate(wasm, imports));
|
||||||
const encoding = new Tiktoken(
|
const encoding = new Tiktoken(
|
||||||
|
@ -29,6 +29,11 @@ const handler = async (req: Request): Promise<Response> => {
|
||||||
promptToSend = DEFAULT_SYSTEM_PROMPT;
|
promptToSend = DEFAULT_SYSTEM_PROMPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let temperatureToUse = temperature;
|
||||||
|
if (temperatureToUse == null) {
|
||||||
|
temperatureToUse = DEFAULT_TEMPERATURE;
|
||||||
|
}
|
||||||
|
|
||||||
const prompt_tokens = encoding.encode(promptToSend);
|
const prompt_tokens = encoding.encode(promptToSend);
|
||||||
|
|
||||||
let tokenCount = prompt_tokens.length;
|
let tokenCount = prompt_tokens.length;
|
||||||
|
@ -47,7 +52,7 @@ const handler = async (req: Request): Promise<Response> => {
|
||||||
|
|
||||||
encoding.free();
|
encoding.free();
|
||||||
|
|
||||||
const stream = await OpenAIStream(model, promptToSend, key, messagesToSend);
|
const stream = await OpenAIStream(model, promptToSend, temperatureToUse, key, messagesToSend);
|
||||||
|
|
||||||
return new Response(stream);
|
return new Response(stream);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -18,6 +18,7 @@ export interface HomeInitialState {
|
||||||
selectedConversation: Conversation | undefined;
|
selectedConversation: Conversation | undefined;
|
||||||
currentMessage: Message | undefined;
|
currentMessage: Message | undefined;
|
||||||
prompts: Prompt[];
|
prompts: Prompt[];
|
||||||
|
temperature: number;
|
||||||
showChatbar: boolean;
|
showChatbar: boolean;
|
||||||
showPromptbar: boolean;
|
showPromptbar: boolean;
|
||||||
currentFolder: FolderInterface | undefined;
|
currentFolder: FolderInterface | undefined;
|
||||||
|
@ -41,6 +42,7 @@ export const initialState: HomeInitialState = {
|
||||||
selectedConversation: undefined,
|
selectedConversation: undefined,
|
||||||
currentMessage: undefined,
|
currentMessage: undefined,
|
||||||
prompts: [],
|
prompts: [],
|
||||||
|
temperature: 1,
|
||||||
showPromptbar: true,
|
showPromptbar: true,
|
||||||
showChatbar: true,
|
showChatbar: true,
|
||||||
currentFolder: undefined,
|
currentFolder: undefined,
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {
|
||||||
cleanConversationHistory,
|
cleanConversationHistory,
|
||||||
cleanSelectedConversation,
|
cleanSelectedConversation,
|
||||||
} from '@/utils/app/clean';
|
} from '@/utils/app/clean';
|
||||||
import { DEFAULT_SYSTEM_PROMPT } from '@/utils/app/const';
|
import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from '@/utils/app/const';
|
||||||
import {
|
import {
|
||||||
saveConversation,
|
saveConversation,
|
||||||
saveConversations,
|
saveConversations,
|
||||||
|
@ -67,8 +67,8 @@ const Home = ({
|
||||||
folders,
|
folders,
|
||||||
conversations,
|
conversations,
|
||||||
selectedConversation,
|
selectedConversation,
|
||||||
|
|
||||||
prompts,
|
prompts,
|
||||||
|
temperature
|
||||||
},
|
},
|
||||||
dispatch,
|
dispatch,
|
||||||
} = contextValue;
|
} = contextValue;
|
||||||
|
@ -191,6 +191,7 @@ const Home = ({
|
||||||
tokenLimit: OpenAIModels[defaultModelId].tokenLimit,
|
tokenLimit: OpenAIModels[defaultModelId].tokenLimit,
|
||||||
},
|
},
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -328,6 +329,7 @@ const Home = ({
|
||||||
messages: [],
|
messages: [],
|
||||||
model: OpenAIModels[defaultModelId],
|
model: OpenAIModels[defaultModelId],
|
||||||
prompt: DEFAULT_SYSTEM_PROMPT,
|
prompt: DEFAULT_SYSTEM_PROMPT,
|
||||||
|
temperature: DEFAULT_TEMPERATURE,
|
||||||
folderId: null,
|
folderId: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -27,5 +27,6 @@
|
||||||
|
|
||||||
"Please enter a message": "يرجى إدخال رسالة",
|
"Please enter a message": "يرجى إدخال رسالة",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI هي مجموعة متقدمة للدردشة تستخدم",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI هي مجموعة متقدمة للدردشة تستخدم",
|
||||||
"Are you sure you want to clear all messages?": "هل أنت متأكد أنك تريد مسح كافة الرسائل؟"
|
"Are you sure you want to clear all messages?": "هل أنت متأكد أنك تريد مسح كافة الرسائل؟",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "القيم الأعلى مثل 0.8 ستجعل الإخراج أكثر عشوائية، في حين أن القيم الأقل مثل 0.2 ستجعله أكثر تركيزًا وتحديدًا."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "বার্তার সর্বোচ্চ সীমা হল {{maxLength}} অক্ষর৷ আপনি {{valueLength}} অক্ষর লিখেছেন।",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "বার্তার সর্বোচ্চ সীমা হল {{maxLength}} অক্ষর৷ আপনি {{valueLength}} অক্ষর লিখেছেন।",
|
||||||
"Please enter a message": "দয়া করে একটি মেসেজ লিখুন",
|
"Please enter a message": "দয়া করে একটি মেসেজ লিখুন",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI হল OpenAI-এর চ্যাট মডেলগুলির জন্য একটি উন্নত চ্যাটবট কিট যার লক্ষ্য হল ChatGPT-এর ইন্টারফেস এবং কার্যকারিতা অনুকরণ করা।",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI হল OpenAI-এর চ্যাট মডেলগুলির জন্য একটি উন্নত চ্যাটবট কিট যার লক্ষ্য হল ChatGPT-এর ইন্টারফেস এবং কার্যকারিতা অনুকরণ করা।",
|
||||||
"Are you sure you want to clear all messages?": "সমস্ত বার্তা মুছে ফেলতে আপনি কি নিশ্চিত?"
|
"Are you sure you want to clear all messages?": "সমস্ত বার্তা মুছে ফেলতে আপনি কি নিশ্চিত?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "০.৮ এর মতো বেশি মান দিলে আউটপুট আরও যেতে যেতে একটু একটু এলোমেলো হবে, যেহেতু ০.২ এর মতো নিম্নমানের মান দিলে তা আরও ফোকাস করা হবে এবং নিশ্চয়তামূলক হবে।"
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Das Nachrichtenlimit beträgt {{maxLength}} Zeichen. Du hast bereits {{valueLength}} Zeichen eingegeben.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Das Nachrichtenlimit beträgt {{maxLength}} Zeichen. Du hast bereits {{valueLength}} Zeichen eingegeben.",
|
||||||
"Please enter a message": "Bitte gib eine Nachricht ein",
|
"Please enter a message": "Bitte gib eine Nachricht ein",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI ist ein fortschrittliches Chatbot-Toolkit für OpenAI's Chat-Modelle, das darauf abzielt, die Benutzeroberfläche und Funktionalität von ChatGPT nachzuahmen.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI ist ein fortschrittliches Chatbot-Toolkit für OpenAI's Chat-Modelle, das darauf abzielt, die Benutzeroberfläche und Funktionalität von ChatGPT nachzuahmen.",
|
||||||
"Are you sure you want to clear all messages?": "Bist du sicher, dass du alle Nachrichten löschen möchtest?"
|
"Are you sure you want to clear all messages?": "Bist du sicher, dass du alle Nachrichten löschen möchtest?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Höhere Werte wie 0,8 machen die Ausgabe zufälliger, während niedrigere Werte wie 0,2 sie fokussierter und deterministischer machen werden."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "El límite del mensaje es de {{maxLength}} caracteres. Has ingresado {{valueLength}} caracteres.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "El límite del mensaje es de {{maxLength}} caracteres. Has ingresado {{valueLength}} caracteres.",
|
||||||
"Please enter a message": "Por favor, ingrese un mensaje",
|
"Please enter a message": "Por favor, ingrese un mensaje",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI es un kit avanzado de chatbot para los modelos de chat de OpenAI que busca imitar la interfaz y funcionalidad de ChatGPT.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI es un kit avanzado de chatbot para los modelos de chat de OpenAI que busca imitar la interfaz y funcionalidad de ChatGPT.",
|
||||||
"Are you sure you want to clear all messages?": "¿Está seguro de que desea borrar todos los mensajes?"
|
"Are you sure you want to clear all messages?": "¿Está seguro de que desea borrar todos los mensajes?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Valores más altos como 0,8 harán que la salida sea más aleatoria, mientras que valores más bajos como 0,2 la harán más enfocada y determinista."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Il limite del messaggio è di {{maxLength}} caratteri. Hai inserito {{valueLength}} caratteri.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Il limite del messaggio è di {{maxLength}} caratteri. Hai inserito {{valueLength}} caratteri.",
|
||||||
"Please enter a message": "Per favore, scrivi un messaggio",
|
"Please enter a message": "Per favore, scrivi un messaggio",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI è un kit avanzato di chatbot per i modelli di chat di OpenAI che mira a imitare l'interfaccia e le funzionalità di ChatGPT.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI è un kit avanzato di chatbot per i modelli di chat di OpenAI che mira a imitare l'interfaccia e le funzionalità di ChatGPT.",
|
||||||
"Are you sure you want to clear all messages?": "Sei sicuro di voler cancellare tutti i messaggi?"
|
"Are you sure you want to clear all messages?": "Sei sicuro di voler cancellare tutti i messaggi?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Valori più alti come 0,8 renderanno l'output più casuale, mentre valori più bassi come 0,2 lo renderanno più focalizzato e deterministico."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "メッセージの文字数は{{maxLength}}文字までです。あなたは{{valueLength}}文字を入力しました。",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "メッセージの文字数は{{maxLength}}文字までです。あなたは{{valueLength}}文字を入力しました。",
|
||||||
"Please enter a message": "メッセージを入力してください",
|
"Please enter a message": "メッセージを入力してください",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UIは、ChatGPTと同様のインターフェイスと機能を実現するための、チャットボットキットです。",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UIは、ChatGPTと同様のインターフェイスと機能を実現するための、チャットボットキットです。",
|
||||||
"Are you sure you want to clear all messages?": "すべてのメッセージを削除してもよろしいですか?"
|
"Are you sure you want to clear all messages?": "すべてのメッセージを削除してもよろしいですか?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "0.8のような高い値は出力をよりランダムにし、0.2のような低い値はより焦点を絞り、決定論的にします。"
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "메시지 제한은 {{maxLength}}자입니다. {{valueLength}}자를 입력했습니다.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "메시지 제한은 {{maxLength}}자입니다. {{valueLength}}자를 입력했습니다.",
|
||||||
"Please enter a message": "메시지를 입력하세요",
|
"Please enter a message": "메시지를 입력하세요",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI는 ChatGPT의 인터페이스와 기능을 모방하는 것을 목표로 둔 OpenAI의 채팅 모델들을 위한 고급 챗봇 키트입니다.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI는 ChatGPT의 인터페이스와 기능을 모방하는 것을 목표로 둔 OpenAI의 채팅 모델들을 위한 고급 챗봇 키트입니다.",
|
||||||
"Are you sure you want to clear all messages?": "모든 메시지를 지우시겠습니까?"
|
"Are you sure you want to clear all messages?": "모든 메시지를 지우시겠습니까?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "0.8과 같은 높은 값은 출력을 더 무작위로 만들고, 0.2와 같은 낮은 값은 더 집중적이고 결정론적으로 만들어줍니다."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "O limite de mensagens é de {{maxLength}} caracteres. Você inseriu {{valueLength}} caracteres",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "O limite de mensagens é de {{maxLength}} caracteres. Você inseriu {{valueLength}} caracteres",
|
||||||
"Please enter a message": "Por favor, insira uma mensagem",
|
"Please enter a message": "Por favor, insira uma mensagem",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI é um kit de chatbot avançado para os modelos de chat do OpenAI com o objetivo de imitar a interface e a funcionalidade do ChatGPT.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI é um kit de chatbot avançado para os modelos de chat do OpenAI com o objetivo de imitar a interface e a funcionalidade do ChatGPT.",
|
||||||
"Are you sure you want to clear all messages?": "Tem certeza de que deseja limpar todas as mensagens?"
|
"Are you sure you want to clear all messages?": "Tem certeza de que deseja limpar todas as mensagens?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Valores mais altos como 0,8 tornarão a saída mais aleatória, enquanto valores mais baixos como 0,2 a tornarão mais focada e determinística."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,7 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Limita mesajelor este de {{maxLength}} caractere. Ați introdus {{valueLength}} caractere.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Limita mesajelor este de {{maxLength}} caractere. Ați introdus {{valueLength}} caractere.",
|
||||||
"Please enter a message": "Vă rugăm să scrieți un mesaj",
|
"Please enter a message": "Vă rugăm să scrieți un mesaj",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI este un kit de chatbot avansat pentru șabloanele de chat OpenAI, care își propune să imite interfața și funcționalitatea ChatGPT.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI este un kit de chatbot avansat pentru șabloanele de chat OpenAI, care își propune să imite interfața și funcționalitatea ChatGPT.",
|
||||||
"Are you sure you want to clear all messages?": "Sigur doriți să ștergeți toate mesajele?"
|
"Are you sure you want to clear all messages?": "Sigur doriți să ștergeți toate mesajele?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Valori mai mari, cum ar fi 0,8, vor face ieșirea mai aleatorie, în timp ce valori mai mici, cum ar fi 0,2, o vor face mai concentrată și deterministă."
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Лимит сообщения: {{maxLength}} символов. Вы ввели {{valueLength}} символов.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Лимит сообщения: {{maxLength}} символов. Вы ввели {{valueLength}} символов.",
|
||||||
"Please enter a message": "Пожалуйста введите сообщение",
|
"Please enter a message": "Пожалуйста введите сообщение",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI - продвинутый интерфейс чатбота для чат-моделей OpenAI, имитирующий интерфейс ChatGPT",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI - продвинутый интерфейс чатбота для чат-моделей OpenAI, имитирующий интерфейс ChatGPT",
|
||||||
"Are you sure you want to clear all messages?": "Вы уверены, что хотите удалить все сообщения?"
|
"Are you sure you want to clear all messages?": "Вы уверены, что хотите удалить все сообщения?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Более высокие значения, такие как 0,8, сделают вывод более случайным, в то время как более низкие значения, например, 0,2, сделают его более фокусированным и детерминированным."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "පණිවිඩ සීමාව අකුරු {{maxLength}} කි. ඔබ අක්ෂර {{valueLength}} ඇතුළත් කර ඇත.।",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "පණිවිඩ සීමාව අකුරු {{maxLength}} කි. ඔබ අක්ෂර {{valueLength}} ඇතුළත් කර ඇත.।",
|
||||||
"Please enter a message": "කරුණාකර පණිවිඩයක් ඇතුළු කරන්න",
|
"Please enter a message": "කරුණාකර පණිවිඩයක් ඇතුළු කරන්න",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI යනු ChatGPT හි අතුරු මුහුණත සහ ක්රියාකාරීත්වය අනුකරණය කිරීම අරමුණු කරගත් OpenAI හි චැට් මාදිලි සඳහා වන උසස් චැට්බෝට් කට්ටලයකි.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI යනු ChatGPT හි අතුරු මුහුණත සහ ක්රියාකාරීත්වය අනුකරණය කිරීම අරමුණු කරගත් OpenAI හි චැට් මාදිලි සඳහා වන උසස් චැට්බෝට් කට්ටලයකි.",
|
||||||
"Are you sure you want to clear all messages?": "ඔබට සියලු පණිවිඩ හිස් කිරීමට අවශ්ය බව විශ්වාසද?"
|
"Are you sure you want to clear all messages?": "ඔබට සියලු පණිවිඩ හිස් කිරීමට අවශ්ය බව විශ්වාසද?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "0.8 ආකෘතිය ඉහළට පිරිමිතුරු වර්ණයෙන් තිබේ විය යුතුය, නමුත් 0.2 ආකෘතිය අවම වශයෙන් එය විශේෂිත හා නිර්ණායක වනු ඇත."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Meddelandegränsen är {{maxLength}} tecken. Du har angett {{valueLength}} tecken.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Meddelandegränsen är {{maxLength}} tecken. Du har angett {{valueLength}} tecken.",
|
||||||
"Please enter a message": "Vänligen ange ett meddelande",
|
"Please enter a message": "Vänligen ange ett meddelande",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI är ett avancerat chatbot-kit för OpenAI:s chattmodeller som syftar till att efterlikna ChatGPT:s gränssnitt och funktionalitet.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI är ett avancerat chatbot-kit för OpenAI:s chattmodeller som syftar till att efterlikna ChatGPT:s gränssnitt och funktionalitet.",
|
||||||
"Are you sure you want to clear all messages?": "Är du säker på att du vill rensa alla meddelanden?"
|
"Are you sure you want to clear all messages?": "Är du säker på att du vill rensa alla meddelanden?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Högre värden som 0,8 kommer att göra utdata mer slumpmässig, medan lägre värden som 0,2 kommer att göra den mer fokuserad och deterministisk."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "సందేశం పరిమితి {{maxLength}} అక్షరాలు. మీరు {{valueLength}} అక్షరాలు నమోదు చేసారు.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "సందేశం పరిమితి {{maxLength}} అక్షరాలు. మీరు {{valueLength}} అక్షరాలు నమోదు చేసారు.",
|
||||||
"Please enter a message": "దయచేసి ఒక సందేశం నమోదు చేయండి",
|
"Please enter a message": "దయచేసి ఒక సందేశం నమోదు చేయండి",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI ఒక అభ్యంతర సంవిధానం మరియు కార్యాచరణ లక్ష్యం తీసుకున్న OpenAI ఛాట్ మోడల్లలో మార్పులు చేయడానికి ప్రయత్నిస్తుంది, ChatGPT ఇంటర్ఫేస్ మరియు కార్యాచరణను అనుకరించడానికి.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI ఒక అభ్యంతర సంవిధానం మరియు కార్యాచరణ లక్ష్యం తీసుకున్న OpenAI ఛాట్ మోడల్లలో మార్పులు చేయడానికి ప్రయత్నిస్తుంది, ChatGPT ఇంటర్ఫేస్ మరియు కార్యాచరణను అనుకరించడానికి.",
|
||||||
"Are you sure you want to clear all messages?": "మీరు అన్ని సందేశాలను తొలగించాలా?"
|
"Are you sure you want to clear all messages?": "మీరు అన్ని సందేశాలను తొలగించాలా?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "0.8 పైకి ఉన్న పెరిగిన విలువలు ఎక్కువగా విస్తరించినట్లుగా ఉంటాయి, మరియు 0.2 పైకి ఉన్న తక్కువ విలువలు కేంద్రీకృతం మరియు నిర్ణయాత్మకంగా మార్చవచ్చు."
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,5 +24,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Giới hạn tin nhắn là {{maxLength}} ký tự. Bạn đã nhập {{valueLength}} ký tự.",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "Giới hạn tin nhắn là {{maxLength}} ký tự. Bạn đã nhập {{valueLength}} ký tự.",
|
||||||
"Please enter a message": "Vui lòng nhập một tin nhắn",
|
"Please enter a message": "Vui lòng nhập một tin nhắn",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI là một bộ công cụ chatbot tiên tiến cho các mô hình chat của OpenAI nhằm mô phỏng giao diện và chức năng của ChatGPT.",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI là một bộ công cụ chatbot tiên tiến cho các mô hình chat của OpenAI nhằm mô phỏng giao diện và chức năng của ChatGPT.",
|
||||||
"Are you sure you want to clear all messages?": "Bạn có chắc chắn muốn xóa tất cả tin nhắn không?"
|
"Are you sure you want to clear all messages?": "Bạn có chắc chắn muốn xóa tất cả tin nhắn không?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "Các giá trị cao hơn như 0,8 sẽ làm cho đầu ra ngẫu nhiên hơn, trong khi các giá trị thấp hơn như 0,2 sẽ làm cho đầu ra tập trung và xác định hơn."
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,5 +25,6 @@
|
||||||
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "消息字数限制为 {{maxLength}} 个字符。您已输入 {{valueLength}} 个字符。",
|
"Message limit is {{maxLength}} characters. You have entered {{valueLength}} characters.": "消息字数限制为 {{maxLength}} 个字符。您已输入 {{valueLength}} 个字符。",
|
||||||
"Please enter a message": "请输入一条消息",
|
"Please enter a message": "请输入一条消息",
|
||||||
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI 是一个高级聊天机器人工具包,旨在模仿 OpenAI 聊天模型的 ChatGPT 界面和功能。",
|
"Chatbot UI is an advanced chatbot kit for OpenAI's chat models aiming to mimic ChatGPT's interface and functionality.": "Chatbot UI 是一个高级聊天机器人工具包,旨在模仿 OpenAI 聊天模型的 ChatGPT 界面和功能。",
|
||||||
"Are you sure you want to clear all messages?": "你确定要清除所有的消息吗?"
|
"Are you sure you want to clear all messages?": "你确定要清除所有的消息吗?",
|
||||||
|
"Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.": "较高的数值(例如0.8)会使输出更随机,而较低的数值(例如0.2)会使输出更加聚焦和确定性更强。"
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ export interface ChatBody {
|
||||||
messages: Message[];
|
messages: Message[];
|
||||||
key: string;
|
key: string;
|
||||||
prompt: string;
|
prompt: string;
|
||||||
|
temperature: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Conversation {
|
export interface Conversation {
|
||||||
|
@ -20,5 +21,6 @@ export interface Conversation {
|
||||||
messages: Message[];
|
messages: Message[];
|
||||||
model: OpenAIModel;
|
model: OpenAIModel;
|
||||||
prompt: string;
|
prompt: string;
|
||||||
|
temperature: number;
|
||||||
folderId: string | null;
|
folderId: string | null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Conversation } from '@/types/chat';
|
import { Conversation } from '@/types/chat';
|
||||||
import { OpenAIModelID, OpenAIModels } from '@/types/openai';
|
import { OpenAIModelID, OpenAIModels } from '@/types/openai';
|
||||||
|
|
||||||
import { DEFAULT_SYSTEM_PROMPT } from './const';
|
import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from './const';
|
||||||
|
|
||||||
export const cleanSelectedConversation = (conversation: Conversation) => {
|
export const cleanSelectedConversation = (conversation: Conversation) => {
|
||||||
// added model for each conversation (3/20/23)
|
// added model for each conversation (3/20/23)
|
||||||
|
@ -27,6 +27,13 @@ export const cleanSelectedConversation = (conversation: Conversation) => {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!updatedConversation.temperature) {
|
||||||
|
updatedConversation = {
|
||||||
|
...updatedConversation,
|
||||||
|
temperature: updatedConversation.temperature || DEFAULT_TEMPERATURE,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (!updatedConversation.folderId) {
|
if (!updatedConversation.folderId) {
|
||||||
updatedConversation = {
|
updatedConversation = {
|
||||||
...updatedConversation,
|
...updatedConversation,
|
||||||
|
@ -58,6 +65,10 @@ export const cleanConversationHistory = (history: any[]): Conversation[] => {
|
||||||
conversation.prompt = DEFAULT_SYSTEM_PROMPT;
|
conversation.prompt = DEFAULT_SYSTEM_PROMPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!conversation.temperature) {
|
||||||
|
conversation.temperature = DEFAULT_TEMPERATURE;
|
||||||
|
}
|
||||||
|
|
||||||
if (!conversation.folderId) {
|
if (!conversation.folderId) {
|
||||||
conversation.folderId = null;
|
conversation.folderId = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
export const DEFAULT_SYSTEM_PROMPT =
|
export const DEFAULT_SYSTEM_PROMPT =
|
||||||
process.env.DEFAULT_SYSTEM_PROMPT ||
|
process.env.NEXT_PUBLIC_DEFAULT_SYSTEM_PROMPT ||
|
||||||
"You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully. Respond using markdown.";
|
"You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully. Respond using markdown.";
|
||||||
|
|
||||||
export const OPENAI_API_HOST =
|
export const OPENAI_API_HOST =
|
||||||
process.env.OPENAI_API_HOST || 'https://api.openai.com';
|
process.env.OPENAI_API_HOST || 'https://api.openai.com';
|
||||||
|
|
||||||
|
export const DEFAULT_TEMPERATURE =
|
||||||
|
parseFloat(process.env.NEXT_PUBLIC_DEFAULT_TEMPERATURE || "1");
|
||||||
|
|
||||||
export const OPENAI_API_TYPE =
|
export const OPENAI_API_TYPE =
|
||||||
process.env.OPENAI_API_TYPE || 'openai';
|
process.env.OPENAI_API_TYPE || 'openai';
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ export class OpenAIError extends Error {
|
||||||
export const OpenAIStream = async (
|
export const OpenAIStream = async (
|
||||||
model: OpenAIModel,
|
model: OpenAIModel,
|
||||||
systemPrompt: string,
|
systemPrompt: string,
|
||||||
|
temperature : number,
|
||||||
key: string,
|
key: string,
|
||||||
messages: Message[],
|
messages: Message[],
|
||||||
) => {
|
) => {
|
||||||
|
@ -57,7 +58,7 @@ export const OpenAIStream = async (
|
||||||
...messages,
|
...messages,
|
||||||
],
|
],
|
||||||
max_tokens: 1000,
|
max_tokens: 1000,
|
||||||
temperature: 1,
|
temperature: temperature,
|
||||||
stream: true,
|
stream: true,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue