RAG Engine API

Vertex AI RAG 引擎是 Vertex AI 平台的元件,可協助執行檢索增強生成 (RAG) 作業。RAG Engine 可讓大型語言模型 (LLM) 存取及整合來自外部知識來源的資料,例如文件和資料庫。透過 RAG,LLM 就能生成更準確且實用的回覆。

參數清單

本節列出以下內容:

參數 範例
請參閱「語料庫管理參數」。 請參閱語料庫管理範例
請參閱檔案管理參數 請參閱檔案管理範例

字庫管理參數

如要瞭解 RAG 語料庫的相關資訊,請參閱「語料庫管理」。

建立 RAG 語料庫

這個表格列出用來建立 RAG 語料庫的參數。

要求主體
參數

display_name

必要項目:string

RAG 語料庫的顯示名稱。

description

選用:string

RAG 語料庫的說明。

vector_db_config

選用:不可變更:RagVectorDbConfig

向量資料庫的設定。

vertex_ai_search_config.serving_config

選用:string

Vertex AI Search 的設定。

格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config}projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}

RagVectorDbConfig
參數

rag_managed_db

oneof vector_dbRagVectorDbConfig.RagManagedDb

如未指定向量資料庫,預設值為 rag_managed_db

weaviate

oneof vector_dbRagVectorDbConfig.Weaviate

指定 Weaviate 執行個體。

weaviate.http_endpoint

string

Weaviate 執行個體的 HTTP 端點。

設定後即無法變更此值。您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

weaviate.collection_name

string

RAG 語料庫對應的 Weaviate 集合。

設定後即無法變更此值。您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

pinecone

oneof vector_dbRagVectorDbConfig.Pinecone

指定 Pinecone 例項。

pinecone.index_name

string

這是用來建立與 RAG 語料庫搭配使用的 Pinecone 索引的名稱。

設定後即無法變更此值。您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

vertex_feature_store

oneof vector_dbRagVectorDbConfig.VertexFeatureStore

指定 Vertex AI 特徵儲存庫執行個體。

vertex_feature_store.feature_view_resource_name

string

RAG 叢集對應的 Vertex AI 特徵儲存庫 FeatureView

格式:projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

設定後即無法變更此值。您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

vertex_vector_search

oneof vector_dbRagVectorDbConfig.VertexVectorSearch

指定 Vertex Vector Search 執行個體。

vertex_vector_search.index

string

這是 RAG 語料庫所使用的向量搜尋索引資源名稱。

格式:projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

設定後即無法變更此值。您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

vertex_vector_search.index_endpoint

string

這是與 RAG 語料庫搭配使用的 Vector Search 索引端點資源名稱。

格式:projects/{project}/locations/{location}/indexes/{index}

設定後即無法變更此值。您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

api_auth.api_key_config.api_key_secret_version

string

這是儲存在 Secret Manager 中的密鑰完整資源名稱,其中包含 Weaviate 或 Pinecone API 金鑰,取決於您選擇的向量資料庫。

格式:projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

您可以在 CreateRagCorpus API 呼叫中將其留空,並在後續 UpdateRagCorpus API 呼叫中設定非空值。

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

選用:不可變更:string

要用於 RAG 語料庫的嵌入模型。設定後即無法變更此值。如果您將其留空,我們會使用 text-embedding-004 做為嵌入模型。

更新 RAG 語料庫

這個表格列出用於更新 RAG 語料庫的參數。

要求主體
參數

display_name

選用:string

RAG 語料庫的顯示名稱。

description

選用:string

RAG 語料庫的說明。

rag_vector_db.weaviate.http_endpoint

string

Weaviate 執行個體的 HTTP 端點。

如果您的 RagCorpus 是使用 Weaviate 設定建立,且這個欄位從未設定過,您可以更新 Weaviate 執行個體的 HTTP 端點。

rag_vector_db.weaviate.collection_name

string

RAG 語料庫對應的 Weaviate 集合。

如果您的 RagCorpus 是使用 Weaviate 設定建立,且這個欄位從未設定過,您可以更新 Weaviate 執行個體的集合名稱。

rag_vector_db.pinecone.index_name

string

這是用來建立 Pinecone 索引的名稱,用於與 RAG 語料庫搭配使用。

如果您的 RagCorpus 是使用 Pinecone 設定建立,且這個欄位從未設定過,您可以更新 Pinecone 執行個體的索引名稱。

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

RAG 叢集對應的 Vertex AI 特徵儲存庫 FeatureView

格式:projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

