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 { useTranslation } from 'react-i18next';
import {
Box,
Typography,
Button,
Card,
CardContent,
} from '@mui/material';
import { DOCUMENT_PARSER_TYPES, type DocumentParserType } from '@/constants/knowledge';
import { type IParserConfig } from '@/interfaces/database/knowledge';
@@ -20,7 +22,12 @@ import {
PresentationConfiguration,
OneConfiguration,
TagConfiguration,
ConfigurationFormContainer,
MainContainer,
} from '../configuration';
import { ChunkMethodItem } from '../configuration';
import { PipelineSelectorItem } from '../configuration/common-items';
import { RadioFormField } from '@/components/FormField';
// 配置组件映射表
const ConfigurationComponentMap = {
@@ -86,9 +93,9 @@ function ChunkMethodForm({
} catch (error) {
contextForm = null;
}
const form = propForm || contextForm;
if (!form) {
console.error('ChunkMethodForm: No form context found. Component must be used within a FormProvider or receive a form prop.');
return (
@@ -108,6 +115,16 @@ function ChunkMethodForm({
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动态选择配置组件
const ConfigurationComponent = useMemo(() => {
const parser = parser_id as DocumentParserType;
@@ -117,9 +134,32 @@ function ChunkMethodForm({
return (
<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 && (
<Box sx={{ mt: 4, display: 'flex', justifyContent: 'flex-end', gap: 2 }}>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import React from 'react';
import {
Box,
Typography,
@@ -11,60 +11,29 @@ import { ExpandMore as ExpandMoreIcon } from '@mui/icons-material';
import { useFormContext } from 'react-hook-form';
import { useTranslation } from 'react-i18next';
import { ConfigurationFormContainer, MainContainer } from './configuration-form-container';
import {
ChunkMethodItem,
RaptorConfigItems,
KnowledgeGraphConfigItems,
PipelineSelectorItem,
BasicConfigItems,
} from './common-items';
import { RadioFormField } from '@/components/FormField';
import { RaptorConfigItems, KnowledgeGraphConfigItems, BasicConfigItems } from './common-items';
// import { RadioFormField } from '@/components/FormField';
export function NaiveConfiguration() {
const { formState: { errors }, watch } = useFormContext();
export function NaiveConfiguration({ buildMode = 'buildIn' }: { buildMode?: 'buildIn' | 'pipeline' }) {
const { formState: { errors } } = useFormContext();
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 (
<ConfigurationFormContainer>
<MainContainer>
{/* 第一部分basicConfig 基础配置 */}
<Accordion defaultExpanded>
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
</AccordionSummary>
<AccordionDetails>
{/* 切片方法 */}
<Box sx={{ mb: 3, 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' && (
{buildMode === 'buildIn' && (
<Accordion defaultExpanded>
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
<Typography variant="h6">{t('knowledge.config.basicConfig')}</Typography>
</AccordionSummary>
<AccordionDetails>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
<BasicConfigItems />
)}
</Box>
</AccordionDetails>
</Accordion>
</Box>
</AccordionDetails>
</Accordion>
)}
{/* 第二部分RAPTOR策略 */}
<Accordion>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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