你好,我是郭震
結合AI大模型能力,構建個人知識庫,做一個問答系統。
很多人都有這種需求。
因為此種模式,既能發揮大模型的AI問答能力,又能考慮到我們自己個性的文件知識庫。
常見的方案有這樣幾種:
1. 呼叫閉源大模型(如ChatGPT, Claude)API,使用向量資料管理個人知識庫;
2. 本地部署開源大模型(如Qwen,Llama),使用向量資料管理個人知識庫;
第一種方式呼叫API需要付費,第二種方式雖然不花錢,但是對個人電腦效能要求很高,執行本地大模型+向量資料庫,兩者疊加得配置一臺高效能電腦,變相增加投入了。
有沒有一個更好的方案,既不花錢,一般電腦又能玩的搭建方法?
我這篇文章的目標就是嘗試探索這樣一種解決方案,幫大家做到既不花錢,又一般電腦也能玩。這個大框架下,再從中選擇最容易搭建的方法,儘量少的安裝第三方工具包,這樣大家非常容易部署。
最好的解決方案,只需要一個程式碼檔案,全部搞定。
好的,朝著目標,咱們走起。
前期準備
1. 準備一臺8G以上記憶體的電腦,無顯示卡也問題不大;
3. 再會一點Python安裝包的技能,基本就是一條命令:pip install 安裝包的名字
方案介紹
既不花錢,一般電腦又能玩的方案,一句話總結:本地大模型(qwen:7b)+ 文件搜尋工具(whoosh)
使用此方案搭建的LLM+個人知識庫,網頁介面demo如下:

若提問內容在我們的文件系統中名字,輸出哪些文件命中,包括內容,然後大模型Qwen自動對內容進行深度分析。
總體來說,這種模式充分發揮了高效能檢索+LLM問答的兩者優勢,用起來還是挺舒服的。
功能介紹
總體功能,這是一款輕量級 LLM(大語言模型)+ 知識庫應用,結合了 Whoosh 全文搜尋引擎和本地化部署的 Qwen-7B 模型,提供高效的知識檢索和智慧問答功能。
功能一:檔案上傳與知識庫構建
功能描述:使用者可以上傳 .docx 檔案,這些檔案的內容會被解析並存儲到知識庫中。系統透過 Whoosh 構建索引。如下圖所示:

大家可以基於我的程式,繼續擴充套件對PDF,Excel,PPT等內容的檢索支援。
此功能核心程式碼:

功能二:知識庫搜尋
功能描述:使用者可以輸入關鍵詞或問題,從知識庫中檢索相關內容。
如果檢索結果重複,系統會自動過濾掉重複項。如下圖所示:

此功能核心程式碼:

功能三:Qwen-7B 智慧問答
功能描述: 若知識庫中檢索到相關內容,系統會繼續呼叫本地部署的 Qwen-7B 模型,對檢索的知識做深度分析;如果未在知識庫搜尋到內容,會直接呼叫大模型回答。如下圖所示:

此功能核心程式碼:

Whoosh介紹
Whoosh 是一個輕量級的全文搜尋引擎庫,用於快速構建本地索引和查詢。它支援靈活的欄位配置、多種查詢型別,並透過純 Python 實現,無需額外依賴,非常適合小型專案或知識庫系統。
Whoosh 工作流程主要分為下面三個步驟:
-
初始化索引:呼叫 initialize_index() 建立或載入索引。詳見程式碼檔案的此函式實現。
-
新增文件:使用者上傳 .docx 檔案後,呼叫 add_document_to_index() 將文件內容分詞並存儲到索引。
-
執行搜尋:使用者輸入查詢關鍵詞後,呼叫 search_knowledge_base() 檢索索引。
更多Whoosh使用介紹參考:https://whoosh.readthedocs.io/

完整程式碼檔案1個,一共118行,如下圖所示,想要完整原始碼部署LLM+個人知識庫的,在下面我的公眾號回覆:知識庫
總結一下
本篇介紹了LLM+個人知識庫搭建方法,此技術方案具有以下優勢:
1. 輕量級和高效:Whoosh 提供快速的全文搜尋能力,無需依賴資料庫或雲服務。本地化的 Qwen-7B 模型,離線執行,節省網路資源。
2. 中文支援:使用 jieba 實現中文分詞,優化了中文文字的索引與查詢。
3. 易於擴充套件:知識庫和智慧問答可以分別擴充套件,如新增更多檔案格式支援或更高效的語言模型。
這種方案除了支援開源大模型外,對於閉源大模型GPT等同樣也是支援的,感興趣的可以玩一下。
以上全文2678字,9張圖。如果這篇文章覺得對你有用,可否點個關注。給我個三連擊:點贊、轉發和在看。若可以再給我加個
,謝謝你看我的文章,我們下篇再見!