import { Input, Button, InputNumber, Checkbox, Select, Card, Empty, Spin, Divider, Tooltip, } from 'antd'; import { QuestionCircleOutlined, ReloadOutlined, EyeOutlined, } from '@ant-design/icons'; import { useDocumentDetail } from '~/hooks/dify-dataset-manager/document-detail'; import type { DocumentDetailProps } from '~/types/dify-dataset-manager/document-detail'; /** * 文档详情组件 * 显示文档的分段设置,支持修改并重新处理 */ export default function DocumentDetail({ datasetId, document, }: DocumentDetailProps) { const { settings, previewSegments, previewLoading, showPreview, saving, updateSettings, handleReset, handlePreview, handleSaveAndProcess, } = useDocumentDetail(datasetId, document); if (!document) { return (
); } return (
{/* 左侧设置区域 */}
{/* 分段设置 */}

分段设置

{/* 分块模式 */}
通用 通用文本分块模式,检索和召回的块是相同的
{/* 分段标识符 */}
updateSettings('separator', e.target.value)} placeholder="\n\n" className="setting-input" />
{/* 分段最大长度 */}
updateSettings('maxTokens', value || 500)} min={100} max={4000} className="setting-input-number" /> characters
{/* 文本预处理规则 */}

文本预处理规则

updateSettings('removeExtraSpaces', e.target.checked)} > 替换掉连续的空格、换行符和制表符 updateSettings('removeUrlsEmails', e.target.checked)} > 删除所有 URL 和电子邮件地址
{/* Q&A 分段 */}
updateSettings('useQASegment', e.target.checked)} > 使用 Q&A 分段,语言 {showPreview ? `${previewSegments.length} 段块` : '0 段块'}
} className="preview-card" > {previewLoading ? (
加载中...
) : !showPreview ? (

点击左侧的"预览块"按钮来预览

) : previewSegments.length === 0 ? ( ) : (
{previewSegments.map((segment, index) => (
#{index + 1} {segment.word_count} 字符
{segment.content}
))}
)}
); }