本頁面介紹 Agent Search 與 RAG Engine 的整合。
Agent Search 提供解決方案,可在 Gemini Enterprise Agent Platform RAG 應用程式中檢索及管理資料。使用 Agent Search 做為檢索後端,可提升效能、擴充性和整合便利性。
提升效能和擴充性:Agent Search 專為處理大量資料而設計,延遲時間極低。這可縮短 RAG 應用程式的回應時間並提升效能,在處理複雜或龐大的知識庫時,效果尤其顯著。
簡化資料管理:從網站、BigQuery 資料集和 Cloud Storage bucket 等各種來源匯入資料,簡化資料擷取程序。
完美整合:Agent Platform 內建與 Agent Search 的整合功能,可讓您選取 Agent Search 做為 RAG 應用程式的語料庫後端。這可簡化整合程序,並確保元件之間的相容性達到最佳狀態。
提升 LLM 輸出內容品質:使用 Agent Search 的檢索功能,可確保 RAG 應用程式從語料庫中檢索最相關的資訊,進而提升 LLM 生成輸出內容的準確度和資訊豐富度。
Agent Search
Agent Search 結合了深度資訊檢索、自然語言處理,以及大型語言模型 (LLM) 處理的最新功能,有助於理解使用者意圖,並傳回最相關的結果。
有了 Agent Search,您就能運用有權控管的資料,建構媲美 Google 水準的搜尋應用程式。
設定 Agent Search
如要設定 Agent Search,請按照下列步驟操作:
使用 Agent Search 做為 RAG Engine 的檢索後端
設定 Agent Search 後,請按照下列步驟,將其設為 RAG 應用程式的檢索後端。
將 Agent Search 設為檢索後端,建立 RAG 語料庫
這些程式碼範例說明如何將 Agent Search 設為 RAG 語料庫的檢索後端。
REST
如要使用指令列建立 RAG 語料庫,請按照下列步驟操作:
建立 RAG 語料庫
替換程式碼範例中使用的下列變數:
- PROJECT_ID: Google Cloud 專案的 ID。
- LOCATION:處理要求的區域。
- DISPLAY_NAME:要建立的 RAG 語料庫顯示名稱。
- ENGINE_NAME:代理搜尋引擎或代理搜尋資料儲存庫的完整資源名稱。例如,假設使用者要求系統
將文字從英文翻譯成法文
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
在試用這個範例之前,請先按照「使用用戶端程式庫的 Agent Platform 快速入門導覽課程」中的 Python 設定說明操作。
如要向 Agent Platform 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
使用 RAG API 擷取情境
建立 RAG 語料庫後,即可透過 RetrieveContexts API 從 Agent 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
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
使用 Agent Platform Gemini API 生成內容
REST
如要使用 Gemini 模型生成內容,請呼叫 Agent Platform GenerateContent API。在要求中指定 RAG_CORPUS_RESOURCE,即可自動從 Agent Search 擷取資料。
替換程式碼範例中使用的下列變數:
PROJECT_ID: Google Cloud 專案的 ID。
LOCATION:處理要求的區域。
MODEL_ID:用於生成內容的 LLM 模型。例如:
gemini-3.8-flash。GENERATION_METHOD:生成內容的 LLM 方法。例如
generateContent、streamGenerateContent。INPUT_PROMPT:傳送至 LLM 以生成內容的文字。請嘗試使用與代理搜尋中的文件相關的提示詞。
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
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。