feat(knowledge): add build mode support for configuration components

add build mode parameter to all configuration components to toggle between built-in and pipeline modes
export new common items and update chunk method form to handle build mode selection
This commit is contained in:
2025-11-07 10:10:40 +08:00
parent d24b371929
commit ddce6638ad
17 changed files with 318 additions and 281 deletions

View File

@@ -1,10 +1,12 @@
import React, { useMemo } from 'react'; import React, { useMemo, useState, useEffect } from 'react';
import { useFormContext, useWatch, type UseFormReturn } from 'react-hook-form'; import { useFormContext, useWatch, type UseFormReturn } from 'react-hook-form';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {
Box, Box,
Typography, Typography,
Button, Button,
Card,
CardContent,
} from '@mui/material'; } from '@mui/material';
import { DOCUMENT_PARSER_TYPES, type DocumentParserType } from '@/constants/knowledge'; import { DOCUMENT_PARSER_TYPES, type DocumentParserType } from '@/constants/knowledge';
import { type IParserConfig } from '@/interfaces/database/knowledge'; import { type IParserConfig } from '@/interfaces/database/knowledge';
@@ -20,7 +22,12 @@ import {
PresentationConfiguration, PresentationConfiguration,
OneConfiguration, OneConfiguration,
TagConfiguration, TagConfiguration,
ConfigurationFormContainer,
MainContainer,
} from '../configuration'; } from '../configuration';
import { ChunkMethodItem } from '../configuration';
import { PipelineSelectorItem } from '../configuration/common-items';
import { RadioFormField } from '@/components/FormField';
// 配置组件映射表 // 配置组件映射表
const ConfigurationComponentMap = { const ConfigurationComponentMap = {
@@ -108,6 +115,16 @@ function ChunkMethodForm({
name: 'parser_id', name: 'parser_id',
}); });
// 监听 pipeline_id自动决定构建模式
const pipeline_id = useWatch({
control,
name: 'pipeline_id',
});
const [buildMode, setBuildMode] = useState<'buildIn' | 'pipeline'>(pipeline_id ? 'pipeline' : 'buildIn');
useEffect(() => {
setBuildMode(pipeline_id ? 'pipeline' : 'buildIn');
}, [pipeline_id]);
// 根据parser_id动态选择配置组件 // 根据parser_id动态选择配置组件
const ConfigurationComponent = useMemo(() => { const ConfigurationComponent = useMemo(() => {
const parser = parser_id as DocumentParserType; const parser = parser_id as DocumentParserType;
@@ -117,8 +134,31 @@ function ChunkMethodForm({
return ( return (
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 动态配置内容 */} {/* 构建模式选择与联动 */}
<ConfigurationComponent /> <Card sx={{ p: 3 }}>
<CardContent>
<RadioFormField
name="build_mode"
label={t('knowledge.config.buildMode')}
defaultValue={buildMode}
options={[
{ value: 'buildIn', label: 'Built-in' },
{ value: 'pipeline', label: 'Pipeline' },
]}
onChangeValue={(v) => setBuildMode(String(v) as 'buildIn' | 'pipeline')}
/>
{/* 基于模式内置显示切片方法Pipeline 显示选择器 */}
{buildMode === 'buildIn' ? (
<ChunkMethodItem />
) : (
<PipelineSelectorItem />
)}
</CardContent>
</Card>
{/* 动态配置内容:始终渲染,内部按 buildMode 控制基础配置显示 */}
<ConfigurationComponent buildMode={buildMode} />
{/* 表单操作按钮 - 仅在有onSubmit回调时显示 */} {/* 表单操作按钮 - 仅在有onSubmit回调时显示 */}
{onSubmit && ( {onSubmit && (

View File

@@ -19,7 +19,7 @@ import {
KnowledgeGraphConfigItems, KnowledgeGraphConfigItems,
} from './common-items'; } from './common-items';
export function AudioConfiguration() { export function AudioConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors } } = useFormContext(); const { formState: { errors } } = useFormContext();
const { t } = useTranslation(); const { t } = useTranslation();
@@ -27,25 +27,27 @@ export function AudioConfiguration() {
<ConfigurationFormContainer> <ConfigurationFormContainer>
<MainContainer> <MainContainer>
{/* 第一部分basicConfig 基础配置 */} {/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
<Divider />
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}>
{/* 自动关键词提取 */} {/* 自动关键词提取 */}
<AutoKeywordsItem /> <AutoKeywordsItem />
{/* 自动问题提取 */} {/* 自动问题提取 */}
<AutoQuestionsItem /> <AutoQuestionsItem />
</Box> </Box>
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -12,30 +12,32 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function BookConfiguration() { export function BookConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
{/* 分块token数 */} <ChunkMethodItem />
<ChunkTokenNumberItem /> {/* 分块token数 */}
{/* 分隔符 */} <ChunkTokenNumberItem />
<DelimiterItem /> {/* 分隔符 */}
{/* 目录增强 */} <DelimiterItem />
<TOCEnhanceItem /> {/* 目录增强 */}
</Box> <TOCEnhanceItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -9,24 +9,26 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function EmailConfiguration() { export function EmailConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
</Box> <ChunkMethodItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -1,5 +1,5 @@
// 配置组件统一导出 // 配置组件统一导出
export { ChunkMethodItem, EmbeddingModelItem } from './common-items'; export { ChunkMethodItem, EmbeddingModelItem, PipelineSelectorItem, BasicConfigItems } from './common-items';
export { ConfigurationFormContainer, MainContainer } from './configuration-form-container'; export { ConfigurationFormContainer, MainContainer } from './configuration-form-container';
// 所有解析器配置组件 // 所有解析器配置组件

View File

@@ -29,7 +29,7 @@ import {
CommunityReportItem, CommunityReportItem,
} from './common-items'; } from './common-items';
export function KnowledgeGraphConfiguration() { export function KnowledgeGraphConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors } } = useFormContext(); const { formState: { errors } } = useFormContext();
const { t } = useTranslation(); const { t } = useTranslation();
@@ -37,27 +37,29 @@ export function KnowledgeGraphConfiguration() {
<ConfigurationFormContainer> <ConfigurationFormContainer>
<MainContainer> <MainContainer>
{/* 第一部分basicConfig 基础配置 */} {/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
<Divider />
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}>
{/* 嵌入模型 */} {/* 嵌入模型 */}
<EmbeddingModelItem /> <EmbeddingModelItem />
{/* 自动关键词提取 */} {/* 自动关键词提取 */}
<AutoKeywordsItem /> <AutoKeywordsItem />
{/* 自动问题提取 */} {/* 自动问题提取 */}
<AutoQuestionsItem /> <AutoQuestionsItem />
</Box> </Box>
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -9,24 +9,26 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function LawsConfiguration() { export function LawsConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
</Box> <ChunkMethodItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -34,7 +34,7 @@ import {
KnowledgeGraphConfigItems, KnowledgeGraphConfigItems,
} from './common-items'; } from './common-items';
export function ManualConfiguration() { export function ManualConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors } } = useFormContext(); const { formState: { errors } } = useFormContext();
const { t } = useTranslation(); const { t } = useTranslation();
@@ -42,27 +42,29 @@ export function ManualConfiguration() {
<ConfigurationFormContainer> <ConfigurationFormContainer>
<MainContainer> <MainContainer>
{/* 第一部分basicConfig 基础配置 */} {/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
<Divider />
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}>
{/* 版面识别 */} {/* 版面识别 */}
<LayoutRecognizeItem /> <LayoutRecognizeItem />
{/* 自动关键词提取 */} {/* 自动关键词提取 */}
<AutoKeywordsItem /> <AutoKeywordsItem />
{/* 自动问题提取 */} {/* 自动问题提取 */}
<AutoQuestionsItem /> <AutoQuestionsItem />
</Box> </Box>
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React from 'react';
import { import {
Box, Box,
Typography, Typography,
@@ -11,60 +11,29 @@ import { ExpandMore as ExpandMoreIcon } from '@mui/icons-material';
import { useFormContext } from 'react-hook-form'; import { useFormContext } from 'react-hook-form';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { ConfigurationFormContainer, MainContainer } from './configuration-form-container'; import { ConfigurationFormContainer, MainContainer } from './configuration-form-container';
import { import { RaptorConfigItems, KnowledgeGraphConfigItems, BasicConfigItems } from './common-items';
ChunkMethodItem, // import { RadioFormField } from '@/components/FormField';
RaptorConfigItems,
KnowledgeGraphConfigItems,
PipelineSelectorItem,
BasicConfigItems,
} from './common-items';
import { RadioFormField } from '@/components/FormField';
export function NaiveConfiguration() { export function NaiveConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors }, watch } = useFormContext(); const { formState: { errors } } = useFormContext();
const { t } = useTranslation(); const { t } = useTranslation();
const [buildMode, setBuildMode] = useState<'buildIn' | 'pipeline'>('buildIn');
// 根据表单的 pipeline_id 自动切换 buildMode
const pipelineId = watch('pipeline_id');
useEffect(() => {
setBuildMode(pipelineId ? 'pipeline' : 'buildIn');
}, [pipelineId]);
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<MainContainer> <MainContainer>
{/* 第一部分basicConfig 基础配置 */} {/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3, display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<RadioFormField
name="build_mode"
defaultValue="buildIn"
options={[
{ value: 'buildIn', label: 'Built-in' },
{ value: 'pipeline', label: 'Pipeline' },
]}
onChangeValue={(v) => setBuildMode(String(v) as 'buildIn' | 'pipeline')}
/>
{buildMode === 'buildIn' ? (
<ChunkMethodItem />
) : (
<PipelineSelectorItem />
)}
</Box>
<Divider />
<Box sx={{ mt: 3 }}>
{buildMode === 'buildIn' && (
<BasicConfigItems /> <BasicConfigItems />
)} </Box>
</Box> </AccordionDetails>
</AccordionDetails> </Accordion>
</Accordion> )}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -23,7 +23,7 @@ import {
KnowledgeGraphConfigItems, KnowledgeGraphConfigItems,
} from './common-items'; } from './common-items';
export function OneConfiguration() { export function OneConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors } } = useFormContext(); const { formState: { errors } } = useFormContext();
const { t } = useTranslation(); const { t } = useTranslation();
@@ -31,27 +31,29 @@ export function OneConfiguration() {
<ConfigurationFormContainer> <ConfigurationFormContainer>
<MainContainer> <MainContainer>
{/* 第一部分basicConfig 基础配置 */} {/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
<Divider />
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}>
{/* 版面识别 */} {/* 版面识别 */}
<LayoutRecognizeItem /> <LayoutRecognizeItem />
{/* 自动关键词提取 */} {/* 自动关键词提取 */}
<AutoKeywordsItem /> <AutoKeywordsItem />
{/* 自动问题提取 */} {/* 自动问题提取 */}
<AutoQuestionsItem /> <AutoQuestionsItem />
</Box> </Box>
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -20,7 +20,7 @@ import {
KnowledgeGraphConfigItems, KnowledgeGraphConfigItems,
} from './common-items'; } from './common-items';
export function PaperConfiguration() { export function PaperConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors } } = useFormContext(); const { formState: { errors } } = useFormContext();
const { t } = useTranslation(); const { t } = useTranslation();
@@ -28,27 +28,29 @@ export function PaperConfiguration() {
<ConfigurationFormContainer> <ConfigurationFormContainer>
<MainContainer> <MainContainer>
{/* 第一部分basicConfig 基础配置 */} {/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
<Divider />
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}>
{/* 版面识别 */} {/* 版面识别 */}
<LayoutRecognizeItem /> <LayoutRecognizeItem />
{/* 自动关键词提取 */} {/* 自动关键词提取 */}
<AutoKeywordsItem /> <AutoKeywordsItem />
{/* 自动问题提取 */} {/* 自动问题提取 */}
<AutoQuestionsItem /> <AutoQuestionsItem />
</Box> </Box>
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -9,24 +9,26 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function PictureConfiguration() { export function PictureConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
</Box> <ChunkMethodItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -12,34 +12,36 @@ import {
AutoQuestionsItem AutoQuestionsItem
} from './common-items'; } from './common-items';
export function PresentationConfiguration() { export function PresentationConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
<Divider />
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, mt: 3 }}>
{/* 版面识别 */} {/* 版面识别 */}
<LayoutRecognizeItem /> <LayoutRecognizeItem />
{/* 自动关键词提取 */} {/* 自动关键词提取 */}
<AutoKeywordsItem /> <AutoKeywordsItem />
{/* 自动问题提取 */} {/* 自动问题提取 */}
<AutoQuestionsItem /> <AutoQuestionsItem />
</Box> </Box>
</AccordionDetails> </AccordionDetails>
</Accordion> </Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -9,24 +9,26 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function QAConfiguration() { export function QAConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
</Box> <ChunkMethodItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -9,24 +9,26 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function ResumeConfiguration() { export function ResumeConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
</Box> <ChunkMethodItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -9,24 +9,26 @@ import {
KnowledgeGraphConfigItems KnowledgeGraphConfigItems
} from './common-items'; } from './common-items';
export function TableConfiguration() { export function TableConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <AccordionDetails>
{/* 分块方法 */} <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<ChunkMethodItem /> {/* 分块方法 */}
</Box> <ChunkMethodItem />
</AccordionDetails> </Box>
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>

View File

@@ -12,25 +12,27 @@ import {
AutoQuestionsItem AutoQuestionsItem
} from './common-items'; } from './common-items';
export function TagConfiguration() { export function TagConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
<ConfigurationFormContainer> <ConfigurationFormContainer>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
{/* 第一部分:基础配置 */} {/* 第一部分:基础配置 */}
<Accordion defaultExpanded> {buildMode === 'buildIn' && (
<AccordionSummary expandIcon={<ExpandMoreIcon />}> <Accordion defaultExpanded>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography> <AccordionSummary expandIcon={<ExpandMoreIcon />}>
</AccordionSummary> <Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
<AccordionDetails> </AccordionSummary>
{/* 切片方法 */} <AccordionDetails>
<Box sx={{ mb: 3 }}> {/* 切片方法 */}
<ChunkMethodItem /> <Box sx={{ mb: 3 }}>
</Box> <ChunkMethodItem />
<Divider /> </Box>
</AccordionDetails> <Divider />
</Accordion> </AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */} {/* 第二部分RAPTOR策略 */}
<Accordion> <Accordion>