企業私人知識問答系統常面臨回答準確性不足的挑戰。通過Dify整合阿里雲Table Store(Tablestore)向量資料庫構建RAG(檢索增強產生)應用,可實現高精度知識檢索和智能問答能力。
方案介紹
Tablestore作為高效能向量資料庫,提供毫秒級查詢響應,支援向量檢索與全文檢索索引混合的檢索模式,單表可儲存百億級向量資料。Dify負責應用編排和使用者互動介面,大幅簡化RAG應用的構建和部署流程。
RAG應用通過以下核心流程實現智能問答:
知識向量化:Dify將企業文檔自動切分為知識片段並轉換為向量表示,統一儲存到Tablestore向量資料庫中。
相似性檢索:當使用者提問時,系統在Tablestore中快速檢索與問題最相關的知識片段。
增強產生:將檢索到的相關知識與使用者問題組合,輸入大語言模型產生準確且有依據的回答。
準備部署環境
建立Tablestore執行個體
Tablestore將作為RAG應用的向量資料庫,用於儲存文檔的向量化表示並提供高效的相似性檢索能力。
登入Table Store控制台,在頁面上方選擇執行個體所在地區,如
華東1(杭州)。單擊建立執行個體,選擇CU模式(原按量模式),按照下方配置列表選擇執行個體參數,其餘配置項可保持預設設定。
執行個體名稱:填寫執行個體名稱。
執行個體規格:選擇高效能型。
單擊確定,完成執行個體建立。
建立ECS執行個體
ECS執行個體將作為Dify應用的運行環境,需要具備足夠的計算資源來支援Docker容器叢集的運行。
按照下方配置列表建立ECS執行個體,其餘配置項可保持預設設定。
付費類型:選擇隨用隨付。
地區:選擇執行個體所在地區,由於網路原因,本文使用的是中國香港地區。
網路及可用性區域:選擇預設的專用網路和可用性區域。
執行個體:單擊全部規格,搜尋並選擇
ecs.e-c1m2.large。說明如果執行個體規格已售罄,請選擇其它執行個體規格。
鏡像:選擇公用鏡像的Alibaba Cloud Linux(Alibaba Cloud Linux 3.2104 LTS 64位)。
系統硬碟:設定ESSD Entry的容量為 40 GiB。
公網IP:勾選分配公網 IPv4 地址。
頻寬計費模式:選擇按使用流量,以節約成本。
頻寬峰值:選擇5 Mbps或以上。
安全性群組:選擇已有安全性群組。
登入憑證:選擇自訂密碼,登入名稱選擇root,登入密碼請自行設定並妥善儲存。
部署和訪問Dify
步驟一:安裝Docker環境
Dify採用容器化部署方式,需要先在ECS執行個體上安裝Docker和Docker Compose來支援多服務容器編排。
安裝dnf-plugins-core外掛程式。
dnf -y install dnf-plugins-core配置Docker官方倉庫源。
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安裝 Docker 引擎和 Docker Compose 外掛程式。
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin啟動並設定Docker服務開機自啟。
systemctl enable --now docker
步驟二:部署Dify服務
接下來將擷取Dify源碼並配置環境變數,特別是配置Tablestore作為向量資料庫的串連參數。
安裝Git版本控制工具。
yum -y install git複製Dify官方源碼倉庫。
git clone https://github.com/langgenius/dify.git進入Docker部署目錄。
cd dify/docker複製環境設定檔範本。
cp .env.example .env編輯環境設定檔。
vi .env按照以下配置項進行修改:
配置項
說明
VECTOR_STORE
向量資料庫類型,設定為
tablestore。TABLESTORE_ENDPOINT
重要新建立的Table Store執行個體預設關閉公網訪問,如需使用公網訪問地址,請前往Table Store控制台執行個體管理的網路管理頁簽,在允許網路類型設定中勾選公網,並單擊設定儲存配置。
前往Table Store控制台,在執行個體列表中單擊執行個體別名進入執行個體管理頁面,複製執行個體名稱和執行個體訪問地址。根據部署情況選擇訪問地址:
ECS與Tablestore在同一地區:可選擇公網地址或者VPC地址。
ECS與Tablestore不在同一地區:必須使用公網地址。
TABLESTORE_INSTANCE_NAME
TABLESTORE_ACCESS_KEY_ID
前往AccessKey管理頁面建立雲帳號AccessKey,擷取並儲存ACCESS_KEY_ID和ACCESS_KEY_SECRET。
TABLESTORE_ACCESS_KEY_SECRET
啟動Dify容器叢集。
docker compose up -d啟動成功後,將看到如下輸出資訊。
✔ Network docker_default Created 0.1s ✔ Network docker_ssrf_proxy_network Created 0.1s ✔ Container docker-sandbox-1 Started 0.8s ✔ Container docker-redis-1 Started 1.0s ✔ Container docker-ssrf_proxy-1 Started 1.3s ✔ Container docker-web-1 Started 1.0s ✔ Container docker-db-1 Started 0.9s ✔ Container docker-plugin_daemon-1 Started 2.4s ✔ Container docker-api-1 Started 2.4s ✔ Container docker-worker-1 Started 2.3s ✔ Container docker-nginx-1 Started 3.8s
步驟三:配置安全性群組訪問規則
為了能夠通過公網訪問Dify管理介面,需要在ECS安全性群組中開放相應的連接埠存取權限。
前往ECS控制台,在目標執行個體中單擊。
配置安全性群組規則:選擇授權策略為允許,協議類型為Web HTTP 流量訪問,在訪問目的(本執行個體)中輸入Dify服務連接埠(預設80連接埠)並添加,如下圖所示。

