import { DocumentParserType } from '@/constants/knowledge'; import { useTranslate } from '@/hooks/common-hooks'; import random from 'lodash/random'; import { Plus } from 'lucide-react'; import { useCallback } from 'react'; import { useFormContext, useWatch } from 'react-hook-form'; import { SliderInputFormField } from '../slider-input-form-field'; import { Button } from '../ui/button'; import { FormControl, FormField, FormItem, FormLabel, FormMessage, } from '../ui/form'; import { Input } from '../ui/input'; import { Switch } from '../ui/switch'; import { Textarea } from '../ui/textarea'; export const excludedParseMethods = [ DocumentParserType.Table, DocumentParserType.Resume, DocumentParserType.One, DocumentParserType.Picture, DocumentParserType.KnowledgeGraph, DocumentParserType.Qa, DocumentParserType.Tag, ]; export const showRaptorParseConfiguration = ( parserId: DocumentParserType | undefined, ) => { return !excludedParseMethods.some((x) => x === parserId); }; export const excludedTagParseMethods = [ DocumentParserType.Table, DocumentParserType.KnowledgeGraph, DocumentParserType.Tag, ]; export const showTagItems = (parserId: DocumentParserType) => { return !excludedTagParseMethods.includes(parserId); }; const UseRaptorField = 'parser_config.raptor.use_raptor'; const RandomSeedField = 'parser_config.raptor.random_seed'; // The three types "table", "resume" and "one" do not display this configuration. const RaptorFormFields = () => { const form = useFormContext(); const { t } = useTranslate('knowledgeConfiguration'); const useRaptor = useWatch({ name: UseRaptorField }); const handleGenerate = useCallback(() => { form.setValue(RandomSeedField, random(10000)); }, [form]); return ( <> ( {t('useRaptor')} )} /> {useRaptor && ( <> ( {t('prompt')}