|
落地知識庫,常見的方案有哪些?以下是三種落地知識庫方案
一、基于在線平臺 以Dify為例,了解如何基于平臺搭建Agent+RAG的知識庫 1、Dify 什么是Dify(Define & Modify)?Dify是一個開源的大語言模型(LLM)應用開發(fā)平臺(https://dify.ai/zh),旨在簡化和加速生成式AI應用的創(chuàng)建和部署。該平臺結(jié)合了后端即服務(Backend as Service, BaaS)和LLMOps的理念,為開發(fā)者提供了一個用戶友好的界面和一系列強大的工具,使他們能夠快速搭建生產(chǎn)級的AI應用。它支持多種大型語言模型,如Claude3、OpenAI等,并與多個模型供應商合作,確保開發(fā)者能根據(jù)需求選擇最適合的模型。Dify通過提供強大的數(shù)據(jù)集管理功能、可視化的Prompt編排以及應用運營工具,大大降低了AI應用開發(fā)的復雜度。
2、Dify特點 1)低代碼/無代碼開發(fā):Dify通過可視化的方式允許開發(fā)者輕松定義Prompt、上下文和插件等,無需深入底層技術細節(jié)。 2)模塊化設計:Dify采用模塊化的設計,每個模塊都有清晰的功能和接口,開發(fā)者可以根據(jù)需求選擇性地使用這些模塊來構(gòu)建自己的AI應用。 3)豐富的功能組件:平臺提供了包括AI工作流、RAG管道、Agent、模型管理等豐富功能組件,幫助開發(fā)者從原型到生產(chǎn)的全過程。 4)支持多種大語言模型:Dify已支持主流的模型,開發(fā)者能夠根據(jù)自己的需求選擇最適合的模型來構(gòu)建AI應用。 3、應用場景 Dify提供四種基于LLM構(gòu)建的應用程序,可以針對不同的應用場景和需求進行優(yōu)化和定制。 Dify + RAG搭建知識庫
如何將文檔上傳到Dify知識庫構(gòu)建RAG?將文檔上傳到Dify知識庫的過程涉及多個步驟,從文件選擇、預處理、索引模式選擇到檢索設置,旨在構(gòu)建一個高效、智能的知識檢索系統(tǒng)。
1) 創(chuàng)建知識庫:Dify主導航欄中的“知識”,在此頁面可以看到已有的知識庫。 創(chuàng)建新知識庫:拖放或選擇要上傳的文件,支持批量上傳,但數(shù)量受訂閱計劃限制。 空知識庫選項:如果尚未準備文檔,可選擇創(chuàng)建空知識庫。 外部數(shù)據(jù)源:使用外部數(shù)據(jù)源(如Notion或網(wǎng)站同步)時,知識庫類型將固定,建議為每個數(shù)據(jù)源創(chuàng)建單獨知識庫。
2) 文本預處理與清理:內(nèi)容上傳到知識庫之后,需要進行分塊和數(shù)據(jù)清洗,這個階段可以理解為內(nèi)容的預處理和結(jié)構(gòu)化。 自動模式:Dify自動分割和清理內(nèi)容,簡化文檔準備流程。
自定義模式:對于需要更精細控制的情況,可選擇自定義模式進行手動調(diào)整。 3) 索引模式:根據(jù)應用場景選擇合適的索引模式,如高質(zhì)量模式、經(jīng)濟模式或問答模式。 高質(zhì)量模式:利用Embedding模型將文本轉(zhuǎn)換為數(shù)值向量,支持向量檢索、全文檢索和混合檢索。
經(jīng)濟模式:采用離線向量引擎和關鍵字索引,雖然準確率有所降低,但省去了額外的 token 消耗和相關成本。
問答模式:系統(tǒng)會進行文本分詞,并通過摘要的方式,為每段生成QA問答對。 4) 檢索設置 (1)在高質(zhì)量索引模式下,Dify 提供三種檢索設置:向量搜索、全文搜索、混合搜索 向量搜索:將查詢向量化,計算與知識庫中文本向量的距離,識別最接近的文本塊。
全文搜索:基于關鍵字匹配進行搜索。 混合搜索:結(jié)合向量搜索和全文搜索的優(yōu)勢。 (2)在經(jīng)濟索引模式下,Dify 提供單一檢索設置:倒排索引和TopK 倒排索引:一種為快速檢索文檔中的關鍵字而設計的索引結(jié)構(gòu)。 TopK和分數(shù)閾值:設置檢索結(jié)果的數(shù)量和相似度閾值。 Dify + Agent 如何在Dify平臺搭建Agent?在Dify平臺上,通過選擇模型、編寫提示、添加工具與知識庫、配置推理模式及對話開啟器,最后進行調(diào)試預覽并發(fā)布為Webapp,實現(xiàn)Agent的創(chuàng)建與部署。 1) 探索與集成應用模板 Dify平臺提供了豐富的“探索”(Explore)部分,其中包含多個代理助理的應用模板。用戶可以直接將這些模板集成到自己的工作區(qū)中,快速開始使用。同時還允許用戶創(chuàng)建自定義代理助理,以滿足特定的個人或組織需求。 2) 選擇推理模型 代理助理的任務完成能力很大程度上取決于所選LLM模型的推理能力。建議使用如GPT-4等更強大的模型系列,以獲得更穩(wěn)定、更精確的任務完成結(jié)果。 3)編寫提示與設置流程 在“說明”(Instructions)部分,用戶可以詳細編寫代理助理的任務目標、工作流程、所需資源和限制條件等提示信息。這些信息將幫助代理助理更好地理解并執(zhí)行任務。 4) 添加工具與知識庫 工具集成:在“工具”(Tools)部分,用戶可以添加各種內(nèi)置或自定義工具,以增強代理助理的功能。這些工具可以包括互聯(lián)網(wǎng)搜索、科學計算、圖像創(chuàng)建等,幫助代理助理與現(xiàn)實世界進行更豐富的交互。 知識庫:在“上下文”(Context)部分,用戶可以整合知識庫工具,為代理助理提供外部背景知識和信息檢索能力。 5) 推理模式設置 Dify支持兩種推理模式:Function Calling和ReAct Function Calling:對于支持該模式的模型(如GPT-3.5、GPT-4),建議使用此模式以獲得更好更穩(wěn)定的性能。 ReAct:對于不支持Function Calling的模型系列,Dify提供了ReAct推理框架作為替代方案,以實現(xiàn)類似的功能。 6)配置對話開啟器 用戶可以為代理助理設置對話開場白和初始問題,以便在用戶首次與代理助理交互時,展示其可以執(zhí)行的任務類型和可以提出的問題示例。 7) 調(diào)試與預覽 在將代理助理發(fā)布為應用程序之前,用戶可以在Dify平臺上進行調(diào)試和預覽,以評估其完成任務的有效性和準確性。 8) 應用程序發(fā)布 一旦代理助理配置完成并經(jīng)過調(diào)試,用戶就可以將其發(fā)布為Web應用程序(Webapp),供更多人使用。這將使得代理助理的功能和服務能夠跨平臺、跨設備地提供給更廣泛的用戶群體。
二、基于開源項目 Langchain-Chatchat本地知識庫(開源模型)搭建 LangChain-Chatchat 基于 ChatGLM 等大語言模型與 LangChain 等應用框架實現(xiàn),開源、可離線部署的 RAG 與 Agent 應用項目,目標期望建立一套對中文場景與開源模型支持友好、可離線運行的知識庫問答解決方案。 1、Langchain-Chatchat 介紹 此項目支持市面上主流的開源 LLM、 Embedding 模型與向量數(shù)據(jù)庫,可實現(xiàn)全部使用開源模型離線私有部署。同時也支持 OpenAI GPT API 的調(diào)用,并將在后續(xù)持續(xù)擴充對各類模型及模型 API 的接入。
1)實現(xiàn)原理 1. 加載文件 → 2. 讀取文本 → 3. 文本分割 → 4. 文本向量化 → 5. 問句向量化 → 6. 在文本向量中匹配最相似的 Top K 個 → 7. 將匹配的文本作為上下文,結(jié)合問題構(gòu)造 Prompt → 8. 提交至 LLM 生成回答,如下圖所示
從文檔處理角度來看,實現(xiàn)流程如下:
2)功能介紹 3)模型框架支持 本項目中已經(jīng)支持市面上主流的如 GLM-4-Chat 與 Qwen2-Instruct 等新近開源大語言模型和 Embedding 模型,這些模型需要用戶自行啟動模型部署框架后,通過修改配置信息接入項目,本項目已支持的本地模型部署框架如下:
除上述本地模型加載框架外,項目中也為可接入在線 API 的 One API 框架接入提供了支持,支持包括 OpenAI ChatGPT、Azure OpenAI API、Anthropic Claude、智譜清言、百川 等常用在線 API 的接入使用。 2、構(gòu)建本地知識庫的步驟 1). 環(huán)境配置 在構(gòu)建本地知識庫之前,需要確保滿足一定的硬件與軟件要求。硬件方面,推薦使用NVIDIA顯卡配置,具體取決于模型大小。軟件方面,需要確保Python環(huán)境和必要的依賴庫安裝,如langchain、faiss、chroma等。 2). 模型下載與初始化 使用Git LFS安裝工具來下載模型文件,并確保模型文件夾名稱與配置文件中的模型名稱一致。接著,通過示例腳本初始化知識庫和配置文件,包括設置大模型存放路徑、嵌入模型等。 3). 數(shù)據(jù)處理與向量化 構(gòu)建知識庫的關鍵步驟之一是數(shù)據(jù)處理與向量化。這包括讀取文本數(shù)據(jù)、將文本分割成可管理和理解的部分、使用嵌入模型將文本轉(zhuǎn)換為向量等。Langchain-Chatchat提供了完善的工具鏈來支持這些步驟,如DirectoryLoader用于加載文件夾中的文件,CharacterTextSplitter用于切割文檔,以及OpenAIEmbeddings用于計算嵌入向量。 4). 匹配查詢與生成答案 在向量庫中查找與問題最相似的部分,并集成上下文和問題以生成答案,是使用Langchain-Chatchat構(gòu)建知識庫問答機器人的另一個關鍵步驟。這通常涉及使用語言模型(LLM)進行理解和生成。Langchain-Chatchat支持多種開源模型和向量數(shù)據(jù)庫,如ChatGLM、LLaMA、Qwen、Yi等模型,以及FAISS、Chroma、Milvus等向量數(shù)據(jù)庫,滿足不同需求與場景。 5). 部署與訪問 完成上述步驟后,可以通過一鍵啟動服務來訪問Web UI或API服務。Langchain-Chatchat提供了詳細的啟動指南和訪問鏈接,使得開發(fā)者能夠輕松地在本地或網(wǎng)絡受限環(huán)境中部署問答機器人。 三、從0開始搭建 1、本地部署 RAG 知識庫的核心優(yōu)勢 數(shù)據(jù)隱私保護:所有數(shù)據(jù)在本地處理,避免敏感信息外泄,尤其適合教育、醫(yī)療等隱私敏感領域812。 成本控制:長期使用成本顯著低于依賴云服務 API,老舊設備(如 16GB 內(nèi)存 + 8GB 顯存)也能運行12。 定制化能力:支持私有知識庫嵌入(如企業(yè)文檔、個人筆記),提升模型回答的精準性812。 離線可用性:無需網(wǎng)絡連接,解決服務器擁堵問題,響應速度更快 2、開源模型(可本地部署) 1).Meta 的 LLaMA 系列(美國) LLaMA/LLaMA 2:參數(shù)規(guī)模 7B-70B,開源推動社區(qū)衍生模型(如 Alpaca、Vicuna)。 應用場景:學術研究、定制化開發(fā)。 2).Mistral AI 系列(法國) Mistral 7B/8x7B:高效小參數(shù)模型,性能媲美更大規(guī)模模型。 Mixtral 8x22B:混合專家(MoE)架構(gòu),支持多語言。 3).中國開源模型 智譜AI的 ChatGLM-6B/GLM-4:中英雙語優(yōu)化,支持低成本部署。 零一萬物 Yi 系列:Yi-34B 在多項基準測試中表現(xiàn)優(yōu)異。 深度求索的 DeepSeek:數(shù)學與代碼能力突出。 3 從零到一使用Ollama搭建本地大模型與知識庫 Ollama是一款簡單易用的開源工具,能夠讓你在本地輕松運行各種大模型。它支持多種操作系統(tǒng),包括Windows、Mac和Linux,甚至可以在樹莓派這樣的低功耗設備上運行。Ollama的安裝和使用都非常簡單,特別適合初學者和想要快速搭建本地大模型的開發(fā)者。 1)、安裝Ollama 下載與安裝 訪問Ollama的官方網(wǎng)站:https://ollama.com/ 點擊下載按鈕,選擇適合你操作系統(tǒng)的版本進行下載。 安裝包下載完成后,雙擊運行安裝程序,按照提示完成安裝。 驗證安裝 安裝完成后,打開命令行工具(在Windows中是CMD或PowerShell,Mac中是Terminal)。 輸入ollama -v,如果顯示版本號,則表示安裝成功。 2)、配置Ollama 為了避免大模型占用過多C盤空間,你可以修改Ollama的模型保存路徑。
修改環(huán)境變量 右鍵點擊“此電腦”(Windows)或“系統(tǒng)偏好設置”(Mac),選擇“屬性”或“高級系統(tǒng)設置”。 進入“環(huán)境變量”設置,新建一個名為OLLAMA_MODELS的變量,并指向你希望存放模型的目錄。 3)、下載并運行大模型 選擇并下載大模型 Ollama支持多種大模型,你可以在Ollama的官方模型庫中選擇合適的模型進行下載。 例如,要下載經(jīng)過中文微調(diào)的Llama3-8b大模型,你可以在命令行中輸入:
運行大模型 下載完成后,模型會自動啟動一個對話界面。你可以開始與它進行交互了。 4)、安裝并使用AnythingLLM AnythingLLM是一個功能強大的大模型開發(fā)工具,可以幫助你更好地管理和使用本地大模型。 下載與安裝 訪問AnythingLLM的官方網(wǎng)站:https://useanything.com/ 下載并安裝適合你操作系統(tǒng)的版本。 配置并連接Ollama 打開AnythingLLM,在配置界面中輸入Ollama服務器的地址(默認是http://127.0.0.1:11434)。 選擇你想要使用的Ollama模型。 5)、創(chuàng)建本地知識庫 上傳并導入文檔
在AnythingLLM中,創(chuàng)建一個新的工作空間,并上傳你的私有知識文檔。 將上傳的文件導入到工作空間中,并等待文件向量化入庫。 設置知識庫模式
根據(jù)你的需求,選擇合適的知識庫模式。 6)、應用與擴展 現(xiàn)在,你已經(jīng)成功搭建了一個本地的大模型與知識庫,可以隨時隨地與它進行交互了。 你還可以根據(jù)需要,繼續(xù)下載和運行其他大模型,或者擴展你的知識庫。 |




























