使用Dify服務您可以實現將企業或個人的知識庫整合到大模型應用中,從而建立出深度定製化的AI問答解決方案,並且可將其整合到您的業務情境,助力您提升日常研發管理效能。此外在ACK叢集上部署服務還支援隨業務需求變化即時、平滑地進行擴容,從而有力推動業務發展。
方案概覽
Dify定製化AI應用樣本
| 網頁整合AI應用樣本
|
配置一個專屬AI問答助手,只需3步:
安裝ack-dify組件:先通過Container Service建立一個ACK叢集,並安裝ack-dify組件。
添加AI問答助手:接著通過訪問Dify服務,實現在網站中引入一個AI問答助手。
定製AI問答助手:最後可以通過準備專屬知識庫,讓AI問答助手回答原本無法準確回答的問題,協助您更好的應對專業問題的諮詢。

Dify服務和ACK叢集互動詳情如下圖所示。
Dify簡介
Dify是一款開源的大語言模型(LLM)應用開發平台。它融合了後端即服務(Backend as Service)和LLMOps的理念,使開發人員可以快速搭建生產級的產生式AI應用。即使您是非技術人員,也能參與到AI應用的定義和資料營運過程中。同時Dify內建了構建LLM應用所需的關鍵技術棧,這為開發人員節省了許多重複造輪子的時間,使其可以更加專註在創新和業務需求上。
技術架構如下圖所示。
Dify的技術架構包括以下關鍵區段:
核心技術組件支撐:Dify整合了建立LLM應用程式的核心技術組件,涵蓋了對眾多模型的相容支援、方便使用的Prompt設計介面、高效能的RAG(檢索增強產生)系統,以及可自訂的Agent架構。
可視化編排和營運:Dify通過其直觀的介面,實現了Prompt的可視化編排、營運流程及資料集的高效管理,極大地加速了AI應用程式的開發進程,使開發人員能夠在短時間內完成部署,或迅速將LLM融入現有系統中,並支援持久性的營運最佳化。
應用模板和編排架構:Dify為開發人員配備了開箱即用的應用模板和編排架構,使得開發人員能夠依託這些資源迅速開發出基於大規模語言模型的產生式AI應用程式。此外,該平台還支援隨業務需求變化即時、平滑地進行擴容,從而有力推動業務發展。
通過這些技術架構的關鍵組成部分,Dify為開發人員提供了一個全面、靈活且便於使用的平台,以支援產生式AI應用的快速開發和部署。
1. 安裝ack-dify組件
一鍵部署
如果您首次使用ACK叢集,不瞭解叢集的建立流程,您可以單擊一鍵部署,建立Dify服務所需要的運行環境。本方案使用ACK應用市場的ack-dify應用模板,通過Helm低成本快速部署單一實例版Dify應用,滿足開發與測試需求。
建議您在使用一鍵部署之前檢查是否已開通和授權Container ServiceACK叢集。具體操作,請參見快速建立ACK託管叢集。
本方案的技術架構包括以下基礎設施和雲端服務。相關計費資訊,請參見計費相關。
基礎設施和雲端服務 | 說明 |
1個Virtual Private Cloud | 為Elastic Compute Service、ACK託管叢集等雲資源構建雲上私人網路。 |
2個交換器 | 將Elastic Compute Service、ACK等資源串連在同一網路上,實現它們之間的通訊,並提供基本的網路分段和隔離功能。 |
1個安全性群組 | 用於限制Virtual Private Cloud下Elastic Compute Service的網路流入和流出規則。 |
1個負載平衡CLB | 用於通過公網IP訪問Dify平台。 |
1個NAS檔案系統 | 用於Dify平台內部服務(api、worker)儲存資料。 |
1個ACK託管叢集 | 用於部署Dify平台。由於Dify平台啟動的容器比較多,建議您選擇至少1個8vCPU、16GiB規格的節點,否則可能面臨資源不足,如ecs.u1-c1m2.2xlarge。 |
一鍵部署操作指引
單擊一鍵部署,在Resource Orchestration Service中選擇您的地區(可選)華東1(杭州),然後按照ROS模板選擇您的叢集,主交換器可用性區域ID和從交換器可用性區域ID、Ack節點池執行個體類型、Ack執行個體密碼、安全確認等重要訊息,其餘資訊保持預設即可,設定完成後點擊下一步:檢查並確認。
由於叢集所需資源較多,需要您耐心等待10分鐘左右完成。叢集建立完成後,登入Container Service管理主控台,在左側導覽列選擇叢集列表。單擊目的地組群名稱,進入叢集詳情頁面,依次單擊工作負載 > 容器組,命名空間為dify-system,查看目的地組群是否已正常安裝ack-dify組件資源。
(可選)如果您發現有Pod處於Pending狀態,可能是因為已有叢集缺少ack-dify的PVC依賴,請為叢集建立預設的CNFS檔案系統以及對應的NAS StorageClass。具體操作,請參見通過CNFS管理NAS檔案系統(推薦)。更多Pod異常問題排查,請參見Pod異常問題排查。
ack-dify組件安裝完成後,您可繼續執行下一步操作。
如果您已採用ROS一鍵部署方式安裝ack-dify組件,ack-dify服務已開啟公網訪問功能,為ack-dify服務開啟公網訪問功能操作步驟可略過。
手動部署
如果您熟悉ACK叢集建立的相關流程,您可以按照以下文檔指引自主建立適合您業務的叢集環境。
1.1 環境準備
已建立ACK Pro叢集,且叢集版本為1.22及以上。具體操作,請參見建立ACK託管叢集、升級叢集。
為確保叢集能夠穩定運行,您需要為叢集預留最小可用資源(2核CPU和4 GB記憶體),並配置相依元件CSI。
已通過kubectl工具串連Kubernetes叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集。
1.2 組件部署
Dify服務使用的ack-dify組件需要部署在叢集之上,您可以按照以下步驟部署組件並排查問題。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。單擊目的地組群名稱,進入叢集詳情頁面,如下圖所示,按照序號依次單擊,為目的地組群安裝ack-dify組件。
您無需為組件配置應用程式名稱和命名空間,單擊⑥下一步後會出現一個請確認的彈框,單擊是,即可使用預設的應用程式名稱(ack-dify)和命名空間(dify-system)。然後選擇Chart 版本為最新版本,單擊確定即可完成ack-dify組件安裝。