如果您的 RagCorpus 是使用 Vertex AI Feature Store 設定建立,且這個欄位從未設定過,您可以進行更新。

rag_vector_db.vertex_vector_search.index

string

這是 RAG 語料庫所使用的向量搜尋索引資源名稱。

格式:projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

如果您的 RagCorpus 是使用 Vector Search 設定建立,且這個欄位從未設定過,您可以進行更新。

rag_vector_db.vertex_vector_search.index_endpoint

string

這是與 RAG 語料庫搭配使用的 Vector Search 索引端點資源名稱。

格式:projects/{project}/locations/{location}/indexes/{index}

如果您的 RagCorpus 是使用 Vector Search 設定建立,且這個欄位從未設定過,您可以進行更新。

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

儲存在 Secret Manager 中的密鑰完整資源名稱 (包含 Weaviate 或 Pinecone API 金鑰) 取決於您選擇的向量資料庫。

格式:projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

列出 RAG 語料庫

這個表格列出用於列出 RAG 語料庫的參數。

參數

page_size

選用:int

標準清單頁面大小。

page_token

選用:string

標準清單頁面憑證。通常是從上一個 [VertexRagDataService.ListRagCorpora][] 呼叫的 [ListRagCorporaResponse.next_page_token][] 取得。

取得 RAG 語料庫

這個表格列出用於取得 RAG 語料庫的參數。

參數

name

string

RagCorpus 資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

刪除 RAG 語料庫

這個表格列出用來刪除 RAG 語料庫的參數。

參數

name

string

RagCorpus 資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

檔案管理參數

如要瞭解 RAG 檔案,請參閱檔案管理

上傳 RAG 檔案

這個表格列出用於上傳 RAG 檔案的參數。

要求主體
參數

parent

string

RagCorpus 資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

必要項目:RagFile

要上傳的檔案。

upload_rag_file_config

必要項目:UploadRagFileConfig

要上傳至 RagCorpusRagFile 設定。

RagFile

display_name

必要項目:string

RAG 檔案的顯示名稱。

description

選用:string

RAG 檔案的說明。

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

每個區塊的符記數量。

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

區塊之間的重疊。

匯入 RAG 檔案

這個表格列出用於匯入 RAG 檔案的參數。

參數

parent

必要項目:string

RagCorpus 資源的名稱。

格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

gcs_source

oneof import_sourceGcsSource

Cloud Storage 位置。

支援匯入個別檔案和整個 Cloud Storage 目錄。

gcs_source.uris

list/string

包含上傳檔案的 Cloud Storage URI。

google_drive_source

oneof import_sourceGoogleDriveSource

Google 雲端硬碟位置。

支援匯入個別檔案和 Google 雲端硬碟資料夾。

slack_source

oneof import_sourceSlackSource

檔案上傳的 Slack 頻道。

jira_source

oneof import_sourceJiraSource

上傳檔案的 Jira 查詢。

share_point_sources

oneof import_sourceSharePointSources

上傳檔案的 SharePoint 來源。

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

每個區塊的符記數。

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

區塊之間的重疊。

rag_file_parsing_config

選用:RagFileParsingConfig

指定 RagFiles 的剖析設定。

如果未設定這個欄位,RAG 會使用預設的剖析器。

max_embedding_requests_per_min

選用:int32

此工作允許對詞彙庫中指定的嵌入模型進行的查詢數上限 (每分鐘)。這個值僅適用於這項工作,不會與其他匯入工作共用。請參閱專案的「配額」頁面,設定適當的值。

如未指定,系統會使用預設值 1,000 QPM。

GoogleDriveSource

resource_ids.resource_id

必要項目:string

Google 雲端硬碟資源的 ID。

resource_ids.resource_type

必要項目:string

Google 雲端硬碟資源的類型。

SlackSource

channels.channels

重複:SlackSource.SlackChannels.SlackChannel

Slack 頻道資訊,包括 ID 和匯入時間範圍。

channels.channels.channel_id

必要項目:string

Slack 管道 ID。

channels.channels.start_time

選用:google.protobuf.Timestamp

要匯入訊息的起始時間戳記。

channels.channels.end_time

選用:google.protobuf.Timestamp

匯入訊息的結束時間戳記。

channels.api_key_config.api_key_secret_version

必要項目:string

儲存在 Secret Manager 中的密鑰完整資源名稱,其中包含可存取 Slack 管道 ID 的 Slack 管道存取權杖。
請參閱:https://api.slack.com/tutorials/tracks/getting-a-token。

