本頁面介紹如何將 Vertex AI Search 與 Vertex AI RAG Engine 整合。
Vertex AI Search 提供解決方案,可供您在 Vertex AI RAG 應用程式中擷取及管理資料。使用 Vertex AI Search 做為檢索後端,可提升效能、擴充性和整合便利性。
提升效能和擴充性:Vertex AI Search 的設計宗旨是處理大量資料,且延遲時間極短。這表示 RAG 應用程式的回應速度會更快,效能也會提升,特別是在處理複雜或廣泛的知識庫時。
簡化資料管理:從各種來源匯入資料,例如網站、BigQuery 資料集和 Cloud Storage 值區,有助於簡化資料擷取程序。
完美整合:Vertex AI 內建與 Vertex AI Search 的整合功能,可讓您選取 Vertex AI Search 做為 RAG 應用程式的語料庫後端。這可簡化整合程序,並確保元件之間的相容性達到最佳狀態。
提升 LLM 輸出內容品質:使用 Vertex AI Search 的檢索功能,可確保 RAG 應用程式從語料庫檢索最相關的資訊,進而生成更準確且資訊豐富的 LLM 輸出內容。
Vertex AI Search
Vertex AI Search 結合了深度資訊檢索、自然語言處理,以及最新的大型語言模型 (LLM) 處理功能,有助於瞭解使用者意圖,並傳回最相關的結果。
有了 Vertex AI Search,您就能運用有權控管的資料,建構媲美 Google 水準的搜尋應用程式。
設定 Vertex AI Search
如要設定 Vertex AI Search,請按照下列步驟操作:
將 Vertex AI Search 做為 Vertex AI RAG 引擎的檢索後端
設定 Vertex AI Search 後,請按照下列步驟將其設為 RAG 應用程式的檢索後端。
將 Vertex AI Search 設為檢索後端,建立 RAG 語料庫
這些程式碼範例說明如何將 Vertex AI Search 設定為 RAG 語料庫的檢索後端。
REST
如要使用指令列建立 RAG 語料庫,請按照下列步驟操作:
建立 RAG 語料庫
替換程式碼範例中使用的下列變數:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:處理要求的區域。
- DISPLAY_NAME:要建立的 RAG 語料庫顯示名稱。
- ENGINE_NAME:Vertex AI Search 引擎或 Vertex AI Search Datastore 的完整資源名稱。例如,假設使用者要求系統
將文字從英文翻譯成法文
projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/engines/ENGINE_NAME/servingConfigs/default_search
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" \ -d '{ "display_name" : "DISPLAY_NAME", "vertex_ai_search_config" : { "serving_config": "ENGINE_NAME/servingConfigs/default_search" } }'
監控進度
替換程式碼範例中使用的下列變數:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:處理要求的區域。
- OPERATION_ID:RAG 語料庫建立作業的 ID。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
Python
在試用這個範例之前,請先按照Python使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Python API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
使用 RAG API 擷取背景資訊
建立 RAG 語料庫後,即可透過 RetrieveContexts
API 從 Vertex AI Search 擷取相關內容。
REST
這個程式碼範例示範如何使用 REST 擷取環境。
替換程式碼範例中使用的下列變數:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_RESOURCE:RAG 語料庫資源的名稱。
格式:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
- TEXT:要取得相關脈絡的查詢文字。
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE"
}
},
"query": {
"text": "TEXT"
}
}'
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
使用 Vertex AI Gemini API 生成內容
REST
如要使用 Gemini 模型生成內容,請呼叫 Vertex AI GenerateContent
API。在要求中指定 RAG_CORPUS_RESOURCE
,系統就會自動從 Vertex AI Search 擷取資料。
請替換範例程式碼中使用的下列變數:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:處理要求的區域。
- MODEL_ID:用於生成內容的大型語言模型。例如:
gemini-2.0-flash
。 - GENERATION_METHOD:用於生成內容的 LLM 方法。
例如:
generateContent
、streamGenerateContent
。 - INPUT_PROMPT:傳送至大型語言模型以生成內容的文字。嘗試使用與 Vertex AI Search 中文件相關的提示。
- RAG_CORPUS_RESOURCE:RAG 語料庫資源的名稱。格式:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
。 SIMILARITY_TOP_K:(選用) 要擷取的頂層內容數量。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" \ -d '{ "contents": { "role": "user", "parts": { "text": "INPUT_PROMPT" } }, "tools": { "retrieval": { "disable_attribution": false, "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE" }, "similarity_top_k": SIMILARITY_TOP_K } } } }'
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。