import React, { useEffect, useMemo, useState } from 'react'; import { Box, Textarea, Button, Flex, useTheme, Grid, Progress } from '@chakra-ui/react'; import { useDatasetStore } from '@/store/dataset'; import type { KbTestItemType } from '@/types/plugin'; import { searchText, getKbDataItemById } from '@/api/plugins/kb'; import MyIcon from '@/components/Icon'; import { useRequest } from '@/hooks/useRequest'; import { formatTimeToChatTime } from '@/utils/tools'; import InputDataModal, { type FormData } from './InputDataModal'; import { useGlobalStore } from '@/store/global'; import { getErrText } from '@/utils/tools'; import { useToast } from '@/hooks/useToast'; import { customAlphabet } from 'nanoid'; import MyTooltip from '@/components/MyTooltip'; import { QuestionOutlineIcon } from '@chakra-ui/icons'; const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz1234567890', 12); const Test = ({ kbId }: { kbId: string }) => { const theme = useTheme(); const { toast } = useToast(); const { setLoading } = useGlobalStore(); const { kbDetail, kbTestList, pushKbTestItem, delKbTestItemById, updateKbItemById } = useDatasetStore(); const [inputText, setInputText] = useState(''); const [kbTestItem, setKbTestItem] = useState(); const [editData, setEditData] = useState(); const kbTestHistory = useMemo( () => kbTestList.filter((item) => item.kbId === kbId), [kbId, kbTestList] ); const { mutate, isLoading } = useRequest({ mutationFn: () => searchText({ kbId, text: inputText.trim() }), onSuccess(res) { const testItem = { id: nanoid(), kbId, text: inputText.trim(), time: new Date(), results: res }; pushKbTestItem(testItem); setKbTestItem(testItem); }, onError(err) { toast({ title: getErrText(err), status: 'error' }); } }); useEffect(() => { setKbTestItem(undefined); }, [kbId]); return ( 测试文本