dify docker部署全過程
簡紹
Dify 是一款開源的大語言模型(LLM) 應用開發(fā)平臺。它融合了后端即服務(Backend as Service)和 LLMOps 的理念,使開發(fā)者可以快速搭建生產(chǎn)級的生成式 AI 應用。即使你是非技術人員,也能參與到 AI 應用的定義和數(shù)據(jù)運營過程中。
由于 Dify 內(nèi)置了構(gòu)建 LLM 應用所需的關鍵技術棧,包括對數(shù)百個模型的支持、直觀的 Prompt 編排界面、高質(zhì)量的 RAG 引擎、穩(wěn)健的 Agent 框架、靈活的流程編排,并同時提供了一套易用的界面和 API。這為開發(fā)者節(jié)省了許多重復造輪子的時間,使其可以專注在創(chuàng)新和業(yè)務需求上。
docker dify 部署
官網(wǎng)地址:
https://docs.dify.ai/zh-hans/guides/knowledge-base
去官方倉庫 將代碼 拉下來
git clone https://github.com/langgenius/dify.git
進入 Dify 源代碼的 Docker 目錄
cd dify/docker
復制配置環(huán)境
cp .env.example .env
啟動 docker compose 安裝容器
docker compose up -d
等容器安裝完后 可以看到 80 端口被占用
網(wǎng)址: http://127.0.0.1

安裝問題
如 80 端口打不開,麻煩修改 env 文件, 找到如下調(diào)整端口
# ------------------------------ # Docker Compose Service Expose Host Port Configurations # ------------------------------ EXPOSE_NGINX_PORT=8190 EXPOSE_NGINX_SSL_PORT=1443
打開網(wǎng)址報 502 或者 無法登錄, 大概率是 nginx 轉(zhuǎn)發(fā)失敗
通過 查找 docker-web-1 和 docker-api-1 服務 的信息, 尋找對應的 IPAddress 的地址
C:\Users\sys>docker inspect docker-api-1 "Gateway": "172.19.0.1", "IPAddress": "172.19.0.6", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0,
C:\Users\sys>docker inspect docker-web-1 "Gateway": "172.19.0.1", "IPAddress": "172.19.0.5", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "DNSNames": [ "docker-web-1", "web", "a9044b828f6e" ]
修改 dify/docker/nginx/conf.d 文件夾下
- 3000 端口是 docker-web-1 的 ip address 填入
- 5001 端口是 docker-api-1 的 ip address 填入
后面直接重啟對應的 nginx 容器

# Please do not directly edit this file. Instead, modify the .env variables related to NGINX configuration.
server {
listen ${NGINX_PORT};
server_name ${NGINX_SERVER_NAME};
location /console/api {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /api {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /v1 {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /files {
proxy_pass http://172.19.0.6:5001;
include proxy.conf;
}
location /explore {
proxy_pass http://172.19.0.5:3000;
include proxy.conf;
}
location /e {
proxy_pass http://plugin_daemon:5002;
proxy_set_header Dify-Hook-Url ://;
include proxy.conf;
}
location / {
proxy_pass http://172.19.0.5:3000;
include proxy.conf;
}
# placeholder for acme challenge location
${ACME_CHALLENGE_LOCATION}
# placeholder for https config defined in https.conf.template
${HTTPS_CONFIG}
}
500 報錯
等待后臺 api 啟動, 以及可能版本升級出現(xiàn)數(shù)據(jù)庫升級問題,可以考慮參考官方升級文檔或者清除數(shù)據(jù)庫文件記錄
添加模型
在設備里有個 模型提供商, 可以在這邊通過 ollama、xinference 等等 手段添加模型


使用方式
知識庫添加自己的文檔信息,然后通過Rerank 模型 和 Embedding 模型 導入知識庫就可以了

模型供應商列表
Dify 為以下模型提供商提供原生支持:



其中 (???) 代表支持 Function Calling,(??) 代表視覺能力。
工作流
基本介紹工作流通過將復雜的任務分解成較小的步驟(節(jié)點)降低系統(tǒng)復雜度,減少了對提示詞技術和模型推理能力的依賴,提高了 LLM 應用面向復雜任務的性能,提升了系統(tǒng)的可解釋性、穩(wěn)定性和容錯性。
Dify 工作流分為兩種類型:
- Chatflow:面向?qū)υ掝惽榫?,包括客戶服務、語義搜索、以及其他需要在構(gòu)建響應時進行多步邏輯的對話式應用程序。
- Workflow:面向自動化和批處理情景,適合高質(zhì)量翻譯、數(shù)據(jù)分析、內(nèi)容生成、電子郵件自動化等應用程序。為解決自然語言輸入中用戶意圖識別的復雜性,Chatflow 提供了問題理解類節(jié)點。相對于 Workflow 增加了 Chatbot 特性的支持,如:對話歷史(Memory)、標注回復、Answer 節(jié)點等。
為解決自動化和批處理情景中復雜業(yè)務邏輯,工作流提供了豐富的邏輯節(jié)點,如代碼節(jié)點、IF/ELSE 節(jié)點、模板轉(zhuǎn)換、迭代節(jié)點等,除此之外也將提供定時和事件觸發(fā)的能力,方便構(gòu)建自動化流程。
常見案例
客戶服務
- 通過將 LLM 集成到你的客戶服務系統(tǒng)中,你可以自動化回答常見問題,減輕支持團隊的工作負擔。
- LLM 可以理解客戶查詢的上下文和意圖,并實時生成有幫助且準確的回答。
內(nèi)容生成
- 無論你需要創(chuàng)建博客文章、產(chǎn)品描述還是營銷材料,LLM 都可以通過生成高質(zhì)量內(nèi)容來幫助你。
- 只需提供一個大綱或主題,LLM將利用其廣泛的知識庫來制作引人入勝、信息豐富且結(jié)構(gòu)良好的內(nèi)容。
任務自動化
- 可以與各種任務管理系統(tǒng)集成,如 Trello、Slack、Lark、以自動化項目和任務管理。
- 通過使用自然語言處理,LLM 可以理解和解釋用戶輸入,創(chuàng)建任務,更新狀態(tài)和分配優(yōu)先級,無需手動干預。
數(shù)據(jù)分析和報告
- 可以用于分析大型知識庫并生成報告或摘要。
- 通過提供相關信息給 LLM,它可以識別趨勢、模式和洞察力,將原始數(shù)據(jù)轉(zhuǎn)化為可操作的智能。
- 對于希望做出數(shù)據(jù)驅(qū)動決策的企業(yè)來說,這尤其有價值。
郵件自動化處理
- LLM 可以用于起草電子郵件、社交媒體更新和其他形式的溝通。
- 通過提供簡要的大綱或關鍵要點,LLM 可以生成一個結(jié)構(gòu)良好、連貫且與上下文相關的信息。
- 這樣可以節(jié)省大量時間,并確保你的回復清晰和專業(yè)。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Jenkins+Docker持續(xù)集成的實現(xiàn)
Jenkins是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。本文介紹了Jenkins Docker持續(xù)集成,分享給大家2021-05-05
docker倉庫數(shù)據(jù)傳輸加密的問題小結(jié)
這篇文章主要介紹了docker倉庫數(shù)據(jù)傳輸加密的問題小結(jié),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-12-12
centos docker容器化部署nginx php項目實踐
這篇文章主要介紹了centos docker容器化部署nginx php項目實踐,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06

