import { useQuery, useQueryClient } from "@tanstack/react-query" import { Skeleton, Radio, Form, Input } from "antd" import React from "react" import { useTranslation } from "react-i18next" import { SaveButton } from "~/components/Common/SaveButton" import { getWebSearchPrompt, geWebSearchFollowUpPrompt, setWebPrompts, promptForRag, setPromptForRag } from "~/services/ollama" export const SettingPrompt = () => { const { t } = useTranslation("settings") const [selectedValue, setSelectedValue] = React.useState<"web" | "rag">("rag") const queryClient = useQueryClient() const { status, data } = useQuery({ queryKey: ["fetchRagPrompt"], queryFn: async () => { const [prompt, webSearchPrompt, webSearchFollowUpPrompt] = await Promise.all([ promptForRag(), getWebSearchPrompt(), geWebSearchFollowUpPrompt() ]) return { prompt, webSearchPrompt, webSearchFollowUpPrompt } } }) return (
{status === "pending" && } {status === "success" && (
setSelectedValue(e.target.value)}> RAG {t("rag.prompt.option2")}
{selectedValue === "rag" && (
{ // setSystemPromptForNonRagOption(values?.prompt || "") setPromptForRag( values?.systemPrompt || "", values?.questionPrompt || "" ) queryClient.invalidateQueries({ queryKey: ["fetchRagPrompt"] }) }} initialValues={{ systemPrompt: data.prompt.ragPrompt, questionPrompt: data.prompt.ragQuestionPrompt }}>
{" "}
)} {selectedValue === "web" && (
{ setWebPrompts( values?.webSearchPrompt || "", values?.webSearchFollowUpPrompt || "" ) queryClient.invalidateQueries({ queryKey: ["fetchRagPrompt"] }) }} initialValues={{ webSearchPrompt: data.webSearchPrompt, webSearchFollowUpPrompt: data.webSearchFollowUpPrompt }}>
{" "}
)}
)}
) }