diff --git a/src/main/services/KnowledgeService.ts b/src/main/services/KnowledgeService.ts index 84362c026..e02fca9fc 100644 --- a/src/main/services/KnowledgeService.ts +++ b/src/main/services/KnowledgeService.ts @@ -565,6 +565,11 @@ class KnowledgeService { Logger.info(`Starting preprocess processing for scanned PDF: ${file.path}`) const { processedFile } = await provider.parseFile(item.id, file) fileToProcess = processedFile + console.warn('base', base, 'item', item, 'file', file) + const mainWindow = windowService.getMainWindow() + mainWindow?.webContents.send('file-preprocess-finished', { + itemId: item.id + }) } catch (err) { Logger.error(`Preprocess processing failed: ${err}`) // 如果预处理失败,使用原始文件 diff --git a/src/renderer/src/pages/knowledge/KnowledgeContent.tsx b/src/renderer/src/pages/knowledge/KnowledgeContent.tsx index eb5fd59a3..6b439ff74 100644 --- a/src/renderer/src/pages/knowledge/KnowledgeContent.tsx +++ b/src/renderer/src/pages/knowledge/KnowledgeContent.tsx @@ -39,9 +39,13 @@ const KnowledgeContent: FC = ({ selectedBase }) => { const { t } = useTranslation() const [expandAll, setExpandAll] = useState(false) const [progressMap, setProgressMap] = useState>(new Map()) - + const [preprocessMap, setPreprocessMap] = useState>(new Map()) useEffect(() => { const handlers = [ + window.electron.ipcRenderer.on('file-preprocess-finished', (_, { itemId }) => { + setPreprocessMap((prev) => new Map(prev).set(itemId, true)) + }), + window.electron.ipcRenderer.on('file-preprocess-progress', (_, { itemId, progress }) => { setProgressMap((prev) => new Map(prev).set(itemId, progress)) }), @@ -78,6 +82,7 @@ const KnowledgeContent: FC = ({ selectedBase }) => { const providerName = getProviderName(base?.model.provider || '') const disabled = !base?.version || !providerName + console.log(fileItems) if (!base) { return null @@ -252,6 +257,16 @@ const KnowledgeContent: FC = ({ selectedBase }) => { } } + const showPreprocessIcon = (item: KnowledgeItem) => { + if (base.preprocessOrOcrProvider && item.isPreprocessed !== false) { + return true + } + if (!base.preprocessOrOcrProvider && item.isPreprocessed === true) { + return true + } + return false + } + return ( @@ -369,13 +384,24 @@ const KnowledgeContent: FC = ({ selectedBase }) => { {item.uniqueId && (