balibabu
feat: After selecting the parsing method as knowledge graph, the delimiter and chunk token number are displayed. #1594 (#1929)
7b030d6
| 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([ | |
| [ | |
| ['pdf'], | |
| [ | |
| 'naive', | |
| 'resume', | |
| 'manual', | |
| 'paper', | |
| 'book', | |
| 'laws', | |
| 'presentation', | |
| 'one', | |
| 'qa', | |
| 'knowledge_graph', | |
| ], | |
| ], | |
| [ | |
| ['doc', 'docx'], | |
| [ | |
| 'naive', | |
| 'resume', | |
| 'book', | |
| 'laws', | |
| 'one', | |
| 'qa', | |
| 'manual', | |
| 'knowledge_graph', | |
| ], | |
| ], | |
| [ | |
| ['xlsx', 'xls'], | |
| ['naive', 'qa', 'table', 'one', 'knowledge_graph'], | |
| ], | |
| [['ppt', 'pptx'], ['presentation']], | |
| [ | |
| ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'tif', 'tiff', 'webp', 'svg', 'ico'], | |
| ['picture'], | |
| ], | |
| [ | |
| ['txt'], | |
| [ | |
| 'naive', | |
| 'resume', | |
| 'book', | |
| 'laws', | |
| 'one', | |
| 'qa', | |
| 'table', | |
| 'knowledge_graph', | |
| ], | |
| ], | |
| [ | |
| ['csv'], | |
| [ | |
| 'naive', | |
| 'resume', | |
| 'book', | |
| 'laws', | |
| 'one', | |
| 'qa', | |
| 'table', | |
| 'knowledge_graph', | |
| ], | |
| ], | |
| [['md'], ['naive', 'qa', 'knowledge_graph']], | |
| [['json'], ['naive', 'knowledge_graph']], | |
| [['eml'], ['email']], | |
| ]); | |
| const getParserList = ( | |
| values: string[], | |
| parserList: Array<{ | |
| value: string; | |
| label: string; | |
| }>, | |
| ) => { | |
| return parserList.filter((x) => values?.some((y) => y === x.value)); | |
| }; | |
| 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) => | |
| x.some((y) => y === documentExtension), | |
| ); | |
| if (key) { | |
| const values = ParserListMap.get(key); | |
| return getParserList(values ?? [], parserList); | |
| } | |
| return getParserList( | |
| ['naive', 'resume', 'book', 'laws', 'one', 'qa', 'table'], | |
| parserList, | |
| ); | |
| }, [parserList, documentExtension]); | |
| useEffect(() => { | |
| setSelectedTag(parserId); | |
| }, [parserId, documentId]); | |
| const handleChange = (tag: string) => { | |
| handleChunkMethodSelectChange(tag); | |
| setSelectedTag(tag); | |
| }; | |
| return { parserList: nextParserList, handleChange, selectedTag }; | |
| }; | |