|
import { LlmModelType } from '@/constants/knowledge'; |
|
import { useTranslate } from '@/hooks/common-hooks'; |
|
import { useSelectLlmOptionsByModelType } from '@/hooks/llm-hooks'; |
|
import { Form, Select } from 'antd'; |
|
import { camelCase } from 'lodash'; |
|
import { useMemo } from 'react'; |
|
|
|
const enum DocumentType { |
|
DeepDOC = 'DeepDOC', |
|
PlainText = 'Plain Text', |
|
} |
|
|
|
const LayoutRecognize = () => { |
|
const { t } = useTranslate('knowledgeDetails'); |
|
const allOptions = useSelectLlmOptionsByModelType(); |
|
|
|
const options = useMemo(() => { |
|
const list = [DocumentType.DeepDOC, DocumentType.PlainText].map((x) => ({ |
|
label: x === DocumentType.PlainText ? t(camelCase(x)) : 'DeepDoc', |
|
value: x, |
|
})); |
|
|
|
const image2TextList = allOptions[LlmModelType.Image2text].map((x) => { |
|
return { |
|
...x, |
|
options: x.options.map((y) => { |
|
return { |
|
...y, |
|
label: ( |
|
<div className="flex justify-between items-center gap-2"> |
|
{y.label} |
|
<span className="text-red-500 text-sm">Experimental</span> |
|
</div> |
|
), |
|
}; |
|
}), |
|
}; |
|
}); |
|
|
|
return [...list, ...image2TextList]; |
|
}, [allOptions, t]); |
|
|
|
return ( |
|
<Form.Item |
|
name={['parser_config', 'layout_recognize']} |
|
label={t('layoutRecognize')} |
|
initialValue={DocumentType.DeepDOC} |
|
tooltip={t('layoutRecognizeTip')} |
|
> |
|
<Select options={options} popupMatchSelectWidth={false} /> |
|
</Form.Item> |
|
); |
|
}; |
|
|
|
export default LayoutRecognize; |
|
|