import { FormContainer } from '@/components/form-container'; import { KnowledgeBaseFormField } from '@/components/knowledge-base-item'; import { RerankFormFields } from '@/components/rerank'; import { SimilaritySliderFormField } from '@/components/similarity-slider'; import { TopNFormField } from '@/components/top-n-item'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/form'; import { Textarea } from '@/components/ui/textarea'; import { zodResolver } from '@hookform/resolvers/zod'; import { useMemo } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { z } from 'zod'; import { initialRetrievalValues } from '../../constant'; import { useWatchFormChange } from '../../hooks/use-watch-form-change'; import { INextOperatorForm } from '../../interface'; import { Output } from '../components/output'; import { QueryVariable } from '../components/query-variable'; import { useValues } from './use-values'; const FormSchema = z.object({ query: z.string().optional(), similarity_threshold: z.coerce.number(), keywords_similarity_weight: z.coerce.number(), top_n: z.coerce.number(), top_k: z.coerce.number(), kb_ids: z.array(z.string()), rerank_id: z.string(), empty_response: z.string(), }); const RetrievalForm = ({ node }: INextOperatorForm) => { const { t } = useTranslation(); const outputList = useMemo(() => { return [ { title: 'formalized_content', type: initialRetrievalValues.outputs.formalized_content.type, }, ]; }, []); const defaultValues = useValues(node); const form = useForm({ defaultValues: defaultValues, resolver: zodResolver(FormSchema), }); useWatchFormChange(node?.id, form); return (
{ e.preventDefault(); }} > ( {t('chat.emptyResponse')}