格式:projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

JiraSource

jira_queries.projects

重複:string

要完整匯入的 Jira 專案清單。

jira_queries.custom_queries

重複:string

要匯入的自訂 Jira 查詢清單。如需有關 JQL (Jira 查詢語言) 的資訊,請參閱
Jira 支援

jira_queries.email

必要項目:string

Jira 電子郵件地址。

jira_queries.server_uri

必要項目:string

Jira 伺服器 URI。

jira_queries.api_key_config.api_key_secret_version

必要項目:string

儲存在 Secret Manager 中的密鑰完整資源名稱,其中包含可存取 Slack 頻道 ID 的 Jira API 金鑰。
請參閱:https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

格式:projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

SharePointSources

share_point_sources.sharepoint_folder_path

folder_source 中的 oneofstring

要下載的 SharePoint 資料夾路徑。

share_point_sources.sharepoint_folder_id

folder_source 中的 oneofstring

要下載的 SharePoint 資料夾 ID。

share_point_sources.drive_name

drive_source 中的 oneofstring

要下載的雲端硬碟名稱。

share_point_sources.drive_id

drive_source 中的 oneofstring

要下載的雲端硬碟 ID。

share_point_sources.client_id

string

在 Microsoft Azure 入口網站註冊的應用程式應用程式 ID。
應用程式也必須具備 MS Graph 權限「Files.ReadAll」、「Sites.ReadAll」和「BrowserSiteLists.Read.All」。

share_point_sources.client_secret.api_key_secret_version

必要項目:string

儲存在 Secret Manager 中的密鑰完整資源名稱,其中包含在 Azure 註冊的應用程式所用的應用程式密鑰。

格式:projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

share_point_sources.tenant_id

string

Azure Active Directory 執行個體的專屬 ID。

share_point_sources.sharepoint_site_name

string

要下載的 SharePoint 網站名稱。可以是網站名稱或網站 ID。

RagFileParsingConfig

layout_parser

oneof parserRagFileParsingConfig.LayoutParser

用於 RagFile 的版面配置剖析器。

layout_parser.processor_name

string

Document AI 處理器或處理器版本的完整資源名稱。

格式:
projects/{project_id}/locations/{location}/processors/{processor_id}
projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}

layout_parser.max_parsing_requests_per_min

string

工作每分鐘可向 Document AI 處理器提出的要求數量上限。

請參閱 https://cloud.google.com/document-ai/quotas 和專案的「配額」頁面,在此設定適當的值。如未指定,系統會使用預設值 120 QPM。

取得 RAG 檔案

這個表格列出用於取得 RAG 檔案的參數。

參數

name

string

RagFile 資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

刪除 RAG 檔案

這個表格列出用來刪除 RAG 檔案的參數。

參數

name

string

RagFile 資源的名稱。格式:projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

擷取和預測

本節會列出擷取和預測參數。

擷取參數

本表列出 retrieveContexts API 的參數。

參數

parent

必要項目:string

要擷取 RagContexts 的位置資源名稱。
使用者必須具備在專案中撥打電話的權限。

格式:projects/{project}/locations/{location}

vertex_rag_store

VertexRagStore

Vertex RagStore 的資料來源。

query

必要項目:RagQuery

單一 RAG 擷取查詢。

VertexRagStore
VertexRagStore

rag_resources

清單:RagResource

RAG 來源的表示法。可用來指定僅包含語料庫或 RagFile。僅支援一個語料庫或一個語料庫中的多個檔案。

rag_resources.rag_corpus

選用:string

RagCorpora 資源名稱。

格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

rag_resources.rag_file_ids

名單:string

RagFile 資源清單。

格式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}

RagQuery

text

string

以文字格式提供查詢,以便取得相關的上下文。

rag_retrieval_config

選用:RagRetrievalConfig

查詢的擷取設定。

RagRetrievalConfig

top_k

選用:int32

要擷取的上下文數量。

hybrid_search.alpha

選用:float

Alpha 值可控制稠密型和稀疏型向量搜尋結果之間的權重。範圍為 [0, 1],其中 0 表示只搜尋稀疏向量,1 則表示只搜尋密集向量。預設值為 0.5,可平衡稀疏和稠密向量搜尋。

混合搜尋功能僅適用於 Weaviate。

filter.vector_distance_threshold

oneof vector_db_thresholddouble

只傳回向量距離小於閾值的上下文。

filter.vector_similarity_threshold

oneof vector_db_thresholddouble

只傳回向量相似度大於閾值的上下文。

