OpenSearch LLM智能問答版內建資料解析與處理、切片、向量化、文本&向量檢索、多模態LLM等模型和功能。本文以Dify為例介紹如何使用OpenSearch LLM智能問答版對接大模型應用開發平台構建RAG系統。
隨著人工智慧產生內容(AIGC)技術日新月異的發展,基於大型語言模型(LLM)、Agent架構、工作流程編排技術等,可以搭建不同情境下豐富的應用服務。其中,檢索增強產生(RAG)系統已經成為企業知識庫、智能客服、電商導購等情境的核心環節。面對大模型應用領域的蓬勃發展,湧現了眾多便利的開發工具和平台,例如阿里雲百鍊平台與Dify服務,開發人員可以基於這些平台快速搭建業務應用,其中RAG系統作為關鍵組件通常會內建於大模型應用開發平台中。
然而,RAG系統的準確性與搜尋效果息息相關,應用開發平台經常會面臨以下問題:
-
易用性差:對知識庫文檔格式、數量、大小等有各種各樣的限制,開發人員需要進行複雜的資料預先處理,或無法滿足實際應用的需求。
-
專業性差:大多是黑盒系統,開發人員難以針對核心鏈路進行定製化調優和擴充,導致整體應用效果差。
-
企業級能力弱:不支援企業級許可權隔離、資料快速匯入/更新等能力,難以落地到實際生產應用中。
針對上述問題,可以使用OpenSearch LLM智能問答版作為RAG系統,應用到工作流程中,快速搭建企業級應用。目前OpenSearch已支援對接百鍊中的模型,從而豐富LLM選型,實現定製級RAG效果,具體使用方式可參考:LLM管理。
此外,OpenSearch支援豐富的調用、鑒權機制,靈活對接百鍊、Dify等應用開發平台。下面將以Dify為例,介紹對接開源應用平台的最佳實務。
阿里雲OpenSearch各版本(包括LLM智能問答版、向量檢索版、召回引擎版)均不相容開源RAG架構RagFlow。如需使用RagFlow搭建RAG系統,請選擇其他相容的向量資料庫或搜尋引擎服務。
技術架構
開發人員預先將知識庫匯入OpenSearch,並用工作流程處理後的對話請求訪問OpenSearch中的RAG系統。OpenSearch會基於知識庫、LLM,返回對話結果、參考連結、參考圖片。開發人員再根據業務需求,通過工作流程處理結果,並最終輸出給終端使用者。

在OpenSearch LLM智能問答版中搭建RAG系統
1.搭建RAG系統
OpenSearch LLM智能問答版是一站式RAG產品,可分鐘級搭建RAG系統,並可以在控制台進行可視化模型選擇、Prompt定製、效果調優等。您可以在執行個體詳情中選擇配置中心->資料配置開始進行企業知識庫配置。
在資料配置頁面,單擊檔案匯入或網頁連結匯入按鈕匯入企業知識庫資料。檔案匯入支援上傳 doc/docx/pdf/html/txt/ppt/pptx 格式的非結構化資料檔案以及 JSON/EXCEL 格式的結構化資料(UTF-8 編碼,單個檔案不超過 128 MB),選擇檔案後單擊上傳檔案完成匯入。
詳情請參見通過控制台實現企業知識庫問答。
2.建立並擷取API Key
建立並擷取公網API網域名稱、API Key後妥善儲存,將在之後發送HTTP請求流程中使用。

在Dify中搭建業務應用
1.建立工作流程
在Dify平台工作室頁面,單擊建立空白應用。在建立空白應用對話方塊中,應用類型選擇聊天助手,編排方法選擇工作流程編排,填寫應用程式名稱和描述,然後單擊建立。
開始:擷取使用者輸入的對話內容。
OpenSearch LLM智能問答版(HTTP請求):將對話內容輸入OpenSearch,並基於RAG系統返回輸出結果。
解析輸出結果(代碼執行):解析結果中的對話內容。
返回答案:向使用者返回最終結果。
2.配置節點
-
使用HTTP請求訪問OpenSearch RAG系統
要求方法選擇 POST,BODY 中的 JSON 內容樣本為 {"question":{"text":"@ 開始 {x} sys.query "}},其中通過工作流程變數 sys.query 傳入使用者問題。鑒權API-Key:
-
鑒權類型:API-Key
-
API鑒權類型:Bearer
-
API key:OpenSearch LLM智能問答版中擷取的API Key。
URL地址:OpenSearch LLM智能問答版中擷取的公網API網域名稱 + OpenSearch介面地址(參考URL:v3/openapi/apps/[app_name]/actions/knowledge-search)
BODY:選擇JSON格式,具體的內容和參數可參考:文本問答。
-
解析輸出結果:
OpenSearch的介面返回結果為JSON格式,包含對話結果、參考連結、參考圖片等。開發人員可以使用代碼執行解析輸出結果,按需擷取返回結果。
只擷取輸出結果的參考代碼:
def main(body: str) -> str:
import json
dat = json.loads(body)
return {
'result': [ans['answer'] for ans in dat['result']['data']][0]
}
效果預覽

在此基礎上,可以配合搭建其他工作流程,構建豐富的業務應用流。例如,以下是一個基於OpenSearch、Qwen模型構建的智能對話助手。
首先,會判斷使用者對話的意圖並進行分類,分為售後問題、產品使用問題和閑聊。針對售後問題、產品使用問題,分別訪問OpenSearch中的相應知識庫,使用RAG系統進行回複。對於閑聊類問題,訪問Qwen模型與使用者進行閑聊對話,解決通用類問題。

除了使用一站式RAG產品搭建工作流程外,還可使用阿里雲AI搜尋開發工作台,通過工作台提供的文檔解析、向量化、搜尋、重排等原子化能力,自訂dify工具,從而快速定製最佳化RAG系統的各個環節。
在 Dify 平台頂部導覽列選擇工具 > 自訂頁簽,可看到已建立的兩個自訂工具:OpenSearch 文本向量化(Text embedding)和OpenSearch 重排模型(Reranker)。
-
瞭解OpenSearch LLM智能問答版詳情,可參考:https://www.aliyun.com/activity/bigdata/opensearch/llmsearch
-
如有RAG系統相關問題,歡迎加入OpenSearch LLM智能問答版DingTalk支援群,瞭解更多技術細節和使用詳情。