等待1分鐘左右,在本地執行以下命令,如果
dify-system命名空間下的Pod均已處於Running狀態, 表明ack-dify組件已經安裝成功。kubectl get pod -n dify-system如果您發現有Pod處於Pending狀態,可能是因為已有叢集缺少ack-dify的PVC依賴,請為叢集建立預設的CNFS檔案系統以及對應的NAS StorageClass。具體操作,請參見通過CNFS管理NAS檔案系統(推薦)。更多Pod異常問題排查,請參見Pod異常問題排查。
2. 添加AI問答助手
2.1 訪問Dify服務
為ack-dify服務開啟公網訪問功能。
說明公網訪問便於示範操作,如果您在生產環境中部署,為了您的應用資料安全,建議您開啟存取控制功能。

配置完成後,依次單擊網路 > 服務 > ack-dify,命名空間為dify-system,您會看到ack-dify服務的外部IP地址(External IP),將該外部IP地址輸入瀏覽器地址欄即可訪問Dify服務。

註冊帳號。
訪問外部IP地址(External IP),請根據頁面提示設定管理員賬戶(即郵箱地址、使用者名稱和密碼),以註冊Dify平台來使用服務。

2.2 建立AI問答助手
在瀏覽器中輸入外部IP地址(External IP),登入Dify平台。
添加並配置所需要的AI模型(以通義千問為例),並為模型配置從阿里雲擷取的API Key。如下圖所示:
通義千問提供的免費額度消耗完後按Token計費,相比您自主部署大模型可以顯著降低初期的投入成本。
擷取API Key:依次單擊使用者名稱稱>設定>模型供應商>安裝並設定通義千問外掛程式>從阿里雲擷取API Key。
將擷取到的API Key輸入到下圖所示的輸入欄中,單擊儲存。

