Dify Glimpse
2024-11-12
筆記關於使用 Dify 的使用心得,Dify 提供了快速建立 Large Language Model 的各式應用,包含內容生成、對話機器人與工作流程,超級方便。
基本應用
Dify 屬於 Low Code 的開發環境,提供視覺化的方式進行 LLM 設計,相似於各種 LLM 提供的 Playground,但是 Dify 整合了各種 LLM API 以及部署應用的功能,簡單就能夠將 System Pormpt, Context 設定完成作為服務網站或 API 部署提供使用。
Dify 目前有四種物件可供使用,分別是文字生成、對話機器人、AI Agent 與 Workflow。
Workflow 的彈性最大,可以自訂作業流程、串接各式服務來達到自動化與整合的功能。
RAG 應用
Dify 支援 RAG 的應用方式,並且提供 API 方式呼叫 Text-Embedding 或者是離線資源 (免 API) 的方式進行向量化。
透過上傳原始資料集 (pdf, txt, markdown 等),接著進行 Embedding 後,可以構成一個知識庫單位。
在文字生成、對話機器人、AI Agent 與 Workflow 等應用中,可以加上 RAG 的方式進行搜尋資料庫,取得更好的回答。
為了進行 RAG 應用,第一步是要取得原始資料集。一個常見的資料來源需求是將 GitHub Repo 轉換成 Markdwon 格式作為原始資料集,下列的工具可以協助這個動作:
另外單檔案的處理會比多檔案更方便,如果已有多個 txt 或者 markdown 檔案,可以透過簡易的 cmd 操作進行合併:
cat *.md > all.md
雲端環境與本機部署的比較
Dify 屬於開源軟體,但也提供官方的雲端環境,讓使用者不需要煩心部署與平台資源等設定,優點是快速方便,缺點是有限制可以建立的應用服務數量,此外如果強調資料機敏性與安全性的單位,可能無法接受。
而如果要自行部署,可以使用 Docker 的方式來快速部署,跟著步驟進行 Docker Compose 部署 | docs.dify,快速就能部署完成,後續有更新也可以搭配進行更新。
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
結論
透過 Dify 比起自己手工寫 Python 串接各種 API 更是方便了許多,尤其是 low code 的開發方式,讓許多業務人員也可以自己動手實作。對於資料機敏有考量的小型單位,自行部署 Dify 也是一個不錯的選擇。