Vertex AI RAG 引擎是 Vertex AI 平台的一環,可協助您進行檢索增強生成 (RAG)。RAG 引擎可讓大型語言模型 (LLM) 存取並整合外部知識來源的資料,例如文件和資料庫。使用 RAG 後,LLM 生成的回覆會更準確且實用。
參數清單
本節列出下列項目:
參數 | 範例 |
---|---|
請參閱「語料庫管理參數」。 | 請參閱語料庫管理範例。 |
請參閱「檔案管理參數」。 | 請參閱檔案管理範例。 |
請參閱「專案管理參數」。 | 請參閱專案管理範例。 |
語料庫管理參數
如要瞭解 RAG 語料庫,請參閱「語料庫管理」。
建立 RAG 語料庫
下表列出用於建立 RAG 語料庫的參數。
要求主體
參數 | |
---|---|
|
選用:不可變動。
用於指定語料庫類型的設定。 |
|
必要條件: RAG 語料庫的顯示名稱。 |
|
自由參加: RAG 語料庫的說明。 |
|
選用:不可變更: CMEK 金鑰名稱用於加密與 RAG 語料庫相關的靜態資料。金鑰名稱僅適用於向量資料庫的 格式: |
|
選用:不可變更: 向量資料庫的設定。 |
|
自由參加: Vertex AI Search 的設定。 格式: |
CorpusTypeConfig
參數 | |
---|---|
|
|
|
如果設定這個類型,RAG 語料庫就是 詳情請參閱「將 Vertex AI RAG 引擎做為記憶體儲存空間」。 |
|
用於剖析及儲存 Gemini Live API 工作階段背景資訊的 LLM 剖析器。您可以建構記憶體以建立索引。 |
RagVectorDbConfig
參數 | |
---|---|
|
如未指定向量資料庫,則預設為 |
|
預設值。 比較 RAG 語料庫中的所有資料點,找出最鄰近的項目。 如果您在建立 RAG 語料庫時未指定策略,系統預設會使用 KNN 擷取策略。 |
|
決定樹狀結構中的層數或層級數。 如果 RAG 語料庫中有O(10K) RAG 檔案,請將這個值設為 2。
決定樹狀結構中的葉節點數量。
|
|
指定 Weaviate 執行個體。 |
|
Weaviate 執行個體的 HTTP 端點。 設定後即無法變更值。您可以在 |
|
RAG 語料庫對應的 Weaviate 集合。 設定後即無法變更值。您可以在 |
|
指定 Pinecone 執行個體。 |
|
這是用來建立 Pinecone 索引的名稱,該索引會與 RAG 語料庫搭配使用。 設定後即無法變更值。您可以在 |
|
指定 Vertex AI 特徵儲存庫執行個體。 |
|
RAG 語料庫對應的 Vertex AI 特徵儲存庫 格式: 設定後即無法變更值。您可以在 |
|
指定 Vertex Vector Search 執行個體。 |
|
這是與 RAG 語料庫搭配使用的 Vector Search 索引資源名稱。 格式: 設定後即無法變更值。您可以在 |
|
這是與 RAG 語料庫搭配使用的 Vector Search 索引端點資源名稱。 格式: 設定後即無法變更值。您可以在 |
|
這是儲存在 Secret Manager 中的密鑰完整資源名稱,內含 Weaviate 或 Pinecone API 金鑰,視您選擇的向量資料庫而定。 格式: 您可以在 |
|
選用:不可變更: 用於 RAG 語料庫的嵌入模型。設定後即無法變更此值。如果留空,系統會使用 text-embedding-005 做為嵌入模型。 |
更新 RAG 語料庫
下表列出用於更新 RAG 語料庫的參數。
要求主體
參數 | |
---|---|
|
自由參加: RAG 語料庫的顯示名稱。 |
|
自由參加: RAG 語料庫的說明。 |
|
Weaviate 執行個體的 HTTP 端點。 如果您的 |
|
RAG 語料庫對應的 Weaviate 集合。 如果您的 |
|
這是用來建立 Pinecone 索引的名稱,該索引會與 RAG 語料庫搭配使用。 如果您的 |
|
RAG 語料庫對應的 Vertex AI 特徵儲存庫 格式: 如果 |
|
這是與 RAG 語料庫搭配使用的 Vector Search 索引資源名稱。 格式: 如果 |
|
這是與 RAG 語料庫搭配使用的 Vector Search 索引端點資源名稱。 格式: 如果 |
|
儲存在 Secret Manager 中的密鑰完整資源名稱,內含 Weaviate 或 Pinecone API 金鑰,視您選擇的向量資料庫而定。 格式: |
列出 RAG 語料庫
下表列出用於列出 RAG 語料庫的參數。
參數 | |
---|---|
|
自由參加: 標準清單頁面大小。 |
|
自由參加: 標準清單頁面符記。通常是從前一個 |
取得 RAG 語料庫
下表列出用於取得 RAG 語料庫的參數。
參數 | |
---|---|
|
|
刪除 RAG 語料庫
下表列出用於刪除 RAG 語料庫的參數。
參數 | |
---|---|
|
|
檔案管理參數
如要瞭解 RAG 檔案,請參閱「檔案管理」。
上傳 RAG 檔案
下表列出上傳 RAG 檔案時使用的參數。
要求主體
參數 | |
---|---|
|
|
|
必要條件: 要上傳的檔案。 |
|
必要條件: 要上傳至 |
RagFile |
|
---|---|
|
必要條件: RAG 檔案的顯示名稱。 |
|
自由參加: RAG 檔案的說明。 |
UploadRagFileConfig |
|
---|---|
|
每個區塊的權杖數量。 |
|
區塊之間的重疊。 |
匯入 RAG 檔案
下表列出匯入 RAG 檔案時使用的參數。
參數 | |
---|---|
|
必要條件:
格式: |
|
Cloud Storage 位置。 支援匯入個別檔案和整個 Cloud Storage 目錄。 |
|
包含上傳檔案的 Cloud Storage URI。 |
|
Google 雲端硬碟位置。 支援匯入個別檔案和 Google 雲端硬碟資料夾。 |
|
上傳檔案的 Slack 頻道。 |
|
上傳檔案的 Jira 查詢。 |
|
上傳檔案的 SharePoint 來源。 |
|
每個區塊的權杖數量。 |
|
區塊之間的重疊。 |
|
自由參加: 指定 如果未設定此欄位,RAG 會使用預設剖析器。 |
|
自由參加: 這項工作每分鐘可對語料庫中指定的嵌入模型發出的查詢數上限。這個值僅適用於這項工作,不會與其他匯入工作共用。請參閱專案的「配額」頁面,設定適當的值。 如未指定,系統會使用每分鐘 1,000 個查詢的預設值。 |
GoogleDriveSource |
|
---|---|
|
必要條件: Google 雲端硬碟資源的 ID。 |
|
必要條件: Google 雲端硬碟資源的類型。 |
SlackSource |
|
---|---|
|
重複: Slack 頻道資訊,包括要匯入的 ID 和時間範圍。 |
|
必要條件: Slack 頻道 ID。 |
|
自由參加: 要匯入訊息的起始時間戳記。 |
|
自由參加: 要匯入的訊息結束時間戳記。 |
|
必要條件: 儲存在 Secret Manager 中的密鑰完整資源名稱,內含可存取 Slack 管道 ID 的 Slack 管道存取權杖。 格式: |
JiraSource |
|
---|---|
|
重複: 要完整匯入的 Jira 專案清單。 |
|
重複: 要匯入的自訂 Jira 查詢清單。如要瞭解 JQL (Jira 查詢語言),請參閱
|
|
必要條件: Jira 電子郵件地址。 |
|
必要條件: Jira 伺服器 URI。 |
|
必要條件: 儲存在 Secret Manager 中的密鑰完整資源名稱,內含可存取 Slack 頻道 ID 的 Jira API 金鑰。 格式: |
SharePointSources |
|
---|---|
|
在 要從中下載檔案的 SharePoint 資料夾路徑。 |
|
在 要從中下載檔案的 SharePoint 資料夾 ID。 |
|
在 要從中下載檔案的雲端硬碟名稱。 |
|
在 要從中下載檔案的雲端硬碟 ID。 |
|
在 Microsoft Azure 入口網站中註冊的應用程式 ID。
|
|
必要條件: 儲存在 Secret Manager 中的密鑰完整資源名稱, 內含在 Azure 中註冊的應用程式密鑰。 格式: |
|
Azure Active Directory 執行個體的專屬 ID。 |
|
要從中下載檔案的 SharePoint 網站名稱。可以是網站名稱或網站 ID。 |
RagFileParsingConfig |
|
---|---|
|
用於 |
|
Document AI 處理器或處理器版本的完整資源名稱。 格式:
|
|
作業每分鐘可向 Document AI 處理器提出的要求數上限。 請參閱 https://cloud.google.com/document-ai/quotas 和專案的「配額」頁面,在此設定適當的值。如未指定,系統會使用預設值 120 QPM。 |
|
用於 |
|
LLM 模型的資源名稱。 格式:
|
|
工作每分鐘可向 LLM 模型提出的要求數上限。 如要為專案設定適當的值,請參閱模型配額一節和專案的「配額」頁面,以便在此設定適當的值。如未指定,系統會使用預設值 5000 QPM。 |
取得 RAG 檔案
下表列出用於取得 RAG 檔案的參數。
參數 | |
---|---|
|
|
刪除 RAG 檔案
下表列出用於刪除 RAG 檔案的參數。
參數 | |
---|---|
|
|
擷取和預測參數
本節列出擷取和預測參數。
擷取參數
下表列出 retrieveContexts
API 的參數。
參數 | |
---|---|
|
必要條件: 要擷取的位置資源名稱 格式: |
|
Vertex RagStore 的資料來源。 |
|
必要條件: 單一 RAG 擷取查詢。 |
VertexRagStore
VertexRagStore |
|
---|---|
|
名單: RAG 來源的表示法。可用於指定語料庫或 |
|
自由參加:
格式: |
|
名單:
格式: |
RagQuery |
|
---|---|
|
以文字格式查詢,取得相關背景資訊。 |
|
自由參加: 查詢的擷取設定。 |
RagRetrievalConfig |
|
---|---|
|
自由參加: 要擷取的內容數量。 |
|
自由參加: Alpha 值可控制稠密型和稀疏型向量搜尋結果之間的權重。範圍為 [0, 1],其中 0 代表僅限稀疏向量搜尋,1 代表僅限密集向量搜尋。預設值為 0.5,可平均分配稀疏和密集向量搜尋的權重。 混合搜尋僅適用於 Weaviate。 |
|
只傳回向量距離小於閾值的上下文。 |
|
只傳回向量相似度大於閾值的上下文。 |
|
自由參加: 排序服務的型號名稱。 範例: |
|
自由參加: 用於排名的模型名稱。 範例: |
預測參數
下表列出預測參數。
GenerateContentRequest |
|
---|---|
|
設定為使用由 Vertex AI RAG 商店支援的資料來源。 |
詳情請參閱 VertexRagStore。
專案管理參數
這個表格會列出專案層級的參數。
RagEngineConfig
參數 | |
---|---|
RagManagedDbConfig.scaled |
這個層級提供正式環境規模的效能,以及自動調度功能。 |
RagManagedDbConfig.basic |
這個層級的運算資源需求低,且符合成本效益。 |
RagManagedDbConfig.unprovisioned |
這個層級會刪除 RagManagedDb 和基礎 Spanner 執行個體。 |
語料庫管理範例
本節提供範例,說明如何使用 API 管理 RAG 語料庫。
建立 RAG 語料庫範例
這段程式碼範例說明如何建立 RAG 語料庫。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- CORPUS_DISPLAY_NAME:
RagCorpus
的顯示名稱。 - CORPUS_DESCRIPTION:
RagCorpus
的說明。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora
JSON 要求主體:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
以下範例說明如何使用 REST API 建立 RAG 語料庫。
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
// CreateRagCorpus
// Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
// Output: CreateRagCorpusOperationMetadata
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
-d '{
"display_name" : "CORPUS_DISPLAY_NAME"
}'
更新 RAG 語料庫範例
您可以更新 RAG 語料庫,包括新的顯示名稱、說明和向量資料庫設定。不過,您無法在 RAG 語料庫中變更下列參數:
- 向量資料庫類型。舉例來說,您無法將向量資料庫從 Weaviate 變更為 Vertex AI 特徵儲存庫。
- 如果您使用受管理資料庫選項,則無法更新向量資料庫設定。
以下範例說明如何更新 RAG 語料庫。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- CORPUS_ID:RAG 語料庫的語料庫 ID。
- CORPUS_DISPLAY_NAME:
RagCorpus
的顯示名稱。 - CORPUS_DESCRIPTION:
RagCorpus
的說明。 - INDEX_NAME:
Vector Search Index
的資源名稱。格式:projects/{project}/locations/{location}/indexes/{index}
- INDEX_ENDPOINT_NAME:
Vector Search Index Endpoint
的資源名稱。格式:projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}
HTTP 方法和網址:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID
JSON 要求主體:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", "rag_vector_db_config": { "vertex_vector_search": { "index": "INDEX_NAME", "index_endpoint": "INDEX_ENDPOINT_NAME", } } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
列出 RAG 語料庫範例
這段程式碼範例示範如何列出所有 RAG 語料庫。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- PAGE_SIZE:標準清單頁面大小。如要調整每頁傳回的
RagCorpora
數量,請更新page_size
參數。 - PAGE_TOKEN:標準清單頁面符記。通常是透過先前
VertexRagDataService.ListRagCorpora
呼叫的ListRagCorporaResponse.next_page_token
取得。
HTTP 方法和網址:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
PROJECT_ID
下的 RagCorpora
清單。
取得 RAG 語料庫範例
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_ID:
RagCorpus
資源的 ID。
HTTP 方法和網址:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
RagCorpus
資源。
<0x0A範例會使用 get
和 list
指令,說明 RagCorpus
如何搭配使用 vector_db_config
中的 rag_embedding_model_config
欄位,指向您選擇的嵌入模型。
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
刪除 RAG 語料庫範例
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_ID:
RagCorpus
資源的 ID。
HTTP 方法和網址:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
DeleteOperationMetadata
。
檔案管理範例
本節提供範例,說明如何使用 API 管理 RAG 檔案。
上傳 RAG 檔案範例
REST
使用任何要求資料之前,請先替換以下項目: PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
LOCAL_FILE_PATH: The local path to the file to be uploaded.
DISPLAY_NAME: The display name of the RAG file.
DESCRIPTION: The description of the RAG file.
如要傳送要求,請使用下列指令:
curl -X POST \
-H "X-Goog-Upload-Protocol: multipart" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
-F file=@LOCAL_FILE_PATH \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
匯入 RAG 檔案範例
您可以從雲端硬碟或 Cloud Storage 匯入檔案和資料夾。
response.skipped_rag_files_count
是指匯入期間略過的檔案數。符合下列條件時,系統會略過檔案:
- 檔案已匯入。
- 檔案未變更。
- 檔案的分塊設定未變更。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_ID:
RagCorpus
資源的 ID。 - GCS_URIS:Cloud Storage 位置清單。範例:
gs://my-bucket1, gs://my-bucket2
。 - CHUNK_SIZE:選用:每個分塊應有的權杖數量。
- CHUNK_OVERLAP:(選填) 區塊之間重疊的符記數量。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
JSON 要求主體:
{ "import_rag_files_config": { "gcs_source": { "uris": "GCS_URIS" }, "rag_file_chunking_config": { "chunk_size": CHUNK_SIZE, "chunk_overlap": CHUNK_OVERLAP } } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
資源。
<0x0A下列範例示範如何從 Cloud Storage 匯入檔案。在 ImportRagFiles
索引程序期間,使用 max_embedding_requests_per_min
控制欄位限制 RAG 引擎呼叫嵌入模型的速率。這個欄位的預設值為每分鐘 1000
次呼叫。
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
CHUNK_SIZE: Number of tokens each chunk should have.
CHUNK_OVERLAP: Number of tokens overlap between chunks.
EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": "GCS_URIS"
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE,
"chunk_overlap": CHUNK_OVERLAP
},
"max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID
下列範例說明如何從雲端硬碟匯入檔案。在 ImportRagFiles
索引程序期間,使用 max_embedding_requests_per_min
控制欄位限制 RAG 引擎呼叫嵌入模型的速率。這個欄位的預設值為每分鐘 1000
次呼叫。
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
CHUNK_SIZE: Number of tokens each chunk should have.
CHUNK_OVERLAP: Number of tokens overlap between chunks.
EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
"import_rag_files_config": {
"google_drive_source": {
"resource_ids": {
"resource_id": "FOLDER_RESOURCE_ID",
"resource_type": "RESOURCE_TYPE_FOLDER"
}
},
"max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID
列出 RAG 檔案範例
這個程式碼範例說明如何列出 RAG 檔案。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_ID:
RagCorpus
資源的 ID。 - PAGE_SIZE:標準清單頁面大小。如要調整每頁傳回的
RagFiles
數量,請更新page_size
參數。 - PAGE_TOKEN:標準清單頁面符記。通常是透過先前
VertexRagDataService.ListRagFiles
呼叫的ListRagFilesResponse.next_page_token
取得。
HTTP 方法和網址:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
RAG_CORPUS_ID
下的 RagFiles
清單。
取得 RAG 檔案範例
這段程式碼範例說明如何取得 RAG 檔案。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_ID:
RagCorpus
資源的 ID。 - RAG_FILE_ID:
RagFile
資源的 ID。
HTTP 方法和網址:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
RagFile
資源。
刪除 RAG 檔案範例
這段程式碼範例示範如何刪除 RAG 檔案。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- RAG_CORPUS_ID:
RagCorpus
資源的 ID。 - RAG_FILE_ID:
RagFile
資源的 ID。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
。
HTTP 方法和網址:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
DeleteOperationMetadata
資源。
擷取查詢範例
使用者提問或提供提示時,RAG 的檢索元件會搜尋知識庫,找出與查詢相關的資訊。
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION:處理要求的區域。
- PROJECT_ID:您的專案 ID。
- RAG_CORPUS_RESOURCE:
RagCorpus
資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
。 - VECTOR_DISTANCE_THRESHOLD:只傳回向量距離小於閾值的上下文。
- TEXT:用於取得相關脈絡的查詢文字。
- SIMILARITY_TOP_K:要擷取的重要上下文數量。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
JSON 要求主體:
{ "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE" }, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD }, "query": { "text": "TEXT", "similarity_top_k": SIMILARITY_TOP_K } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
清單。
生成範例
LLM 會根據檢索到的脈絡資訊,生成有依據的回覆。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID。
- LOCATION:處理要求的區域。
- MODEL_ID:用於生成內容的大型語言模型。範例:
gemini-2.5-flash
- GENERATION_METHOD:用於生成內容的 LLM 方法。選項:
generateContent
、streamGenerateContent
- INPUT_PROMPT:傳送至 LLM 的文字,用於生成內容。請嘗試使用與上傳的 RAG 檔案相關的提示。
- RAG_CORPUS_RESOURCE:
RagCorpus
資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
。 - SIMILARITY_TOP_K:(選用) 要擷取的重要上下文數量。
- VECTOR_DISTANCE_THRESHOLD:(選填) 傳回向量距離小於閾值的上下文。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
JSON 要求主體:
{ "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, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD } } } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
專案管理範例
層級是資源下的專案層級設定,會影響使用 RagManagedDb
的 RAG 語料庫。RagEngineConfig
如要取得層級設定,請使用 GetRagEngineConfig
。如要更新層級設定,請使用 UpdateRagEngineConfig
。
如要進一步瞭解如何管理層級設定,請參閱「管理層級」。
取得專案設定
以下程式碼範例說明如何讀取 RagEngineConfig
:
主控台
- 前往 Google Cloud 控制台的「RAG Engine」頁面。
- 選取 RAG Engine 執行的區域。RAG 語料庫清單已更新。
- 按一下「設定 RAG Engine」。「設定 RAG Engine」窗格隨即顯示。您可以查看為 RAG 引擎選取的層級。
- 按一下「取消」。
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config = rag.rag_data.get_rag_engine_config(
name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
)
print(rag_engine_config)
REST
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig
更新專案設定
本節提供程式碼範例,說明如何在設定中變更層級。
將「RagEngineConfig
」更新為「已縮放」層級
下列程式碼範例說明如何將 RagEngineConfig
設為「已縮放」層級:
主控台
- 前往 Google Cloud 控制台的「RAG Engine」頁面。
- 選取 RAG Engine 執行的區域。RAG 語料庫清單已更新。
- 按一下「設定 RAG Engine」。「設定 RAG Engine」窗格隨即顯示。
- 選取要執行 RAG Engine 的層級。
- 按一下 [儲存]。
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Scaled()),
)
updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)
print(updated_rag_engine_config)
REST
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'scaled': {}}}"
將 RagEngineConfig
更新至 Basic 級別
下列程式碼範例示範如何將 RagEngineConfig
設為 Basic 層級:
如果 RAG 語料庫的RagManagedDb
資料量龐大,降級至 Basic 方案時,可能會因運算和儲存容量不足而失敗。
主控台
- 前往 Google Cloud 控制台的「RAG Engine」頁面。
- 選取 RAG Engine 執行的區域。RAG 語料庫清單已更新。
- 按一下「設定 RAG Engine」。「設定 RAG Engine」窗格隨即顯示。
- 選取要執行 RAG Engine 的層級。
- 按一下 [儲存]。
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Basic()),
)
updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)
print(updated_rag_engine_config)
REST
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'basic': {}}}"
將 RagEngineConfig
更新為未佈建層級
下列程式碼範例說明如何將 RagEngineConfig
設為「未佈建」層級:
主控台
- 前往 Google Cloud 控制台的「RAG Engine」頁面。
- 選取 RAG Engine 執行的區域。RAG 語料庫清單已更新。
- 按一下「設定 RAG Engine」。「設定 RAG Engine」窗格隨即顯示。
- 按一下「刪除 RAG Engine」。即會顯示確認對話方塊。
- 輸入「delete」,確認要刪除 RAG 引擎中的資料,然後按一下「Confirm」。
- 按一下 [儲存]。
Python
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Unprovisioned()),
)
updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)
print(updated_rag_engine_config)
REST
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'unprovisioned': {}}}"
後續步驟
- 如要進一步瞭解支援的生成模型,請參閱支援 RAG 的生成式 AI 模型。
- 如要進一步瞭解支援的嵌入模型,請參閱「嵌入模型」。
- 如要進一步瞭解開放式模型,請參閱開放式模型。
- 如要進一步瞭解 RAG Engine,請參閱 RAG Engine 總覽。