From 07c8dfa996a5e7f0611f14e4b1ef8b0c95e7120b Mon Sep 17 00:00:00 2001 From: eeee0717 Date: Fri, 13 Jun 2025 19:56:17 +0800 Subject: [PATCH] fix: quota tag --- package.json | 4 +-- .../src/pages/knowledge/KnowledgeContent.tsx | 25 ++++------------ .../pages/knowledge/components/QuotaTag.tsx | 30 +++++++++++++++++++ 3 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 src/renderer/src/pages/knowledge/components/QuotaTag.tsx diff --git a/package.json b/package.json index b2e59e056..36dc4f53e 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,10 @@ "@libsql/client": "0.14.0", "@libsql/win32-x64-msvc": "^0.4.7", "@strongtz/win32-arm64-msvc": "^0.4.7", + "canvas": "3.1.0", "jsdom": "26.1.0", "os-proxy-config": "^1.1.2", + "pdfjs-dist": "4.2.67", "selection-hook": "^0.9.23", "turndown": "7.2.0" }, @@ -137,7 +139,6 @@ "async-mutex": "^0.5.0", "axios": "^1.7.3", "browser-image-compression": "^2.0.2", - "canvas": "3.1.0", "color": "^5.0.0", "dayjs": "^1.11.11", "dexie": "^4.0.8", @@ -182,7 +183,6 @@ "openai": "patch:openai@npm%3A5.1.0#~/.yarn/patches/openai-npm-5.1.0-0e7b3ccb07.patch", "p-queue": "^8.1.0", "pdf-to-img": "^4.4.0", - "pdfjs-dist": "4.2.67", "playwright": "^1.52.0", "prettier": "^3.5.3", "proxy-agent": "^6.5.0", diff --git a/src/renderer/src/pages/knowledge/KnowledgeContent.tsx b/src/renderer/src/pages/knowledge/KnowledgeContent.tsx index 7764deceb..c3a1bc62e 100644 --- a/src/renderer/src/pages/knowledge/KnowledgeContent.tsx +++ b/src/renderer/src/pages/knowledge/KnowledgeContent.tsx @@ -7,7 +7,6 @@ import TextEditPopup from '@renderer/components/Popups/TextEditPopup' import Scrollbar from '@renderer/components/Scrollbar' import Logger from '@renderer/config/logger' import { useKnowledge } from '@renderer/hooks/useKnowledge' -import { usePreprocessProvider } from '@renderer/hooks/usePreprocess' import FileManager from '@renderer/services/FileManager' import { getProviderName } from '@renderer/services/ProviderService' import { FileMetadata, FileTypes, KnowledgeBase, KnowledgeItem } from '@renderer/types' @@ -26,6 +25,7 @@ import FileItem from '../files/FileItem' import { NavbarIcon } from '../home/Navbar' import KnowledgeSearchPopup from './components/KnowledgeSearchPopup' import KnowledgeSettings from './components/KnowledgeSettings' +import QuotaTag from './components/QuotaTag' import StatusIcon from './components/StatusIcon' const { Dragger } = Upload @@ -41,6 +41,7 @@ const KnowledgeContent: FC = ({ selectedBase }) => { const [expandAll, setExpandAll] = useState(false) const [progressMap, setProgressMap] = useState>(new Map()) const [preprocessMap, setPreprocessMap] = useState>(new Map()) + const [quota, setQuota] = useState(undefined) const { base, @@ -61,22 +62,14 @@ const KnowledgeContent: FC = ({ selectedBase }) => { updateItem } = useKnowledge(selectedBase.id || '') - const { provider: preprocessProvider, updatePreprocessProvider } = usePreprocessProvider( - selectedBase.preprocessOrOcrProvider?.provider.id || 'mineru' - ) - const providerName = getProviderName(base?.model.provider || '') const disabled = !base?.version || !providerName useEffect(() => { const handlers = [ window.electron.ipcRenderer.on('file-preprocess-finished', (_, { itemId, quota }) => { setPreprocessMap((prev) => new Map(prev).set(itemId, true)) - if (base?.preprocessOrOcrProvider && quota) { - console.log('[KnowledgeContent] Update preprocess provider quota:', quota) - updatePreprocessProvider({ - ...base.preprocessOrOcrProvider.provider, - quota: quota - }) + if (quota) { + setQuota(quota) } }), @@ -304,14 +297,8 @@ const KnowledgeContent: FC = ({ selectedBase }) => { {base.rerankModel.name} )} - - {preprocessProvider && preprocessProvider.quota && ( - - {t('knowledge.quota', { - name: preprocessProvider.name, - quota: preprocessProvider.quota - })} - + {base.preprocessOrOcrProvider && base.preprocessOrOcrProvider.type === 'preprocess' && ( + )} diff --git a/src/renderer/src/pages/knowledge/components/QuotaTag.tsx b/src/renderer/src/pages/knowledge/components/QuotaTag.tsx new file mode 100644 index 000000000..e3455542f --- /dev/null +++ b/src/renderer/src/pages/knowledge/components/QuotaTag.tsx @@ -0,0 +1,30 @@ +import { usePreprocessProvider } from '@renderer/hooks/usePreprocess' +import { Tag } from 'antd' +import { FC, useEffect } from 'react' +import { useTranslation } from 'react-i18next' + +const QuotaTag: FC<{ providerId: string; quota?: number }> = ({ providerId, quota }) => { + const { t } = useTranslation() + const { provider, updatePreprocessProvider } = usePreprocessProvider(providerId) + + useEffect(() => { + if (quota) { + updatePreprocessProvider({ ...provider, quota }) + } + }, [quota]) + + return ( + <> + {provider.quota && ( + + {t('knowledge.quota', { + name: provider.name, + quota: provider.quota + })} + + )} + + ) +} + +export default QuotaTag