ranking.rank_service.model_name

選用:string

排名服務的模型名稱。

範例:semantic-ranker-512@latest

ranking.llm_ranker.model_name

選用:string

用於排名的模型名稱。

範例:gemini-2.0-flash

預測參數

下表列出預測參數。

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

設定為使用由 Vertex AI RAG 儲存庫提供的資料來源。

詳情請參閱 VertexRagStore

語料庫管理範例

本節將舉例說明如何使用 API 管理 RAG 語料庫。

建立 RAG 語料庫範例

以下程式碼範例說明如何建立 RAG 語料庫。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的專案 ID
  • LOCATION:處理要求的區域。
  • CORPUS_DISPLAY_NAMERagCorpus 的顯示名稱。
  • CORPUS_DESCRIPTIONRagCorpus 的說明。

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
您應該會收到執行成功的狀態碼 (2xx)。

以下範例說明如何使用 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_NAMERagCorpus 的顯示名稱。
  • CORPUS_DESCRIPTIONRagCorpus 的說明。
  • INDEX_NAMEVector Search Index 的資源名稱。格式:projects/{project}/locations/{location}/indexes/{index}
  • INDEX_ENDPOINT_NAMEVector 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
您應該會收到成功的狀態碼 (2xx)。

列出 RAG 語料庫示例

以下程式碼範例示範如何列出所有 RAG 語料庫。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的專案 ID
  • LOCATION:處理要求的區域。
  • PAGE_SIZE:標準清單頁面大小。您可以更新 page_size 參數,調整每頁傳回的 RagCorpora 數量。
  • 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
您應該會收到執行成功的狀態碼 (`2xx`),以及指定 PROJECT_ID 下的 RagCorpora 清單。

取得 RAG 語料庫範例

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的專案 ID
  • LOCATION:處理要求的區域。
  • RAG_CORPUS_IDRagCorpus 資源的 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 資源。

範例中使用 getlist 指令,說明 RagCorpus 如何使用 rag_embedding_model_config 欄位,並在 vector_db_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_IDRagCorpus 資源的 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 是指匯入作業中略過的檔案數量。系統會在符合下列條件時略過檔案:

  1. 檔案已匯入。
  2. 檔案並未變更。
  3. 檔案的分塊設定未變更。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的專案 ID
  • LOCATION:處理要求的區域。
  • RAG_CORPUS_IDRagCorpus 資源的 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 資源。

以下範例示範如何從 Cloud Storage 匯入檔案。使用 max_embedding_requests_per_min 控制欄位,限制 RAG Engine 在 ImportRagFiles 索引程序中呼叫嵌入模型的頻率。這個欄位的預設值為每分鐘 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

以下範例說明如何從 Google 雲端硬碟匯入檔案。使用 max_embedding_requests_per_min 控制欄位,限制 RAG 引擎在 ImportRagFiles 索引程序中呼叫嵌入模型的頻率。這個欄位的預設值為每分鐘 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_IDRagCorpus 資源的 ID。
  • PAGE_SIZE:標準清單頁面大小。您可以更新 page_size 參數,調整每頁傳回的 RagFiles 數量。
  • 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
您應該會收到成功的狀態碼 (2xx),以及指定的 RAG_CORPUS_ID 底下的 RagFiles 清單。

取得 RAG 檔案範例

這個程式碼範例說明如何取得 RAG 檔案。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的專案 ID
  • LOCATION:處理要求的區域。
  • RAG_CORPUS_IDRagCorpus 資源的 ID。
  • RAG_FILE_IDRagFile 資源的 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_IDRagCorpus 資源的 ID。
  • RAG_FILE_IDRagFile 資源的 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_RESOURCERagCorpus 資源的名稱。格式: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
您應該會收到成功的狀態碼 (2xx) 和相關的 RagFiles 清單。

代別

大型語言模型會使用擷取的內容,生成有依據的回覆。

REST

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的專案 ID
  • LOCATION:處理要求的區域。
  • MODEL_ID:用於產生內容的 LLM 模型。範例:gemini-2.0-flash-001
  • GENERATION_METHOD:用於產生內容的 LLM 方法。選項:generateContentstreamGenerateContent
  • INPUT_PROMPT:傳送至 LLM 的文字,用於產生內容。請嘗試使用與上傳的 rag 檔案相關的提示。
  • RAG_CORPUS_RESOURCERagCorpus 資源的名稱。格式: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
如果回應成功,系統會傳回含有引用資訊的生成內容。

後續步驟