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




























