import { getAllModelSettings } from "@/services/model-settings" import { useStoreChatModelSettings } from "@/store/model" import { useQuery } from "@tanstack/react-query" import { Collapse, Drawer, Form, Input, InputNumber, Modal, Skeleton } from "antd" import React from "react" import { useTranslation } from "react-i18next" type Props = { open: boolean setOpen: (open: boolean) => void useDrawer?: boolean } export const CurrentChatModelSettings = ({ open, setOpen, useDrawer }: Props) => { const { t } = useTranslation("common") const [form] = Form.useForm() const cUserSettings = useStoreChatModelSettings() const { isPending: isLoading } = useQuery({ queryKey: ["fetchModelConfig2", open], queryFn: async () => { const data = await getAllModelSettings() form.setFieldsValue({ temperature: cUserSettings.temperature ?? data.temperature, topK: cUserSettings.topK ?? data.topK, topP: cUserSettings.topP ?? data.topP, keepAlive: cUserSettings.keepAlive ?? data.keepAlive, numCtx: cUserSettings.numCtx ?? data.numCtx, seed: cUserSettings.seed, numGpu: cUserSettings.numGpu ?? data.numGpu, systemPrompt: cUserSettings.systemPrompt ?? "" }) return data }, enabled: open, refetchOnMount: true }) const renderBody = () => { return ( <> {!isLoading ? (
{ Object.entries(values).forEach(([key, value]) => { cUserSettings.setX(key, value) setOpen(false) }) }} form={form} layout="vertical"> {useDrawer && ( <> )} ) } ]} /> ) : ( )} ) } if (useDrawer) { return ( setOpen(false)} width={500} title={t("currentChatModelSettings")}> {renderBody()} ) } return ( setOpen(false)} onCancel={() => setOpen(false)} footer={null}> {renderBody()} ) }