import { useQuery } from "@tanstack/react-query" import React from "react" import { getOllamaURL, systemPromptForNonRag, promptForRag, setOllamaURL as saveOllamaURL, setPromptForRag, setSystemPromptForNonRag } from "~services/ollama" import { Skeleton, Radio, Select } from "antd" import { useDarkMode } from "~hooks/useDarkmode" import { SaveButton } from "~components/Common/SaveButton" import { Moon, Sun } from "lucide-react" import { SUPPORTED_LANGUAGES } from "~utils/supporetd-languages" import { useMessage } from "~hooks/useMessage" export const SettingsBody = () => { const [ollamaURL, setOllamaURL] = React.useState("") const [systemPrompt, setSystemPrompt] = React.useState("") const [ragPrompt, setRagPrompt] = React.useState("") const [ragQuestionPrompt, setRagQuestionPrompt] = React.useState("") const [selectedValue, setSelectedValue] = React.useState<"normal" | "rag">( "normal" ) const { speechToTextLanguage, setSpeechToTextLanguage } = useMessage() const { mode, toggleDarkMode } = useDarkMode() const { data, status } = useQuery({ queryKey: ["sidebarSettings"], queryFn: async () => { const [ollamaURL, systemPrompt, ragPrompt] = await Promise.all([ getOllamaURL(), systemPromptForNonRag(), promptForRag() ]) return { url: ollamaURL, normalSystemPrompt: systemPrompt, ragSystemPrompt: ragPrompt.ragPrompt, ragQuestionPrompt: ragPrompt.ragQuestionPrompt } } }) React.useEffect(() => { if (data) { setOllamaURL(data.url) setSystemPrompt(data.normalSystemPrompt) setRagPrompt(data.ragSystemPrompt) setRagQuestionPrompt(data.ragQuestionPrompt) } }, [data]) if (status === "pending") { return (
) } if (status === "error") { return
Error
} return (

Prompt

setSelectedValue(e.target.value)}> Normal Rag
{selectedValue === "normal" && (
System Prompt