Spaces:
Paused
Paused
| 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); | |
| }; | |
| // The three types "table", "resume" and "one" do not display this configuration. | |
| 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; | |