From 768ff2e5558d759e3f5a0e3d1a171223014031f1 Mon Sep 17 00:00:00 2001 From: n4ze3m Date: Sat, 12 Oct 2024 23:32:00 +0530 Subject: [PATCH] feat: Improve model selection and embedding Refactor embedding models and their handling to improve performance and simplify the process. Add a new model selection mechanism, and enhance the UI for model selection, offering clearer and more user-friendly options for embedding models. Refactor embeddings to use a common model for page assist and RAG, further improving performance and streamlining the workflow. --- src/components/Option/Settings/rag.tsx | 28 +++++++++++++------- src/hooks/useMessage.tsx | 4 +-- src/hooks/useMessageOption.tsx | 4 +-- src/libs/process-knowledge.ts | 4 +-- src/models/OAIEmbedding.ts | 16 +----------- src/models/embedding.ts | 36 ++++++++++++++++++++++++++ src/models/index.ts | 2 +- src/services/ollama.ts | 24 ++++++++++++++++- src/utils/memory-embeddings.ts | 2 +- src/web/search-engines/brave.ts | 5 ++-- src/web/search-engines/duckduckgo.ts | 4 +-- src/web/search-engines/google.ts | 4 +-- src/web/search-engines/sogou.ts | 4 +-- src/web/website/index.ts | 4 +-- 14 files changed, 98 insertions(+), 43 deletions(-) create mode 100644 src/models/embedding.ts diff --git a/src/components/Option/Settings/rag.tsx b/src/components/Option/Settings/rag.tsx index fd5d576..8cc6bbf 100644 --- a/src/components/Option/Settings/rag.tsx +++ b/src/components/Option/Settings/rag.tsx @@ -5,13 +5,14 @@ import { defaultEmbeddingChunkOverlap, defaultEmbeddingChunkSize, defaultEmbeddingModelForRag, - getAllModels, + getEmbeddingModels, saveForRag } from "~/services/ollama" import { SettingPrompt } from "./prompt" import { useTranslation } from "react-i18next" import { getNoOfRetrievedDocs, getTotalFilePerKB } from "@/services/app" import { SidepanelRag } from "./sidepanel-rag" +import { ProviderIcons } from "@/components/Common/ProviderIcon" export const RagSettings = () => { const { t } = useTranslation("settings") @@ -29,7 +30,7 @@ export const RagSettings = () => { totalFilePerKB, noOfRetrievedDocs ] = await Promise.all([ - getAllModels({ returnEmpty: true }), + getEmbeddingModels({ returnEmpty: true }), defaultEmbeddingChunkOverlap(), defaultEmbeddingChunkSize(), defaultEmbeddingModelForRag(), @@ -113,18 +114,27 @@ export const RagSettings = () => { ]}>