feat: Add Number of Retrieved Documents on RAG
This commit is contained in:
parent
564b137e66
commit
35b8579028
@ -311,6 +311,11 @@
|
||||
"label": "Knowledge Base Default File Upload Limit",
|
||||
"placeholder": "Enter default file upload limit (e.g., 10)",
|
||||
"required": "Please enter the default file upload limit"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "Number of Retrieved Documents",
|
||||
"placeholder": "Enter Number of Retrieved Documents",
|
||||
"required": "Please enter the number of retrieved documents"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
|
@ -30,7 +30,7 @@
|
||||
"sendNotificationAfterIndexing": {
|
||||
"label": "Enviar notificación después de terminar el procesamiento de la base de conocimientos"
|
||||
},
|
||||
"generateTitle" :{
|
||||
"generateTitle": {
|
||||
"label": "Generar título usando IA"
|
||||
}
|
||||
},
|
||||
@ -310,7 +310,13 @@
|
||||
"totalFilePerKB": {
|
||||
"label": "Límite predeterminado de carga de archivos para la Base de Conocimientos",
|
||||
"placeholder": "Ingrese el límite predeterminado de carga de archivos (ej., 10)",
|
||||
"required": "Por favor, ingrese el límite predeterminado de carga de archivos" }
|
||||
"required": "Por favor, ingrese el límite predeterminado de carga de archivos"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "Número de Documentos Recuperados",
|
||||
"placeholder": "Ingrese el Número de Documentos Recuperados",
|
||||
"required": "Por favor, ingrese el número de documentos recuperados"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"label": "Configurar el Prompt del RAG",
|
||||
|
@ -30,7 +30,7 @@
|
||||
"sendNotificationAfterIndexing": {
|
||||
"label": "ارسال نوتیفیکیشن پس از اتمام پردازش پایگاه دانش"
|
||||
},
|
||||
"generateTitle" :{
|
||||
"generateTitle": {
|
||||
"label": "تولید عنوان با استفاده از هوش مصنوعی"
|
||||
}
|
||||
},
|
||||
@ -309,7 +309,13 @@
|
||||
"totalFilePerKB": {
|
||||
"label": "محدودیت پیشفرض آپلود فایل پایگاه دانش",
|
||||
"placeholder": "محدودیت پیشفرض آپلود فایل را وارد کنید (مثلاً 10)",
|
||||
"required": "لطفاً محدودیت پیشفرض آپلود فایل را وارد کنید" }
|
||||
"required": "لطفاً محدودیت پیشفرض آپلود فایل را وارد کنید"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "تعداد اسناد بازیابی شده",
|
||||
"placeholder": "تعداد اسناد بازیابی شده را وارد کنید",
|
||||
"required": "لطفاً تعداد اسناد بازیابی شده را وارد کنید"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"label": "پیکربندی پرامپت RAG",
|
||||
|
@ -29,8 +29,8 @@
|
||||
},
|
||||
"sendNotificationAfterIndexing": {
|
||||
"label": "Envoyer une notification après avoir terminé le traitement de la base de connaissances"
|
||||
},
|
||||
"generateTitle" :{
|
||||
},
|
||||
"generateTitle": {
|
||||
"label": "Générer le titre en utilisant l'IA"
|
||||
}
|
||||
},
|
||||
@ -310,7 +310,13 @@
|
||||
"totalFilePerKB": {
|
||||
"label": "Limite par défaut de téléchargement de fichiers pour la base de connaissances",
|
||||
"placeholder": "Entrez la limite par défaut de téléchargement de fichiers (par exemple, 10)",
|
||||
"required": "Veuillez saisir la limite par défaut de téléchargement de fichiers" }
|
||||
"required": "Veuillez saisir la limite par défaut de téléchargement de fichiers"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "Nombre de documents récupérés",
|
||||
"placeholder": "Entrez le nombre de documents récupérés",
|
||||
"required": "Veuillez saisir le nombre de documents récupérés"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"label": "Configure RAG Prompt",
|
||||
|
@ -29,8 +29,8 @@
|
||||
},
|
||||
"sendNotificationAfterIndexing": {
|
||||
"label": "Inviare notifica dopo aver terminato l'elaborazione della base di conoscenza"
|
||||
},
|
||||
"generateTitle" :{
|
||||
},
|
||||
"generateTitle": {
|
||||
"label": "Genera titolo utilizzando l'IA"
|
||||
}
|
||||
},
|
||||
@ -308,9 +308,15 @@
|
||||
"required": "Inserisci la Sovrapposizione del Blocco"
|
||||
},
|
||||
"totalFilePerKB": {
|
||||
"label": "Limite Predefinito di Caricamento File per la Base di Conoscenza",
|
||||
"label": "Limite Predefinito di Caricamento File per la Base di Conoscenza",
|
||||
"placeholder": "Inserisci il limite predefinito di caricamento file (es. 10)",
|
||||
"required": "Inserisci il limite predefinito di caricamento file" }
|
||||
"required": "Inserisci il limite predefinito di caricamento file"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "Numero di Documenti Recuperati",
|
||||
"placeholder": "Inserisci il Numero di Documenti Recuperati",
|
||||
"required": "Inserisci il numero di documenti recuperati"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"label": "Configura il Prompt RAG",
|
||||
|
@ -314,6 +314,11 @@
|
||||
"label": "知識ベースのデフォルトファイルアップロード制限",
|
||||
"placeholder": "デフォルトのファイルアップロード制限を入力してください(例:10)",
|
||||
"required": "デフォルトのファイルアップロード制限を入力してください"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "取得ドキュメント数",
|
||||
"placeholder": "取得ドキュメント数を入力",
|
||||
"required": "取得ドキュメント数を入力してください"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
|
@ -314,6 +314,11 @@
|
||||
"label": "വിജ്ഞാനാധാരത്തിന്റെ സ്ഥിര ഫയൽ അപ്ലോഡ് പരിധി",
|
||||
"placeholder": "സ്ഥിര ഫയൽ അപ്ലോഡ് പരിധി നൽകുക (ഉദാ: 10)",
|
||||
"required": "ദയവായി സ്ഥിര ഫയൽ അപ്ലോഡ് പരിധി നൽകുക"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "വീണ്ടെടുത്ത രേഖകളുടെ എണ്ണം",
|
||||
"placeholder": "വീണ്ടെടുത്ത രേഖകളുടെ എണ്ണം നൽകുക",
|
||||
"required": "ദയവായി വീണ്ടെടുത്ത രേഖകളുടെ എണ്ണം നൽകുക"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
|
@ -311,6 +311,11 @@
|
||||
"label": "Limite Padrão de Upload de Arquivos da Base de Conhecimento",
|
||||
"placeholder": "Digite o limite padrão de upload de arquivos (ex: 10)",
|
||||
"required": "Por favor, insira o limite padrão de upload de arquivos"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "Número de Documentos Recuperados",
|
||||
"placeholder": "Digite o Número de Documentos Recuperados",
|
||||
"required": "Por favor, insira o número de documentos recuperados"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
|
@ -312,7 +312,13 @@
|
||||
"totalFilePerKB": {
|
||||
"label": "Лимит загрузки файлов по умолчанию для базы знаний",
|
||||
"placeholder": "Введите лимит загрузки файлов по умолчанию (например, 10)",
|
||||
"required": "Пожалуйста, введите лимит загрузки файлов по умолчанию" }
|
||||
"required": "Пожалуйста, введите лимит загрузки файлов по умолчанию"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "Количество извлеченных документов",
|
||||
"placeholder": "Введите количество извлеченных документов",
|
||||
"required": "Пожалуйста, введите количество извлеченных документов"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"label": "Настройка системной подсказки RAG",
|
||||
|
@ -316,6 +316,11 @@
|
||||
"label": "知识库默认文件上传限制",
|
||||
"placeholder": "输入默认文件上传限制(例如:10)",
|
||||
"required": "请输入默认文件上传限制"
|
||||
},
|
||||
"noOfRetrievedDocs": {
|
||||
"label": "检索文档数量",
|
||||
"placeholder": "输入检索文档数量",
|
||||
"required": "请输入检索文档数量"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
|
@ -10,7 +10,7 @@ import {
|
||||
} from "~/services/ollama"
|
||||
import { SettingPrompt } from "./prompt"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { getTotalFilePerKB } from "@/services/app"
|
||||
import { getNoOfRetrievedDocs, getTotalFilePerKB } from "@/services/app"
|
||||
import { SidepanelRag } from "./sidepanel-rag"
|
||||
|
||||
export const RagSettings = () => {
|
||||
@ -21,20 +21,28 @@ export const RagSettings = () => {
|
||||
const { data: ollamaInfo, status } = useQuery({
|
||||
queryKey: ["fetchRAGSettings"],
|
||||
queryFn: async () => {
|
||||
const [allModels, chunkOverlap, chunkSize, defaultEM, totalFilePerKB] =
|
||||
await Promise.all([
|
||||
getAllModels({ returnEmpty: true }),
|
||||
defaultEmbeddingChunkOverlap(),
|
||||
defaultEmbeddingChunkSize(),
|
||||
defaultEmbeddingModelForRag(),
|
||||
getTotalFilePerKB()
|
||||
])
|
||||
const [
|
||||
allModels,
|
||||
chunkOverlap,
|
||||
chunkSize,
|
||||
defaultEM,
|
||||
totalFilePerKB,
|
||||
noOfRetrievedDocs
|
||||
] = await Promise.all([
|
||||
getAllModels({ returnEmpty: true }),
|
||||
defaultEmbeddingChunkOverlap(),
|
||||
defaultEmbeddingChunkSize(),
|
||||
defaultEmbeddingModelForRag(),
|
||||
getTotalFilePerKB(),
|
||||
getNoOfRetrievedDocs()
|
||||
])
|
||||
return {
|
||||
models: allModels,
|
||||
chunkOverlap,
|
||||
chunkSize,
|
||||
defaultEM,
|
||||
totalFilePerKB
|
||||
totalFilePerKB,
|
||||
noOfRetrievedDocs
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -45,8 +53,15 @@ export const RagSettings = () => {
|
||||
chunkSize: number
|
||||
overlap: number
|
||||
totalFilePerKB: number
|
||||
noOfRetrievedDocs: number
|
||||
}) => {
|
||||
await saveForRag(data.model, data.chunkSize, data.overlap, data.totalFilePerKB)
|
||||
await saveForRag(
|
||||
data.model,
|
||||
data.chunkSize,
|
||||
data.overlap,
|
||||
data.totalFilePerKB,
|
||||
data.noOfRetrievedDocs
|
||||
)
|
||||
return true
|
||||
},
|
||||
onSuccess: () => {
|
||||
@ -75,14 +90,16 @@ export const RagSettings = () => {
|
||||
model: data.defaultEM,
|
||||
chunkSize: data.chunkSize,
|
||||
overlap: data.chunkOverlap,
|
||||
totalFilePerKB: data.totalFilePerKB
|
||||
totalFilePerKB: data.totalFilePerKB,
|
||||
noOfRetrievedDocs: data.noOfRetrievedDocs
|
||||
})
|
||||
}}
|
||||
initialValues={{
|
||||
chunkSize: ollamaInfo?.chunkSize,
|
||||
chunkOverlap: ollamaInfo?.chunkOverlap,
|
||||
defaultEM: ollamaInfo?.defaultEM,
|
||||
totalFilePerKB: ollamaInfo?.totalFilePerKB
|
||||
totalFilePerKB: ollamaInfo?.totalFilePerKB,
|
||||
noOfRetrievedDocs: ollamaInfo?.noOfRetrievedDocs
|
||||
}}>
|
||||
<Form.Item
|
||||
name="defaultEM"
|
||||
@ -142,6 +159,23 @@ export const RagSettings = () => {
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
name="noOfRetrievedDocs"
|
||||
label={t("rag.ragSettings.noOfRetrievedDocs.label")}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
message: t("rag.ragSettings.noOfRetrievedDocs.required")
|
||||
}
|
||||
]}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
placeholder={t(
|
||||
"rag.ragSettings.noOfRetrievedDocs.placeholder"
|
||||
)}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
name="totalFilePerKB"
|
||||
label={t("rag.ragSettings.totalFilePerKB.label")}
|
||||
@ -153,18 +187,18 @@ export const RagSettings = () => {
|
||||
]}>
|
||||
<InputNumber
|
||||
style={{ width: "100%" }}
|
||||
min={1}
|
||||
placeholder={t("rag.ragSettings.totalFilePerKB.placeholder")}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
|
||||
<div className="flex justify-end">
|
||||
<SaveButton disabled={isSaveRAGPending} btnType="submit" />
|
||||
</div>
|
||||
</Form>
|
||||
</div>
|
||||
|
||||
<SidepanelRag />
|
||||
<SidepanelRag />
|
||||
|
||||
<div>
|
||||
<div>
|
||||
|
@ -32,6 +32,7 @@ import { useStorage } from "@plasmohq/storage/hook"
|
||||
import { useStoreChatModelSettings } from "@/store/model"
|
||||
import { getAllDefaultModelSettings } from "@/services/model-settings"
|
||||
import { pageAssistModel } from "@/models"
|
||||
import { getNoOfRetrievedDocs } from "@/services/app"
|
||||
|
||||
export const useMessageOption = () => {
|
||||
const {
|
||||
@ -680,8 +681,9 @@ export const useMessageOption = () => {
|
||||
const response = await questionOllama.invoke(promptForQuestion)
|
||||
query = response.content.toString()
|
||||
}
|
||||
const docSize = await getNoOfRetrievedDocs()
|
||||
|
||||
const docs = await vectorstore.similaritySearch(query, 4)
|
||||
const docs = await vectorstore.similaritySearch(query, docSize)
|
||||
const context = formatDocs(docs)
|
||||
const source = docs.map((doc) => {
|
||||
return {
|
||||
|
@ -108,4 +108,13 @@ export const getTotalFilePerKB = async (): Promise<number> => {
|
||||
|
||||
export const setTotalFilePerKB = async (totalFilePerKB: number): Promise<void> => {
|
||||
await storage.set("totalFilePerKB", totalFilePerKB);
|
||||
};
|
||||
};
|
||||
|
||||
export const getNoOfRetrievedDocs = async (): Promise<number> => {
|
||||
const noOfRetrievedDocs = await storage.get<number>("noOfRetrievedDocs");
|
||||
return noOfRetrievedDocs || 4
|
||||
}
|
||||
|
||||
export const setNoOfRetrievedDocs = async (noOfRetrievedDocs: number): Promise<void> => {
|
||||
await storage.set("noOfRetrievedDocs", noOfRetrievedDocs);
|
||||
}
|
@ -2,7 +2,7 @@ import { Storage } from "@plasmohq/storage"
|
||||
import { cleanUrl } from "../libs/clean-url"
|
||||
import { urlRewriteRuntime } from "../libs/runtime"
|
||||
import { getChromeAIModel } from "./chrome"
|
||||
import { setTotalFilePerKB } from "./app"
|
||||
import { setNoOfRetrievedDocs, setTotalFilePerKB } from "./app"
|
||||
|
||||
const storage = new Storage()
|
||||
|
||||
@ -326,12 +326,14 @@ export const saveForRag = async (
|
||||
model: string,
|
||||
chunkSize: number,
|
||||
overlap: number,
|
||||
totalFilePerKB: number
|
||||
totalFilePerKB: number,
|
||||
noOfRetrievedDocs: number
|
||||
) => {
|
||||
await setDefaultEmbeddingModelForRag(model)
|
||||
await setDefaultEmbeddingChunkSize(chunkSize)
|
||||
await setDefaultEmbeddingChunkOverlap(overlap)
|
||||
await setTotalFilePerKB(totalFilePerKB)
|
||||
await setNoOfRetrievedDocs(noOfRetrievedDocs)
|
||||
}
|
||||
|
||||
export const getWebSearchPrompt = async () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user