單擊確定,完成安全性群組訪問規則配置。
步驟四:訪問Dify管理介面
通過瀏覽器訪問 http://server_ip,其中 server_ip 為ECS執行個體的公網IP地址。首次訪問將自動跳轉到初始化頁面,按照提示設定管理員賬戶,設定完成後系統將自動完成登入。

構建RAG應用並驗證效果
步驟一:配置模型服務和API-KEY
RAG應用需要大語言模型來理解問題和產生回答,同時需要Embedding模型將文本轉換為向量表示。
安裝模型供應商並配置API Key。
在Dify首頁單擊帳戶圖片,在下拉式功能表中單擊設定。
在設定頁面單擊模型供應商,選擇通義千問,單擊安裝。
安裝完成後,在待配置的模型列表中單擊設定。

根據頁面提示擷取阿里雲百鍊的API Key並完成配置,然後單擊儲存。

配置系統預設模型。
在模型供應商頁面單擊模型列表右側的系統模型設定。
根據以下推薦配置設定各類模型,也可根據實際需求選擇其他模型。
系統推理模型:選擇qwen3-max-preview。
Embedding模型:選擇text-embedding-v4。
Rerank模型:選擇gte-rerank-v2。
語音轉文本模型:選擇paraformer-realtime-v2。
文本轉語音模型:選擇tts-1。
模型配置完成後,單擊ESC返回Dify首頁。
步驟二:建立知識庫
知識庫是RAG應用的核心組件,用於儲存企業文檔並提供智能檢索能力。文檔將自動切分、向量化並儲存到Tablestore中。
在Dify首頁單擊知識庫,然後單擊建立知識庫。

單擊建立一個空知識庫。在彈出的建立空知識庫對話方塊中,輸入知識庫名稱(例如Tablestore),然後單擊建立,完成知識庫建立。

在知識庫詳情頁面單擊添加檔案,選擇樣本檔案百鍊系列手機產品介紹.docx進行上傳,單擊下一步進入文本分段與清洗設定。

配置知識處理參數:選擇索引方式為高品質,檢索設定為混合檢索。參數配置完成後單擊儲存並處理,可單擊前往文檔查看上傳文檔的處理狀態。

可以前往Table Store控制台查看已儲存到向量資料庫的知識資料。

步驟三:建立智能問答助手並驗證RAG效果
最後建立一個聊天助手應用,通過對比加入知識庫前後的回答效果,驗證RAG應用的檢索增強能力。
在Dify首頁單擊工作室,然後單擊建立空白應用。

選擇新手適用模板,然後選擇聊天助手應用類型,輸入應用程式名稱後單擊建立。

直接向聊天助手提問測試,例如詢問
百鍊有哪些手機型號,此時助手的回答可能不夠準確或詳細。
在應用編排頁面單擊知識庫右側的添加,選擇之前建立的知識庫,然後根據頁面提示單擊重新開始重設調試地區。

再次向聊天助手提出相同問題。結合知識庫中的文檔內容,助手現在能夠提供準確且詳細的回答。

應用於生產環境
最佳實務
為確保Dify應用在生產環境中的高可用性,建議使用ACK進行部署。具體實施方案請參見解決方案快速部署 Dify,高效搭建 AI 應用並選擇生產環境部署(使用 ACK 部署)。
風險防範
許可權管控:通過RAM使用者進行資源訪問管理,嚴格控制許可權範圍,僅授予Tablestore和ECS相關的必要操作許可權。
Action Trail:啟用Action Trail功能,完整記錄關鍵資源的訪問和修改動作記錄,確保操作行為可追溯。
資料備份:定期對Tablestore進行資料備份,有效防範因意外故障或人為誤操作導致的資料丟失風險。
資源清理
體驗完成後,如果不計划進行生產環境部署,建議及時清理相關雲資源以避免產生不必要的費用。
釋放 ECS 執行個體
前往ECS控制台,找到目標執行個體,單擊,按照頁面指引完成執行個體釋放。
刪除 Tablestore 資料表
前往Table Store控制台,在執行個體列表中單擊目標執行個體別名, 在執行個體管理頁面先單擊目標資料表右側的索引管理,在索引管理頁面刪除多元索引,然後返回資料表列表,單擊目標資料表右側的,刪除資料表。
釋放 Tablestore 執行個體
前往Table Store控制台,在執行個體列表中單擊目標執行個體操作列的釋放。
單擊確定,完成執行個體釋放。如出現身分識別驗證提示,請按照頁面指引完成驗證。