// components/PhoneInput.tsx import { Button, Divider, FormControl, FormLabel, HStack, Icon, Input, Table, TableContainer, Tbody, Textarea, Th, Thead, Tr, VStack, } from "@chakra-ui/react"; import { TbMathMax, TbPrompt } from "react-icons/tb"; import { FaDraft2Digital } from "react-icons/fa"; import { FaPlay } from "react-icons/fa"; import { useForm } from "react-hook-form"; import ResultBox from "../ui/ResultBox"; import useSWRMutation from "swr/mutation"; import axiosInstance, { baseUrl } from "@/lib/api"; import { useState } from "react"; const modelsDic = { gemma_base: "base", gemma4b_lora: "lora", }; const postRequest = async (url, { arg }) => { const response = await axiosInstance.post(baseUrl + url, arg); return response?.data; }; export default function LlmPanel({ filters }) { const { register, handleSubmit } = useForm(); const [generatedText, setGeneratedText] = useState(""); const { trigger: triggerGenerateText, isMutating: isGeneratingText } = useSWRMutation( `/content/vllm/${modelsDic[filters?.tab_menu]}`, postRequest, { onSuccess: (data) => setGeneratedText(data?.content), }, ); const onSubmit = (data) => { triggerGenerateText({ model: filters?.tab_menu, messages: [ { role: "user", content: data.content, }, ], max_tokens: data.max_tokens, temperature: 0.7, number: data.number, }); }; return ( {" "} حداکثر تعداد توکن: تعداد: پرامپت: