added persistent storage for the settings

This commit is contained in:
overcuriousity 2024-07-18 21:54:02 +02:00
parent 9bfe56f7ce
commit 5b882f4e13
5 changed files with 89 additions and 10 deletions

View file

@ -21,6 +21,25 @@ export type Message = {
sources?: Document[];
};
const fetchSettings = async () => {
try {
const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/settings`);
const settings = await res.json();
if (settings) {
localStorage.setItem('chatModelProvider', settings.chatModelProvider);
localStorage.setItem('chatModel', settings.chatModel);
localStorage.setItem('embeddingModelProvider', settings.embeddingModelProvider);
localStorage.setItem('embeddingModel', settings.embeddingModel);
localStorage.setItem('openAIApiKey', settings.openAIApiKey);
localStorage.setItem('openAIBaseURL', settings.openAIBaseURL);
}
} catch (err) {
console.error('Failed to fetch settings:', err);
}
};
const useSocket = (
url: string,
setIsWSReady: (ready: boolean) => void,
@ -31,6 +50,8 @@ const useSocket = (
useEffect(() => {
if (!ws) {
const connectWs = async () => {
await fetchSettings();
let chatModel = localStorage.getItem('chatModel');
let chatModelProvider = localStorage.getItem('chatModelProvider');
let embeddingModel = localStorage.getItem('embeddingModel');
@ -306,6 +327,9 @@ const ChatWindow = ({ id }: { id?: string }) => {
const messagesRef = useRef<Message[]>([]);
useEffect(() => {
fetchSettings();
}, []);
useEffect(() => {
messagesRef.current = messages;
}, [messages]);