import { Form } from '@/components/ui/form'; import { Tabs, TabsContent, TabsList, TabsTrigger, } from '@/components/ui/tabs-underlined'; import { DocumentParserType } from '@/constants/knowledge'; import { zodResolver } from '@hookform/resolvers/zod'; import { useState } from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { z } from 'zod'; import { TopTitle } from '../dataset-title'; import { ChunkMethodForm } from './chunk-method-form'; import ChunkMethodLearnMore from './chunk-method-learn-more'; import { formSchema } from './form-schema'; import { GeneralForm } from './general-form'; import { useFetchKnowledgeConfigurationOnMount } from './hooks'; const enum DocumentType { DeepDOC = 'DeepDOC', PlainText = 'Plain Text', } const initialEntityTypes = [ 'organization', 'person', 'geo', 'event', 'category', ]; const enum MethodValue { General = 'general', Light = 'light', } export default function DatasetSettings() { const { t } = useTranslation(); const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { name: '', parser_id: DocumentParserType.Naive, permission: 'me', parser_config: { layout_recognize: DocumentType.DeepDOC, chunk_token_num: 512, delimiter: `\n`, auto_keywords: 0, auto_questions: 0, html4excel: false, topn_tags: 3, raptor: { use_raptor: false, }, graphrag: { use_graphrag: false, entity_types: initialEntityTypes, method: MethodValue.Light, }, }, pagerank: 0, }, }); useFetchKnowledgeConfigurationOnMount(form); const [currentTab, setCurrentTab] = useState< 'generalForm' | 'chunkMethodForm' >('generalForm'); // currnet Tab state const parserId = useWatch({ control: form.control, name: 'parser_id', }); async function onSubmit(data: z.infer) { console.log('🚀 ~ DatasetSettings ~ data:', data); } return (
{ setCurrentTab(val); }} >
General
Chunk Method
); }