fix: quota tag

This commit is contained in:
eeee0717
2025-06-13 19:56:17 +08:00
parent f34a8231b0
commit 07c8dfa996
3 changed files with 38 additions and 21 deletions
+2 -2
View File
@@ -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",
@@ -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<KnowledgeContentProps> = ({ selectedBase }) => {
const [expandAll, setExpandAll] = useState(false)
const [progressMap, setProgressMap] = useState<Map<string, number>>(new Map())
const [preprocessMap, setPreprocessMap] = useState<Map<string, boolean>>(new Map())
const [quota, setQuota] = useState<number | undefined>(undefined)
const {
base,
@@ -61,22 +62,14 @@ const KnowledgeContent: FC<KnowledgeContentProps> = ({ 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<KnowledgeContentProps> = ({ selectedBase }) => {
{base.rerankModel.name}
</Tag>
)}
{preprocessProvider && preprocessProvider.quota && (
<Tag color="orange" style={{ borderRadius: 20, margin: 0 }}>
{t('knowledge.quota', {
name: preprocessProvider.name,
quota: preprocessProvider.quota
})}
</Tag>
{base.preprocessOrOcrProvider && base.preprocessOrOcrProvider.type === 'preprocess' && (
<QuotaTag providerId={base.preprocessOrOcrProvider?.provider.id} quota={quota} />
)}
</div>
</ModelInfo>
@@ -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 && (
<Tag color="orange" style={{ borderRadius: 20, margin: 0 }}>
{t('knowledge.quota', {
name: provider.name,
quota: provider.quota
})}
</Tag>
)}
</>
)
}
export default QuotaTag