建立一個通用型AI問答助手。
依次單擊工作室>建立空白應用,並為AI問答助手輸入名稱和描述,其他參數保持預設即可。

2.3 驗證AI問答助手
現在您可以在頁面輸入問題以查看目前AI問答助手配置的最新效果。由於下圖樣本中調用的是一個通用型聊天機器人,所以只能進行簡單對話,暫時還無法回答Dify相關的專業問題。

3. 定製AI問答助手
3.1 建立知識庫
通過前面的操作,您已經擁有了一個可以對話的AI問答助手。但是如果您想讓AI問答助手像專業人士一樣,更加精準且專業地回答Dify技術相關的問題,您還需要為AI問答助手配置專屬語料知識庫。
為簡化操作步驟,本樣本已經為您整理好語料檔案dify_doc.md,您只需按照如下步驟進行操作,即可完成建立和上傳專屬知識庫。
將整理好的語料檔案dify_doc.md上傳至知識庫。
依次單擊知識庫>建立知識庫>匯入已有文本>選擇檔案>下一步。

單擊下一步後,您可根據頁面引導,進行文本分段與清洗後儲存即可。
此處的配置參數保持預設即可。知識庫將自動為上傳的文檔進行清洗、分段並建立索引,以便後續AI問答助手在回答時檢索參考。
如果您需要瞭解上述語料檔案是如何整理為一個.md檔案,請展開下方摺疊項查看詳細資料。
3.2 編排並發布AI問答助手
為已建立的AI助手配置提示詞並添加上下文知識庫。
配置提示詞:拷貝以下內容至提示詞中。提示詞用於對AI的回複做出指令和約束,可以提升AI問答助手的回答表現和結果準確性。
You will act as Dify's AI assistant, dedicated to answering customers' questions about Dify products and their features. Your responses should be based on the existing knowledge base to ensure accuracy. If a question is beyond your knowledge, please honestly inform them that you do not know the answer, in order to maintain the integrity of the information. Please communicate in a friendly and warm tone, and feel free to use emoticons appropriately to enhance the interactive experience.添加上下文知識庫:單擊上下文地區的添加,根據頁面提示為AI問答助手配置的專屬知識庫,使AI問答助手獲得精準且專業回答問題的能力。
在頁面右上方單擊發布>更新手動儲存配置資訊,使Dify服務的配置生效。
配置效果如下所示:

3.3 檢驗效果
相較於上文的通用型聊天機器人,配置了專屬知識庫的AI助手通過整合相關領域的知識庫,能夠提供更加專業、準確的資訊和建議。
總結
下表歸納總結了Dify具備的核心功能,您可根據個人或企業情境來自主選擇使用。
Dify核心功能 | 說明 |
全面的LLMOps | 對於已部署的AI應用,Dify提供完善的營運支援,包括即時監控應用日誌和效能指標,以及基於生產資料和使用者反饋持續最佳化提示、資料集和模型。 |
RAG引擎 | Dify提供端到端的RAG管道,支援從文檔攝入到資訊檢索的全流程,能夠直接處理PDF、PPT等常見文檔格式,簡化資料準備工作。 |
Agent | Dify允許開發人員基於LLM函數調用或ReAct範式定義Agent,並為其添加預構建或自訂工具,平台內建50多種工具。 |
workflow工作流程編排 | Dify提供了一個可視化的畫布,允許開發人員通過拖拽和串連不同的組件,快速構建複雜的AI工作流程,無需深入複雜的代碼編寫,大大降低了開發門檻。 |
可觀測性 | 提供了對LLM應用程式的品質和成本的跟蹤和評估能力,通過其監控儀表板,您可以輕鬆配置和啟用這些功能,以增強LLM應用程式的可觀測性。 |
企業功能(SSO/存取控制) | 企業組織可降低資訊泄露和資料損害的風險,確保資訊安全和業務連續。 |
應用到生產環境
如果您想將開發的AI問答助手引入到您企業或個人的生產環境,可以通過以下四種方式操作。
公開分享的網站。
您使用Dify建立AI應用發行就緒為一個可供您在互連網上公開訪問的Web應用,該應用將根據您的Prompt和編排設定進行工作。詳細操作,請參見發布為公開Web網站。
基於API介面調用。
Dify基於“後端即服務”理念為所有應用提供了API,開發人員可以直接在前端應用中擷取大型語言模型的強大能力,而無需關注複雜的後端架構和部署過程。詳細操作,請參見基於APIs開發。
基於前端組件再開發。
如果您是從頭開發新產品或者在產品原型設計階段,您可以使用Dify快速發布AI網站。詳細操作,請參見基於前端組件再開發。
嵌入到您企業或個人網站。
Dify支援將您的AI應用嵌入到業務網站中,您可以使用該能力在幾分鐘內製作具有業務資料的官網AI客服、業務知識問答等應用。詳細操作,請參見嵌入網站。
樣本(將AI應用嵌入到網站)
下面將為您詳細介紹如何將開發的LLM應用嵌入到您的企業或個人網站,您可以按照以下樣本進行操作。
本樣本作為示範,為了您的應用資料安全,建議您在生產環境同時開啟存取控制功能。
已為ack-dify服務開啟公網訪問功能,將該外部IP地址輸入瀏覽器地址欄即可訪問Dify服務。更多操作,請參見訪問Dify服務。

