iT邦幫忙

2024 iThome 鐵人賽

0

這陣子有RAG的需求,之前用了ChromaDB後,覺得略有不足,包含:

*     資料要自己處理,尤其是PDF
*     如果ChromaDB要建立一個檢索+聊天系統,會需要額外編寫來構建
*     未有關鍵字出現頻率懲罰機制

後來搜尋後找到了兩個RAG工具: RAGFlow與Dify,我先試用的是RAGFlow,這邊就來詳細介紹

安裝

RAGflow有分多種版本,應該說是多種方案,有不含embedding版本、含embedding版本,向量資料庫也可以選擇Elasticsearch或Infinity,這邊就用含embedding版本(向量資料庫使用預設的Elasticsearch)

首先先到RAGflow Github下載RAGflow檔案
https://ithelp.ithome.com.tw/upload/images/20241126/201690956mD7p5buPx.png

將下載後的zip解壓縮之後會看到一個ragflow資料夾,點開後可以看到各種檔案,我們要進入的是docker資料夾
https://ithelp.ithome.com.tw/upload/images/20241126/20169095f4bzjL0keZ.png

這邊先展示等下要用的指令,分別是無embedding model

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
pip3 install huggingface-hub nltk
python3 download_deps.py
docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .

與有embedding model

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
pip3 install huggingface-hub nltk
python3 download_deps.py
docker build -f Dockerfile -t infiniflow/ragflow:dev .

兩者差別在Dockerfile為Dockerfile還是Dockerfile.slim

重點步驟

要執行這段必須用到pip3、python,所以要先到一個有pip3與python的地方,當然如果電腦全域環境有python與pip那可以直接在CMD執行,但我這台電腦沒有,因此藉由Anaconda來輔助運行

1. pip3 install huggingface-hub nltk
pip3 install huggingface-hub nltk

2. python3 download_deps.py,於ragflow資料夾執行這行
3. docker build -f Dockerfile -t infiniflow/ragflow:dev .,這步驟為下載模型,官方說有9G上下,要一陣子。
https://ithelp.ithome.com.tw/upload/images/20241126/20169095VMSyaI3lNH.png
https://ithelp.ithome.com.tw/upload/images/20241126/20169095MQzSVEt9VJ.png

4. docker build -f Dockerfile -t infiniflow/ragflow:dev .,這步驟就是建立Img

5. docker compose up -d,之後進到docker資料夾執行這段,跑完這個就成功了。
https://ithelp.ithome.com.tw/upload/images/20241126/20169095iaq4eXZ7G7.png

使用

於任意瀏覽器輸入localhost:80,即可進入RAGflow介面,剛進去會需要創建帳號,但這是離線的,所以不須太在意帳號密碼的安全性(當然多使用例外)
https://ithelp.ithome.com.tw/upload/images/20241126/20169095UzTutPCAru.png

成功後可進入此畫面
https://ithelp.ithome.com.tw/upload/images/20241126/20169095ncak9Gl4HF.png

進來一一件事就是設定模型,沒有這個會無法使用RAGflowhttps://ithelp.ithome.com.tw/upload/images/20241126/20169095nrnfozwdFs.png
https://ithelp.ithome.com.tw/upload/images/20241126/20169095ta70HHIGx4.png

RAGFlow聊天前必須先建立知識庫,點擊【創建知識庫】即可以創建知識庫,這邊重要的是要選對embedding model與正確的解析方法
https://ithelp.ithome.com.tw/upload/images/20241126/201690957smBgxCFqz.png

之後即可上傳文件讓RAGflow依照設定的參數分析
https://ithelp.ithome.com.tw/upload/images/20241126/20169095DazJE8g9BI.png

解析完成後即可使用
https://ithelp.ithome.com.tw/upload/images/20241126/20169095LbkNlRZ5Xi.png

聊天

有知識庫之後可以建立聊天助理,可以設定多種參數如系統提示語、模型名稱等參數
https://ithelp.ithome.com.tw/upload/images/20241126/20169095HLe8yqYvzi.png
https://ithelp.ithome.com.tw/upload/images/20241126/20169095TaN0McxBBJ.pnghttps://ithelp.ithome.com.tw/upload/images/20241126/20169095Ra0QMbHK8k.png

之後建立會話,即可開始使用RAGflow
https://ithelp.ithome.com.tw/upload/images/20241126/201690956VSAURhSG6.png


上一篇
Retrieval Augmented Generation (RAG) (二) -- RAG實作 (stima api公開測試開始了)
系列文
大型語言模型整合平台Stima API免費試用心得,更新特點、實測、費用與使用技巧!14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言