diff --git a/web/src/components/chunk-method-modal/hooks.ts b/web/src/components/chunk-method-modal/hooks.ts index ae4a28c3f..c1ae1b8ed 100644 --- a/web/src/components/chunk-method-modal/hooks.ts +++ b/web/src/components/chunk-method-modal/hooks.ts @@ -1,4 +1,6 @@ +import { useHandleChunkMethodSelectChange } from '@/hooks/logic-hooks'; import { useSelectParserList } from '@/hooks/user-setting-hooks'; +import { FormInstance } from 'antd'; import { useEffect, useMemo, useState } from 'react'; const ParserListMap = new Map([ @@ -84,9 +86,11 @@ export const useFetchParserListOnMount = ( documentId: string, parserId: string, documentExtension: string, + form: FormInstance, ) => { const [selectedTag, setSelectedTag] = useState(''); const parserList = useSelectParserList(); + const handleChunkMethodSelectChange = useHandleChunkMethodSelectChange(form); const nextParserList = useMemo(() => { const key = [...ParserListMap.keys()].find((x) => @@ -108,7 +112,7 @@ export const useFetchParserListOnMount = ( }, [parserId, documentId]); const handleChange = (tag: string) => { - // const nextSelectedTag = checked ? tag : selectedTag; + handleChunkMethodSelectChange(tag); setSelectedTag(tag); }; diff --git a/web/src/components/chunk-method-modal/index.tsx b/web/src/components/chunk-method-modal/index.tsx index ff4b4a06d..9b20d3fab 100644 --- a/web/src/components/chunk-method-modal/index.tsx +++ b/web/src/components/chunk-method-modal/index.tsx @@ -62,12 +62,13 @@ const ChunkMethodModal: React.FC = ({ parserConfig, loading, }) => { + const [form] = Form.useForm(); const { parserList, handleChange, selectedTag } = useFetchParserListOnMount( documentId, parserId, documentExtension, + form, ); - const [form] = Form.useForm(); const { t } = useTranslate('knowledgeDetails'); const handleOk = async () => { @@ -89,12 +90,13 @@ const ChunkMethodModal: React.FC = ({ return ( isPdf && hidePagesChunkMethods - .filter((x) => x !== 'one' && x !== 'knowledge_graph') + .filter((x) => x !== 'one') .every((x) => x !== selectedTag) ); }, [selectedTag, isPdf]); - const showMaxTokenNumber = selectedTag === 'naive'; + const showMaxTokenNumber = + selectedTag === 'naive' || selectedTag === 'knowledge_graph'; const hideDivider = [showPages, showOne, showMaxTokenNumber].every( (x) => x === false, @@ -271,7 +273,9 @@ const ChunkMethodModal: React.FC = ({ )} {showMaxTokenNumber && ( <> - + )} diff --git a/web/src/components/edit-tag/index.less b/web/src/components/edit-tag/index.less index 6d2c327c5..df7a2da02 100644 --- a/web/src/components/edit-tag/index.less +++ b/web/src/components/edit-tag/index.less @@ -1,3 +1,8 @@ .tweenGroup { display: inline-block; + :global(.ant-tag) { + margin-bottom: 8px; + font-size: 14px; + padding: 2px 8px; + } } diff --git a/web/src/components/max-token-number.tsx b/web/src/components/max-token-number.tsx index 0095cdeab..7cbb0204c 100644 --- a/web/src/components/max-token-number.tsx +++ b/web/src/components/max-token-number.tsx @@ -1,7 +1,12 @@ import { useTranslate } from '@/hooks/common-hooks'; import { Flex, Form, InputNumber, Slider } from 'antd'; -const MaxTokenNumber = () => { +interface IProps { + initialValue?: number; + max?: number; +} + +const MaxTokenNumber = ({ initialValue = 128, max = 2048 }: IProps) => { const { t } = useTranslate('knowledgeConfiguration'); return ( @@ -11,18 +16,19 @@ const MaxTokenNumber = () => { - + - + diff --git a/web/src/hooks/logic-hooks.ts b/web/src/hooks/logic-hooks.ts index a0b6c99b6..45ba6b0df 100644 --- a/web/src/hooks/logic-hooks.ts +++ b/web/src/hooks/logic-hooks.ts @@ -8,6 +8,7 @@ import { IChangeParserConfigRequestBody } from '@/interfaces/request/document'; import api from '@/utils/api'; import { getAuthorization } from '@/utils/authorization-util'; import { PaginationProps } from 'antd'; +import { FormInstance } from 'antd/lib'; import axios from 'axios'; import { EventSourceParserStream } from 'eventsource-parser/stream'; import { @@ -337,3 +338,25 @@ export const useFetchModelId = () => { return tenantInfo?.llm_id ?? ''; }; + +const ChunkTokenNumMap = { + naive: 128, + knowledge_graph: 8192, +}; + +export const useHandleChunkMethodSelectChange = (form: FormInstance) => { + // const form = Form.useFormInstance(); + const handleChange = useCallback( + (value: string) => { + if (value in ChunkTokenNumMap) { + form.setFieldValue( + ['parser_config', 'chunk_token_num'], + ChunkTokenNumMap[value as keyof typeof ChunkTokenNumMap], + ); + } + }, + [form], + ); + + return handleChange; +}; diff --git a/web/src/pages/add-knowledge/components/knowledge-setting/configuration.tsx b/web/src/pages/add-knowledge/components/knowledge-setting/configuration.tsx index c251ecd75..7e55f7608 100644 --- a/web/src/pages/add-knowledge/components/knowledge-setting/configuration.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-setting/configuration.tsx @@ -6,6 +6,7 @@ import ParseConfiguration, { showRaptorParseConfiguration, } from '@/components/parse-configuration'; import { useTranslate } from '@/hooks/common-hooks'; +import { useHandleChunkMethodSelectChange } from '@/hooks/logic-hooks'; import { normFile } from '@/utils/file-util'; import { PlusOutlined } from '@ant-design/icons'; import { Button, Form, Input, Radio, Select, Space, Upload } from 'antd'; @@ -24,6 +25,7 @@ const ConfigurationForm = ({ form }: { form: FormInstance }) => { const { parserList, embeddingModelOptions, disabled } = useFetchKnowledgeConfigurationOnMount(form); const { t } = useTranslate('knowledgeConfiguration'); + const handleChunkMethodSelectChange = useHandleChunkMethodSelectChange(form); return (
@@ -91,7 +93,11 @@ const ConfigurationForm = ({ form }: { form: FormInstance }) => { tooltip={t('chunkMethodTip')} rules={[{ required: true }]} > - {parserList.map((x) => (