'use client'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm, useWatch } from 'react-hook-form'; import { z } from 'zod'; import { CrossLanguageFormField } from '@/components/cross-language-form-field'; import { FormContainer } from '@/components/form-container'; import { MetadataFilter, MetadataFilterSchema, } from '@/components/metadata-filter'; import { RerankFormFields, initialTopKValue, topKSchema, } from '@/components/rerank'; import { SimilaritySliderFormField, initialSimilarityThresholdValue, initialVectorSimilarityWeightValue, similarityThresholdSchema, vectorSimilarityWeightSchema, } from '@/components/similarity-slider'; import { ButtonLoading } from '@/components/ui/button'; import { Form, FormControl, FormField, FormItem, FormMessage, } from '@/components/ui/form'; import { Textarea } from '@/components/ui/textarea'; import { UseKnowledgeGraphFormField } from '@/components/use-knowledge-graph-item'; import { useTestRetrieval } from '@/hooks/use-knowledge-request'; import { trim } from 'lodash'; import { Send } from 'lucide-react'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useParams } from 'umi'; type TestingFormProps = Pick< ReturnType, 'loading' | 'refetch' | 'setValues' >; export default function TestingForm({ loading, refetch, setValues, }: TestingFormProps) { const { t } = useTranslation(); const { id } = useParams(); // 正确解构出id参数 const knowledgeBaseId = id; // 现在knowledgeBaseId是字符串类型 const formSchema = z.object({ question: z.string().min(1, { message: t('knowledgeDetails.testTextPlaceholder'), }), ...similarityThresholdSchema, ...vectorSimilarityWeightSchema, ...topKSchema, use_kg: z.boolean().optional(), kb_ids: z.array(z.string()).optional(), ...MetadataFilterSchema, }); const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { ...initialSimilarityThresholdValue, ...initialVectorSimilarityWeightValue, ...initialTopKValue, use_kg: false, kb_ids: [knowledgeBaseId], }, }); const question = form.watch('question'); const values = useWatch({ control: form.control }); useEffect(() => { setValues(values as Required>); }, [setValues, values]); function onSubmit() { refetch(); } return (
{/* 添加元数据过滤组件 */} ( {/* {t('knowledgeDetails.testText')} */} )} />
{/* {!loading && } */} {t('knowledgeDetails.testingLabel')}
); }