手把手教你實(shí)現(xiàn) Ollama+FastGPT+DeepSeek 打造個(gè)人專屬 AI 知識庫!
本文從零實(shí)現(xiàn),基于Ollama、FastGPT、Deepseek在本地環(huán)境中打造屬于自己的專業(yè)知識庫,與大家分享~
一、本地部署Ollama
Ollama是一個(gè)開源的本地大語言模型運(yùn)行框架,專為在本地機(jī)器上便捷部署和運(yùn)行大語言模型(LLM)而設(shè)計(jì),無需依賴云端服務(wù)。它提供簡單易用的界面和優(yōu)化的推理引擎,幫助我們輕松加載、管理和運(yùn)行各種AI模型。
1. 下載Ollama
要使用Ollama,首先需要下載并安裝它。訪問以下鏈接:https://ollama.com/download
找到適合你操作系統(tǒng)的版本進(jìn)行下載,默認(rèn)安裝即可。這里筆者以Windows系統(tǒng)為例。
注:Ollama官網(wǎng)提供的地址下載速度很慢,而且中途崩潰很容易下載失敗,著急的小伙伴也可以從 https://ollama.zhike.in/ 下載,親測好用!
2. 部署DeepSeek R1模型
接下來,我們來安裝一個(gè)具體的語言模型——DeepSeek-R1。
打開Ollama官網(wǎng),點(diǎn)擊Models菜單,選擇進(jìn)入deepseek-r1模型詳情頁面。
根據(jù)自己的需求選擇合適的版本,并復(fù)制對應(yīng)的ollama安裝命令。這里以deepseek-r1:1.5b為例,其中1.5b表示模型參數(shù)量為1.5億。
打開終端(Windows用戶可以用CMD或PowerShell),輸入剛剛復(fù)制的命令并回車。
等待運(yùn)行完成,如果看到success提示,說明安裝成功了!
測試一下模型是否正常工作,輸入 “請問你是誰?”,看看模型能否正確回答。
3. 部署Embedding模型
為了后續(xù)搭建知識庫,我們還需要安裝一個(gè)嵌入模型。Embedding Model的作用是將文本轉(zhuǎn)換成向量形式,方便進(jìn)行搜索和匹配。
在Ollama官網(wǎng)的Models頁面,找到一個(gè)Embedding Model。這里選擇一個(gè)比較小的模型:nomic-embed-text。
復(fù)制對應(yīng)的安裝命令:
ollama pull nomic-embed-text
在終端中運(yùn)行該命令,等待安裝完成。如果看到 success 提示,說明安裝成功了!
最后,輸入ollama list命令,查看ollama是否部署成功。
二、下載并安裝ubuntu
為了更好地運(yùn)行FastGPT,官方建議將源代碼和其他數(shù)據(jù)存儲在Linux文件系統(tǒng)中,而不是Windows文件系統(tǒng)中。因此,這里我們使用Microsoft Store中的Ubuntu來安裝FastGPT。
打開Microsoft Store,在搜索框中輸入“Ubuntu”,選擇下載并安裝 Ubuntu 22.04.5 LTS 版本。
安裝完成后,打開Ubuntu應(yīng)用,進(jìn)入初始配置界面。按照提示設(shè)置一個(gè)用戶名和密碼。
「注意」:安裝完成后,Ubuntu會自動(dòng)掛載到Windows的WSL(Windows Subsystem for Linux)環(huán)境中,后續(xù)我們可以通過Windows資源管理器訪問Ubuntu的文件系統(tǒng)。
1. Ubuntu準(zhǔn)備docker環(huán)境
安裝Docker,運(yùn)行以下命令通過阿里云鏡像安裝Docker,并啟動(dòng)Docker服務(wù)并設(shè)置為開機(jī)自啟。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo systemctl enable --now docker
安裝Docker-compose。運(yùn)行以下命令下載Docker-compos二進(jìn)制文件,并賦予執(zhí)行權(quán)限。
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
驗(yàn)證安裝。
docker -v
docker-compose -v
三、部署FastGPT
1. 創(chuàng)建FastGPT目錄并下載配置文件
接下來,我們需要在Ubuntu中創(chuàng)建一個(gè)目錄用于存放FastGPT的相關(guān)文件,并下載必要的配置文件。
打開Ubuntu終端,執(zhí)行以下命令創(chuàng)建 fastgpt 目錄:
mkdir fastgpt
進(jìn)入剛創(chuàng)建的目錄:
cd fastgpt
下載FastGPT的配置文件config.json和docker-compose.yml:
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-pgvector.yml
其中:
- config.json是FastGPT的核心配置文件,包含了項(xiàng)目的基本設(shè)置。
- docker-compose.yml 是Docker容器的配置文件,用于定義FastGPT所需的運(yùn)行環(huán)境。
通過WSL,Ubuntu的文件系統(tǒng)會被掛載到Windows中,我們可以直接在Windows資源管理器中訪問這些文件。
打開Windows資源管理器,在地址欄輸入以下路徑,將看到剛剛在Ubuntu中創(chuàng)建的fastgpt文件夾,以及其中下載的兩個(gè)文件:config.json 和 docker-compose.yml。
\\wsl.localhost\Ubuntu-22.04\home\username\fastgpt
2. 修改配置文件docker-compose.yml
使用文本編輯器打開 docker-compose.yml 文件,這里以 vim 為例:
vim docker-compose.yml
找到 FE_DOMAIN 和 OPENAI_BASE_URL 兩個(gè)配置項(xiàng),并進(jìn)行如下修改:
- FE_DOMAIN:設(shè)置前端訪問地址為 http://localhost:3000。
- OPENAI_BASE_URL:設(shè)置AI模型的API地址為 http://host.docker.internal:3001/v1。
修改完成后,關(guān)閉當(dāng)前終端并重新打開一個(gè)新終端,以確保配置生效。
3. 啟動(dòng)容器
在fastgpt目錄下,運(yùn)行以下命令啟動(dòng)容器:
docker-compose up -d
如報(bào)錯(cuò):
The command 'docker-compose' could not be found in this WSL 2 distro. We recommend to activate the WSL integration in Docker Desktop settings,需啟用Docker Desktop的WSL 2集成。
啟動(dòng)成功后會在Docker中看到fastgpt及其組件。
4. 配置OneAPI
(1) 登錄OneAPI
打開OneAPI地址:http://localhost:3001/
首次登錄默認(rèn)密碼是root/123456。登錄后根據(jù)提示修改密碼。
(2) 添加渠道
在OneAPI的管理頁面中,點(diǎn)擊“渠道”選項(xiàng),然后選擇“添加新的渠道”。
填寫以下信息:
- 渠道類型:選擇Ollama。
- 名稱:隨便填寫,例如 ollama:deepseek-r1:1.5b。
- 模型:先清空默認(rèn)模型列表,然后手動(dòng)輸入deepseek-r1:1.5b并確認(rèn)添加。
- 密鑰:隨意填寫一個(gè)字符串(例如123456)即可。
- 代理地址:填寫 http://host.docker.internal:11434。
完成填寫后,點(diǎn)擊“提交”按鈕保存配置。
提交完成后,再點(diǎn)擊“渠道->測試”,開始測試模型,確保渠道能夠正常工作。如果顯示“測試成功”,說明配置正確。
同樣在“渠道”頁面,點(diǎn)擊“新增渠道”,填寫以下信息,添加嵌入模型渠道,并測試。
(3) 添加令牌
在 OneAPI 的管理頁面中,點(diǎn)擊“令牌”菜單,然后選擇“添加新的令牌”。
填寫以下信息:
- 令牌名稱:隨便填寫一個(gè)容易識別的名字,例如ollama:deepseek-r1:1.5b。
- 關(guān)聯(lián)模型:留空。
- 過期時(shí)間:選擇“永不過期”。
- 額度:選擇“設(shè)為無限額度”。
完成填寫后,點(diǎn)擊“提交”按鈕生成令牌。
生成后,系統(tǒng)會自動(dòng)顯示新的令牌值,請點(diǎn)擊“復(fù)制”按鈕保存起來,后續(xù)配置中需要用到該令牌。
(4) 修改docker-compose.yml配置文件
將上述復(fù)制的令牌密鑰添加到CHAT_API_KEY變量。
5. 配置fastgpt
在Docker Desktop中找到并點(diǎn)擊fastgpt容器,打開FastGPT的管理頁面。
默認(rèn)的登錄賬號和密碼是:
- 用戶名:root
- 密碼:1234
登錄后,你會看到如下界面:
(1) 配置模型
打開 FastGPT 的工作臺,點(diǎn)擊“賬號”選項(xiàng),然后選擇“模型提供商”。在模型提供商頁面中,找到并點(diǎn)擊“模型配置”,再點(diǎn)擊右上角的“新增模型”按鈕。
添加語言模型deepseek,在彈出的窗口中填寫以下信息:
- 模型ID:這個(gè)ID必須與OneAPI中的ID一致。
- 模型提供商:選擇Ollama。
- 別名:給模型起一個(gè)便于識別的名字,比如ollama:deepseek-r1:1.5b。
填寫完成后,點(diǎn)擊“確認(rèn)”保存。
添加索引模型,同樣點(diǎn)擊“新增模型”,這次我們添加一個(gè)索引模型:
- 模型ID:可以是任意有效的ID,這里同樣的與OneAPI中的ID一致。
- 模型提供商:選擇Ollama。
- 別名:nomic-embed-text。
填寫完成后,點(diǎn)擊“確認(rèn)”保存。
模型添加好后,在模型列表中找到你剛添加的語言模型和索引模型,點(diǎn)擊旁邊的“測試”按鈕。
如果一切正常,系統(tǒng)會顯示“成功”的提示信息。這說明模型已經(jīng)正確配置并且可以正常使用了。
6. 創(chuàng)建應(yīng)用
打開FastGPT的工作臺,點(diǎn)擊“新建->簡易應(yīng)用”按鈕,準(zhǔn)備創(chuàng)建一個(gè)簡單的應(yīng)用。
給應(yīng)用起個(gè)名字,比如我這里隨便起了個(gè)名字叫fastgpt_test。選擇“空白應(yīng)用”選項(xiàng),然后點(diǎn)擊“確認(rèn)”創(chuàng)建。
在應(yīng)用的設(shè)置頁面中,找到AI模型的選擇項(xiàng)。從下拉菜單中選擇我們之前配置好的模型:Ollama->deepseek。
配置完成后,可以在右側(cè)的聊天區(qū)域進(jìn)行測試。試著輸入一個(gè)問題,比如:“請問你是誰?”“你來自哪里?”
如果一切正常,系統(tǒng)會很快返回答案,說明我們的應(yīng)用已經(jīng)可以正常使用了!
7. 添加本地知識庫
首先新建知識庫,在左側(cè)菜單欄找到“知識庫”選項(xiàng),點(diǎn)擊右上角的“新建”按鈕。選擇“通用知識庫”。
填入知識庫的名稱,然后選擇索引模型和文本理解模型。這兩個(gè)模型我們之前已經(jīng)在Ollama中配置好了,直接選擇即可。最后點(diǎn)擊“確認(rèn)”創(chuàng)建。
進(jìn)入創(chuàng)建的知識庫中,點(diǎn)擊“新建/導(dǎo)入”->“表格數(shù)據(jù)集”,以新建一個(gè)表格數(shù)據(jù)集。
從本地上傳需要的知識庫文件。(注:這里筆者選擇的是csv文件,我們也可以選擇上傳txt等格式。)
上傳完成后,點(diǎn)擊“下一步”,進(jìn)行參數(shù)設(shè)置,默認(rèn)使用直接分塊方式分割內(nèi)容。當(dāng)頁面顯示“已就緒”,說明知識庫已經(jīng)成功搭建好了。
點(diǎn)擊進(jìn)入知識庫,可以看到系統(tǒng)已經(jīng)將文檔內(nèi)容分段處理成了一個(gè)個(gè)問答對。
8. 測試知識庫
回到工作臺,打開之前創(chuàng)建好的應(yīng)用fastgpt_test,在應(yīng)用的設(shè)置中找到“關(guān)聯(lián)知識庫”選項(xiàng),點(diǎn)擊“選擇”,然后選中剛剛創(chuàng)建的本地知識庫(比如“兒科醫(yī)療問答”),最后點(diǎn)擊“完成”。
輸入一個(gè)問題試試效果,比如:“嬰兒眼睛多久能看到東西?”系統(tǒng)會給出答案,并顯示引用的知識庫文檔內(nèi)容,還會提供處理時(shí)間和詳細(xì)信息。
至此,我們已經(jīng)成功搭建了一個(gè)本地知識庫,并將其與應(yīng)用關(guān)聯(lián)起來。