搭建個(gè)人AI知識(shí)庫-DIFY

前提

本地目前沒有顯卡,只能用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有特殊意義

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容