|
import { useTranslate } from '@/hooks/common-hooks'; |
|
import { PlusOutlined } from '@ant-design/icons'; |
|
import { |
|
Button, |
|
Divider, |
|
Flex, |
|
Form, |
|
Input, |
|
InputNumber, |
|
Slider, |
|
Switch, |
|
} from 'antd'; |
|
import random from 'lodash/random'; |
|
|
|
export const excludedParseMethods = [ |
|
'table', |
|
'resume', |
|
'one', |
|
'picture', |
|
'knowledge_graph', |
|
]; |
|
|
|
export const showRaptorParseConfiguration = (parserId: string) => { |
|
return !excludedParseMethods.includes(parserId); |
|
}; |
|
|
|
|
|
const ParseConfiguration = () => { |
|
const form = Form.useFormInstance(); |
|
const { t } = useTranslate('knowledgeConfiguration'); |
|
|
|
const handleGenerate = () => { |
|
form.setFieldValue( |
|
['parser_config', 'raptor', 'random_seed'], |
|
random(10000), |
|
); |
|
}; |
|
|
|
return ( |
|
<> |
|
<Divider></Divider> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'use_raptor']} |
|
label={t('useRaptor')} |
|
initialValue={false} |
|
valuePropName="checked" |
|
tooltip={t('useRaptorTip')} |
|
> |
|
<Switch /> |
|
</Form.Item> |
|
<Form.Item |
|
shouldUpdate={(prevValues, curValues) => |
|
prevValues.parser_config.raptor.use_raptor !== |
|
curValues.parser_config.raptor.use_raptor |
|
} |
|
> |
|
{({ getFieldValue }) => { |
|
const useRaptor = getFieldValue([ |
|
'parser_config', |
|
'raptor', |
|
'use_raptor', |
|
]); |
|
|
|
return ( |
|
useRaptor && ( |
|
<> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'prompt']} |
|
label={t('prompt')} |
|
initialValue={t('promptText')} |
|
tooltip={t('promptTip')} |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('promptMessage'), |
|
}, |
|
]} |
|
> |
|
<Input.TextArea rows={8} /> |
|
</Form.Item> |
|
<Form.Item label={t('maxToken')} tooltip={t('maxTokenTip')}> |
|
<Flex gap={20} align="center"> |
|
<Flex flex={1}> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'max_token']} |
|
noStyle |
|
initialValue={256} |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('maxTokenMessage'), |
|
}, |
|
]} |
|
> |
|
<Slider max={2048} style={{ width: '100%' }} /> |
|
</Form.Item> |
|
</Flex> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'max_token']} |
|
noStyle |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('maxTokenMessage'), |
|
}, |
|
]} |
|
> |
|
<InputNumber max={2048} min={0} /> |
|
</Form.Item> |
|
</Flex> |
|
</Form.Item> |
|
<Form.Item label={t('threshold')} tooltip={t('thresholdTip')}> |
|
<Flex gap={20} align="center"> |
|
<Flex flex={1}> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'threshold']} |
|
noStyle |
|
initialValue={0.1} |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('thresholdMessage'), |
|
}, |
|
]} |
|
> |
|
<Slider |
|
min={0} |
|
max={1} |
|
style={{ width: '100%' }} |
|
step={0.01} |
|
/> |
|
</Form.Item> |
|
</Flex> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'threshold']} |
|
noStyle |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('thresholdMessage'), |
|
}, |
|
]} |
|
> |
|
<InputNumber max={1} min={0} step={0.01} /> |
|
</Form.Item> |
|
</Flex> |
|
</Form.Item> |
|
<Form.Item label={t('maxCluster')} tooltip={t('maxClusterTip')}> |
|
<Flex gap={20} align="center"> |
|
<Flex flex={1}> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'max_cluster']} |
|
noStyle |
|
initialValue={64} |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('maxClusterMessage'), |
|
}, |
|
]} |
|
> |
|
<Slider min={1} max={1024} style={{ width: '100%' }} /> |
|
</Form.Item> |
|
</Flex> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'max_cluster']} |
|
noStyle |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('maxClusterMessage'), |
|
}, |
|
]} |
|
> |
|
<InputNumber max={1024} min={1} /> |
|
</Form.Item> |
|
</Flex> |
|
</Form.Item> |
|
<Form.Item label={t('randomSeed')}> |
|
<Flex gap={20} align="center"> |
|
<Flex flex={1}> |
|
<Form.Item |
|
name={['parser_config', 'raptor', 'random_seed']} |
|
noStyle |
|
initialValue={0} |
|
rules={[ |
|
{ |
|
required: true, |
|
message: t('randomSeedMessage'), |
|
}, |
|
]} |
|
> |
|
<InputNumber style={{ width: '100%' }} /> |
|
</Form.Item> |
|
</Flex> |
|
<Form.Item noStyle> |
|
<Button type="primary" onClick={handleGenerate}> |
|
<PlusOutlined /> |
|
</Button> |
|
</Form.Item> |
|
</Flex> |
|
</Form.Item> |
|
</> |
|
) |
|
); |
|
}} |
|
</Form.Item> |
|
</> |
|
); |
|
}; |
|
|
|
export default ParseConfiguration; |
|
|