前提
本地目前沒有顯卡,只能用cpu剛。
如果不想自己搭建本地模型,完全可以掏錢使用現(xiàn)成的API即可。
需要了解一些docker知識(shí)
搭建本地模型
環(huán)境
os: archlinux
內(nèi)存: 32g
cpu: 6核12線程
docker: 27.3.1
docker-compose: 2.32.4
ollama
pacman -S ollama
systemctl start ollama.service
# 通過下述url判斷ollama是否安裝成功
http://127.0.0.1:11434/
LLM模型 (qwen2:1.5b)
下載
ollama pull qwen2:1.5b
啟動(dòng)
ollama run qwen2:1.5b
測(cè)試
ollama run qwen2:1.5b
>>> who are you?
I am an AI language model, designed to answer questions and provide information on various topics. How can I assist you today?
>>> Send a message (/? for help)
Text Embedding模型 (m3e)
下載
ollama pull milkey/m3e
embedding模型不需要run, ollama服務(wù)啟動(dòng)可直接使用
測(cè)試
curl http://127.0.0.1:11434/api/embed -d '{
"model": "milkey/m3e",
"input": "balabalabala"
}' | jq .
查看模型運(yùn)行情況
ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwen2:1.5b f6daf2b25194 1.5 GB 100% CPU 4 minutes from now
milkey/m3e:latest 1477f12451b0 860 MB 100% CPU 4 minutes from now
構(gòu)建知識(shí)庫(ollama+DIFY)
下載啟動(dòng)dify
參考官方文檔,so easy!
https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose
本地采用的是 #systemd方式* 部署。這里一定要注意,不同的部署方式網(wǎng)絡(luò)配置有點(diǎn)區(qū)別,比如systemd的方式服務(wù)啟動(dòng)需要增加環(huán)境變量OLLAMA_HOST,而對(duì)于docker啟動(dòng)方式,可以參考官方文檔(暫未測(cè)試)
添加模型
這里我們需要兩個(gè)模型,一個(gè)LLM,一個(gè)Text Embedding
qwen2:1.5b模型添加
模型名稱:qwen2:1.5b(必須完整填寫)
基礎(chǔ) URL:http://<your-ollama-endpoint-domain>:11434 (這里的ip要是你本地ip,不能用localhost,127這些。本地是http://10.10.15.159:11434)
模型類型:對(duì)話
模型上下文長度:4096 (模型的最大上下文長度,若不清楚可填寫默認(rèn)值 4096)
最大 token 上限:4096 (模型返回內(nèi)容的最大 token 數(shù)量,若模型無特別說明,則可與模型上下文長度保持一致)
是否支持 Vision:是
保存即可使用
[圖片上傳失敗...(image-fe2e8e-1737446150916)]
milkey/m3e:latest
模型名稱:milkey/m3e:latest (同上)
基礎(chǔ) URL:http://<your-ollama-endpoint-domain>:11434 (這里的ip要是你本地ip,不能用localhost,127這些。本地是http://10.10.15.159:11434)
模型上下文長度:4096
保存即可使用
訪問測(cè)試
創(chuàng)建知識(shí)庫
導(dǎo)入數(shù)據(jù) --> 設(shè)置分段 -->設(shè)置索引及檢索
對(duì)于word這種格式化的數(shù)據(jù),分段模式最好使用 #父子模式* ; 索引方式使用高質(zhì)量模式,使用上述m3e模型來生成索引數(shù)據(jù)。
[圖片上傳失敗...(image-b08719-1737446150916)]
創(chuàng)建聊天助手
知識(shí)庫是沒法直接去使用的,頂多能做個(gè)召回測(cè)試。這里我們創(chuàng)建一個(gè)聊天助手,可以關(guān)聯(lián)知識(shí)庫,這樣能真正使用。
聊天助手創(chuàng)建很簡單,可以選擇頂部工作室 -> 創(chuàng)建空白應(yīng)用
[圖片上傳失敗...(image-a67c29-1737446150916)]
選擇已經(jīng)創(chuàng)建好的知識(shí)庫
[圖片上傳失敗...(image-d3191d-1737446150916)]
應(yīng)用發(fā)布即可
直接通過dify使用
dify默認(rèn)啟動(dòng)使用的是80端口,可以直接通過http://localhost 訪問(首次使用需要注冊(cè)用戶密碼)。 然后選擇探索,選擇我們剛剛創(chuàng)建的聊天助手就可以開始愉快的聊天了。
[圖片上傳失敗...(image-bce325-1737446150916)]
[圖片上傳失敗...(image-6ca954-1737446150916)]
將dify嵌入到自己的應(yīng)用中
可以通過api、iframe之類的方式將自己搭建的聊天助手嵌入到系統(tǒng)中(需要有開發(fā)能力,很簡單)。
知識(shí)庫工作流
[圖片上傳失敗...(image-75d3a9-1737446150916)]
問題處理
dify訪問時(shí)提示11434拒絕
http://10.10.15.159:11434/ 請(qǐng)求失敗
處理
檢查服務(wù)啟動(dòng)正常,需要在service中增加環(huán)境變量 Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo vim /usr/lib/systemd/system/ollama.service
systemctl daemon-reload
systemctl restart ollama.service
其它系統(tǒng)類似,就是讓服務(wù)啟動(dòng)讀取到該變量即可
Reached maximum retries (3) for URL http://localhost:8090/api/system/ext/examples/echo
分析處理
添加工具后,訪問本地接口提示上述錯(cuò)誤, 其實(shí)還是ip的問題,這里使用本地ip,如10.10.15.159。因?yàn)閐ify部署在容器中,localhost有特殊意義