feat(form): add form field components and configuration updates

refactor(knowledge): restructure configuration components to use common items
This commit is contained in:
2025-10-15 18:48:48 +08:00
parent fe8747983e
commit fd4309582d
36 changed files with 1869 additions and 1001 deletions

View File

@@ -1,121 +1,61 @@
import React from 'react';
import {
Box,
Typography,
FormControl,
InputLabel,
Select,
MenuItem,
TextField,
Slider,
} from '@mui/material';
import { useFormContext, Controller } from 'react-hook-form';
import { ConfigurationFormContainer, MainContainer } from './configuration-form-container';
import {
ChunkMethodItem,
EmbeddingModelItem,
LayoutRecognizeItem,
PageRankItem,
AutoKeywordsItem,
AutoQuestionsItem,
UseRaptorItem,
RaptorPromptItem,
RaptorMaxTokenItem,
RaptorThresholdItem,
RaptorMaxClusterItem,
RaptorRandomSeedItem,
UseGraphragItem,
EntityTypesItem,
GraphragMethodItem,
EntityNormalizeItem,
CommunityReportItem,
TagsItem
} from './common-items';
export function PaperConfiguration() {
const { control } = useFormContext();
return (
<ConfigurationFormContainer>
<MainContainer>
{/* 布局识别 */}
<Box>
<Typography variant="h6" gutterBottom>
</Typography>
<Controller
name="parser_config.layout_recognize"
control={control}
render={({ field }) => (
<FormControl fullWidth>
<InputLabel></InputLabel>
<Select
{...field}
label="布局识别方式"
>
<MenuItem value="DeepDOC">DeepDOC</MenuItem>
<MenuItem value="Plain Text">Plain Text</MenuItem>
</Select>
</FormControl>
)}
/>
</Box>
<MainContainer>
<ConfigurationFormContainer>
<ChunkMethodItem />
<LayoutRecognizeItem />
<EmbeddingModelItem />
<PageRankItem />
</ConfigurationFormContainer>
{/* 自动关键词 */}
<Box>
<Typography variant="h6" gutterBottom>
</Typography>
<Controller
name="parser_config.auto_keywords"
control={control}
render={({ field }) => (
<Box sx={{ px: 2 }}>
<Slider
{...field}
min={0}
max={10}
step={1}
marks
valueLabelDisplay="auto"
onChange={(_, value) => field.onChange(value)}
/>
</Box>
)}
/>
</Box>
<ConfigurationFormContainer>
<AutoKeywordsItem />
<AutoQuestionsItem />
</ConfigurationFormContainer>
{/* 自动问题 */}
<Box>
<Typography variant="h6" gutterBottom>
</Typography>
<Controller
name="parser_config.auto_questions"
control={control}
render={({ field }) => (
<Box sx={{ px: 2 }}>
<Slider
{...field}
min={0}
max={10}
step={1}
marks
valueLabelDisplay="auto"
onChange={(_, value) => field.onChange(value)}
/>
</Box>
)}
/>
</Box>
<ConfigurationFormContainer>
<UseRaptorItem />
<RaptorPromptItem />
<RaptorMaxTokenItem />
<RaptorThresholdItem />
<RaptorMaxClusterItem />
<RaptorRandomSeedItem />
</ConfigurationFormContainer>
{/* 标签数量 */}
<Box>
<Typography variant="h6" gutterBottom>
Top N
</Typography>
<Controller
name="parser_config.topn_tags"
control={control}
render={({ field }) => (
<TextField
{...field}
type="number"
fullWidth
label="标签数量"
inputProps={{ min: 1, max: 10 }}
onChange={(e) => field.onChange(parseInt(e.target.value))}
/>
)}
/>
</Box>
<ConfigurationFormContainer>
<UseGraphragItem />
<EntityTypesItem />
<GraphragMethodItem />
<EntityNormalizeItem />
<CommunityReportItem />
</ConfigurationFormContainer>
<Box>
<Typography variant="body2" color="text.secondary">
</Typography>
</Box>
</MainContainer>
</ConfigurationFormContainer>
<ConfigurationFormContainer>
<TagsItem />
</ConfigurationFormContainer>
</MainContainer>
);
}