diff --git a/src/assets/locale/en/settings.json b/src/assets/locale/en/settings.json index 9d38d57..23eaadc 100644 --- a/src/assets/locale/en/settings.json +++ b/src/assets/locale/en/settings.json @@ -288,6 +288,11 @@ "label": "Chunk Overlap", "placeholder": "Enter Chunk Overlap", "required": "Please enter a chunk overlap" + }, + "totalFilePerKB": { + "label": "Knowledge Base Default File Limit", + "placeholder": "Enter default file limit (e.g., 10)", + "required": "Please enter the default file limit" } }, "prompt": { diff --git a/src/assets/locale/es/settings.json b/src/assets/locale/es/settings.json index e4df0e0..37a79f2 100644 --- a/src/assets/locale/es/settings.json +++ b/src/assets/locale/es/settings.json @@ -288,6 +288,11 @@ "label": "Solapamiento del Chunk", "placeholder": "Ingrese el solapamiento del chunk", "required": "Por favor, ingresar el solapamiento del chunk" + }, + "totalFilePerKB": { + "label": "Límite predeterminado de archivos de la base de conocimientos", + "placeholder": "Ingrese el límite predeterminado de archivos (ej. 10)", + "required": "Por favor, ingrese el límite predeterminado de archivos" } }, "prompt": { diff --git a/src/assets/locale/fr/settings.json b/src/assets/locale/fr/settings.json index 6af2a68..3c40563 100644 --- a/src/assets/locale/fr/settings.json +++ b/src/assets/locale/fr/settings.json @@ -288,6 +288,11 @@ "label": "Chevauchement", "placeholder": "Entrez le chevauchement des morceaux", "required": "Veuillez saisir un chevauchement" + }, + "totalFilePerKB": { + "label": "Limite par défaut de fichiers de la base de connaissances", + "placeholder": "Entrez la limite par défaut de fichiers (ex. 10)", + "required": "Veuillez entrer la limite par défaut de fichiers" } }, "prompt": { diff --git a/src/assets/locale/it/settings.json b/src/assets/locale/it/settings.json index 31aed04..302bd9d 100644 --- a/src/assets/locale/it/settings.json +++ b/src/assets/locale/it/settings.json @@ -288,6 +288,11 @@ "label": "Sovrapposizione del Blocco (Chunk Overlap)", "placeholder": "Inserisci la Sovrapposizione del Blocco (Chunk Overlap)", "required": "Inserisci la Sovrapposizione del Blocco" + }, + "totalFilePerKB": { + "label": "Limite predefinito di file della base di conoscenza", + "placeholder": "Inserisci il limite predefinito di file (es. 10)", + "required": "Inserisci il limite predefinito di file" } }, "prompt": { diff --git a/src/assets/locale/ja-JP/settings.json b/src/assets/locale/ja-JP/settings.json index f11105b..897af95 100644 --- a/src/assets/locale/ja-JP/settings.json +++ b/src/assets/locale/ja-JP/settings.json @@ -291,6 +291,11 @@ "label": "チャンクオーバーラップ", "placeholder": "チャンクオーバーラップを入力", "required": "チャンクオーバーラップを入力してください" + }, + "totalFilePerKB": { + "label": "ナレッジベースのデフォルトファイル制限", + "placeholder": "デフォルトのファイル制限を入力してください(例:10)", + "required": "デフォルトのファイル制限を入力してください" } }, "prompt": { diff --git a/src/assets/locale/ml/settings.json b/src/assets/locale/ml/settings.json index d46f628..0f9c957 100644 --- a/src/assets/locale/ml/settings.json +++ b/src/assets/locale/ml/settings.json @@ -291,6 +291,11 @@ "label": "ചങ്ക് ഓവര്‍ലാപ്പ്", "placeholder": "ചങ്ക് ഓവര്‍ലാപ്പ് നല്കുക", "required": "ദയവായി ചങ്ക് ഓവര്‍ലാപ്പ് നല്കുക" + }, + "totalFilePerKB": { + "label": "Limite padrão de arquivos da base de conhecimento", + "placeholder": "Digite o limite padrão de arquivos (ex. 10)", + "required": "Por favor, digite o limite padrão de arquivos" } }, "prompt": { diff --git a/src/assets/locale/pt-BR/settings.json b/src/assets/locale/pt-BR/settings.json index f396d0a..3c9f982 100644 --- a/src/assets/locale/pt-BR/settings.json +++ b/src/assets/locale/pt-BR/settings.json @@ -288,6 +288,11 @@ "label": "Sobreposição do Pedaço", "placeholder": "Digite a Sobreposição do Pedaço", "required": "Por favor, insira uma sobreposição de pedaço" + }, + "totalFilePerKB": { + "label": "Limite padrão de arquivos da base de conhecimento", + "placeholder": "Digite o limite padrão de arquivos (ex. 10)", + "required": "Por favor, digite o limite padrão de arquivos" } }, "prompt": { diff --git a/src/assets/locale/ru/settings.json b/src/assets/locale/ru/settings.json index bf85524..59ac7bc 100644 --- a/src/assets/locale/ru/settings.json +++ b/src/assets/locale/ru/settings.json @@ -289,6 +289,11 @@ "label": "Перекрытие фрагментов", "placeholder": "Введите перекрытие фрагментов", "required": "Пожалуйста, введите перекрытие фрагментов" + }, + "totalFilePerKB": { + "label": "Стандартный лимит файлов базы знаний", + "placeholder": "Введите стандартный лимит файлов (напр. 10)", + "required": "Пожалуйста, введите стандартный лимит файлов" } }, "prompt": { diff --git a/src/assets/locale/zh/settings.json b/src/assets/locale/zh/settings.json index 7b93060..1bfe53f 100644 --- a/src/assets/locale/zh/settings.json +++ b/src/assets/locale/zh/settings.json @@ -293,6 +293,11 @@ "label": "嵌入重叠", "placeholder": "256-∞", "required": "请输入嵌入重叠" + }, + "totalFilePerKB": { + "label": "知识库默认文件限制", + "placeholder": "输入默认文件限制(例如:10)", + "required": "请输入默认文件限制" } }, "prompt": { diff --git a/src/components/Option/Knowledge/AddKnowledge.tsx b/src/components/Option/Knowledge/AddKnowledge.tsx index 2c1ffd9..a06f35e 100644 --- a/src/components/Option/Knowledge/AddKnowledge.tsx +++ b/src/components/Option/Knowledge/AddKnowledge.tsx @@ -7,6 +7,7 @@ import { InboxIcon } from "lucide-react" import { useTranslation } from "react-i18next" import PubSub from "pubsub-js" import { KNOWLEDGE_QUEUE } from "@/queue" +import { useStorage } from "@plasmohq/storage/hook" type Props = { open: boolean @@ -16,6 +17,7 @@ type Props = { export const AddKnowledge = ({ open, setOpen }: Props) => { const { t } = useTranslation(["knowledge", "common"]) const [form] = Form.useForm() + const [totalFilePerKB] = useStorage("totalFilePerKB", 10) const onUploadHandler = async (data: { title: string @@ -92,7 +94,7 @@ export const AddKnowledge = ({ open, setOpen }: Props) => { { const allowedTypes = [ "application/pdf", diff --git a/src/components/Option/Settings/rag.tsx b/src/components/Option/Settings/rag.tsx index 95ab7c9..23bd0d6 100644 --- a/src/components/Option/Settings/rag.tsx +++ b/src/components/Option/Settings/rag.tsx @@ -10,6 +10,7 @@ import { } from "~/services/ollama" import { SettingPrompt } from "./prompt" import { useTranslation } from "react-i18next" +import { getTotalFilePerKB } from "@/services/app" export const RagSettings = () => { const { t } = useTranslation("settings") @@ -19,19 +20,20 @@ export const RagSettings = () => { const { data: ollamaInfo, status } = useQuery({ queryKey: ["fetchRAGSettings"], queryFn: async () => { - const [allModels, chunkOverlap, chunkSize, defaultEM] = await Promise.all( - [ + const [allModels, chunkOverlap, chunkSize, defaultEM, totalFilePerKB] = + await Promise.all([ getAllModels({ returnEmpty: true }), defaultEmbeddingChunkOverlap(), defaultEmbeddingChunkSize(), - defaultEmbeddingModelForRag() - ] - ) + defaultEmbeddingModelForRag(), + getTotalFilePerKB() + ]) return { models: allModels, chunkOverlap, chunkSize, - defaultEM + defaultEM, + totalFilePerKB } } }) @@ -41,8 +43,9 @@ export const RagSettings = () => { model: string chunkSize: number overlap: number + totalFilePerKB: number }) => { - await saveForRag(data.model, data.chunkSize, data.overlap) + await saveForRag(data.model, data.chunkSize, data.overlap, data.totalFilePerKB) return true }, onSuccess: () => { @@ -70,13 +73,15 @@ export const RagSettings = () => { saveRAG({ model: data.defaultEM, chunkSize: data.chunkSize, - overlap: data.chunkOverlap + overlap: data.chunkOverlap, + totalFilePerKB: data.totalFilePerKB }) }} initialValues={{ chunkSize: ollamaInfo?.chunkSize, chunkOverlap: ollamaInfo?.chunkOverlap, - defaultEM: ollamaInfo?.defaultEM + defaultEM: ollamaInfo?.defaultEM, + totalFilePerKB: ollamaInfo?.totalFilePerKB }}> { rules={[ { required: true, - message: t( - "rag.ragSettings.model.required" - ) + message: t("rag.ragSettings.model.required") } ]}>