在ACK叢集中快速構建簡單的Web應用來調試您的AI問答助手。
下面是一個在ACK叢集中部署Web應用的樣本,它會在您的ACK叢集上運行,您可以嵌入在Dify服務中開發的LLM應用。
擷取Dify服務代碼。
如下圖所示,選擇一種方式將聊天應用的對應的代碼嵌入到您的網站中。

在叢集中,建立一個Deployment來運行您的Web應用,並建立Service來暴露應用。
以下是一個簡單的YAML樣本,展示如何部署一個包含靜態HTML的Nginx伺服器。
登入Container Service管理主控台,在配置項頁面,選擇命名空間為default,然後單擊使用YAML建立資源,將下方YAML內容複寫到模板中,並將
window.difyChatbotConfig、scr、id修改為已擷取的Dify服務代碼。具體代碼資訊,請參考下方樣本。
成功部署截圖如下所示:

為已部署的服務開啟公網訪問。
為了您的應用資料安全,建議您在生產環境同時開啟存取控制功能。

配置完成後,您會看到web-service服務的外部IP地址(External IP),將該外部IP地址輸入瀏覽器地址欄即可訪問Web服務。
重要如果您想讓其他裝置訪問,請確保您的叢集防火牆或安全性群組中設定允許流量通過80連接埠。具體操作,請參見添加安全性群組規則。
確保您的代碼和第三方代碼是安全的,避免可能的XSS或惡意代碼嵌入。給您提供了一個基本樣本以供示範,您可以根據自己的需求進行擴充和修改。
結果展示。

持續改進
如果您想進一步改進最佳化LLM應用,您可以考慮學習並通過阿里雲大模型ACA認證,該認證配套的免費課程能協助您進一步瞭解大模型的能力和應用情境,以及如何最佳化大模型的應用效果。
計費相關
使用本功能會收取ACK Pro叢集管理費用和阿里雲雲產品資源費用。使用本功能涉及的阿里雲雲產品有:ECS雲端服務器、CLB負載平衡、EIPElastic IP Address、NAS檔案儲存體等,您需要按照各雲產品計費規則為使用的資源付費,費用由各雲產品收取。關於叢集管理費和雲產品資源費用的更多資訊,請參見計費概述。
免責聲明
Dify on ACK是僅針對阿里雲ACK環境適配開源專案Dify的Helm部署方案,實現Dify在ACK的快速部署。ACK不對Dify應用本身的運行或與其他生態系統組件(如外掛程式、資料庫等)的相容性做出保障。對於您在使用Dify過程中因Dify本身及其生態組件的缺陷而導致業務受損的情況,ACK不提供賠償或者補償等商務服務。建議您關注開源社區的更新動態,主動修複開源軟體中的問題,以確保Dify的穩定和安全。

