Vertex AI RAG Engine は、検索拡張生成(RAG)を容易にする Vertex AI プラットフォームのコンポーネントです。RAG Engine を使用すると、大規模言語モデル(LLM)はドキュメントやデータベースなどの外部ナレッジソースにアクセスしてデータを組み込むことができます。RAG を使用すると、LLM はより正確で有益な LLM レスポンスを生成できます。
パラメータ リスト
このセクションでは、次について説明します。
パラメータ | 例 |
---|---|
コーパス管理パラメータをご覧ください。 | コーパス管理の例をご覧ください。 |
ファイル管理パラメータをご覧ください。 | ファイル管理の例をご覧ください。 |
コーパス管理パラメータ
RAG コーパスの詳細については、コーパス管理をご覧ください。
RAG コーパスを作成する
次の表では、RAG コーパスの作成に使用するパラメータの一覧を確認できます。
本文リクエスト
パラメータ | |
---|---|
|
必須: RAG コーパスの表示名。 |
|
省略可: RAG コーパスの説明。 |
|
省略可: 変更不可: ベクトル DB の構成。 |
|
省略可: Vertex AI Search の構成。 形式: |
RagVectorDbConfig
パラメータ | |
---|---|
|
ベクトル データベースが指定されていない場合、 |
|
Pinecone インスタンスを指定します。 |
|
これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。 この値を設定後に変更することはできません。 |
|
Vertex Vector Search インスタンスを指定します。 |
|
これは、RAG コーパスで使用するベクトル検索インデックスのリソース名です。 形式: この値を設定後に変更することはできません。 |
|
これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。 形式: この値を設定後に変更することはできません。 |
|
これは、Secret Manager に保存されている Secret の完全なリソース名です。ここには Pinecone API キーが含まれます。 形式:
|
|
省略可: 変更不可: RAG コーパスに使用するエンベディング モデル。この値を設定後に変更することはできません。空のままにすると、エンベディング モデルとして text-embedding-005 が使用されます。 |
RAG コーパスを更新する
次の表では、RAG コーパスの更新に使用するパラメータの一覧を確認できます。
本文リクエスト
パラメータ | |
---|---|
|
省略可: RAG コーパスの表示名。 |
|
省略可: RAG コーパスの説明。 |
|
これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。
|
|
これは、RAG コーパスで使用するベクトル検索インデックスのリソース名です。 形式:
|
|
これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。 形式:
|
|
Secret Manager に保存されている Secret の完全なリソース名。ここには 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 分間に実行できるクエリの最大数。この値は、このジョブに固有のものであり、他のインポート ジョブと共有されません。プロジェクトの [割り当て] ページで適切な値を設定します。 指定しない場合、デフォルト値の 1,000 QPM が使用されます。 |
GoogleDriveSource |
|
---|---|
|
必須: Google ドライブのリソースの ID。 |
|
必須: Google ドライブのリソースのタイプ。 |
SlackSource |
|
---|---|
|
繰り返し: Slack チャンネル情報(ID とインポートする期間を含む)。 |
|
必須: Slack チャンネル ID。 |
|
省略可: インポートするメッセージの開始タイムスタンプ。 |
|
省略可: インポートするメッセージの終了タイムスタンプ。 |
|
必須: Secret Manager に保存されている Secret の完全なリソース名。ここには、Slack チャネル ID にアクセスできる Slack チャネル アクセス トークンが含まれています。 形式: |
JiraSource |
|
---|---|
|
繰り返し: すべてインポートする Jira プロジェクトのリスト。 |
|
繰り返し: インポートするカスタム Jira クエリのリスト。JQL(Jira Query Language)の詳細については、 |
|
必須: Jira のメールアドレス。 |
|
必須: Jira のサーバー URI。 |
|
必須: Secret Manager に保存されている Secret の完全なリソース名。ここには、Slack チャネル ID にアクセスできる Jira API キーが含まれます。 形式: |
SharePointSources |
|
---|---|
|
ダウンロード元の SharePoint フォルダのパス。 |
|
ダウンロード元の SharePoint フォルダの ID。 |
|
ダウンロード元のドライブの名前。 |
|
ダウンロード元のドライブの ID。 |
|
Microsoft Azure ポータルに登録されているアプリのアプリケーション ID。 |
|
必須: Secret Manager に保存されているシークレットの完全なリソース名。Azure に登録されているアプリのアプリケーション シークレットを含みます。 形式: |
|
Azure Active Directory インスタンスの固有識別子。 |
|
ダウンロード元の SharePoint サイトの名前。サイト名またはサイト ID を指定できます。 |
RagFileParsingConfig |
|
---|---|
|
|
|
Document AI プロセッサまたはプロセッサ バージョンの完全なリソース名。 形式:
|
|
ジョブが Document AI プロセッサに対して 1 分あたりに送信できるリクエストの最大数。 https://cloud.google.com/document-ai/quotas と、プロジェクトの [割り当て] ページを参照して、ここで適切な値を設定します。指定しない場合、デフォルト値の 120 QPM が使用されます。 |
RAG ファイルを取得する
次の表では、RAG ファイルの取得に使用するパラメータの一覧を確認できます。
パラメータ | |
---|---|
|
|
RAG ファイルを削除する
次の表では、RAG ファイルの削除に使用するパラメータの一覧を確認できます。
パラメータ | |
---|---|
|
|
取得と予測
このセクションでは、取得パラメータと予測パラメータの一覧を確認できます。
取得パラメータ
次の表に、retrieveContexts
API のパラメータを示します。
パラメータ | |
---|---|
|
必須:
形式: |
|
Vertex RagStore のデータソース。 |
|
必須: 単一の RAG 取得クエリ。 |
VertexRagStore
VertexRagStore |
|
---|---|
|
list: RAG ソースの表現。コーパスのみまたは |
|
省略可:
形式: |
|
list:
形式: |
RagQuery |
|
---|---|
|
関連するコンテキストを取得するテキスト形式のクエリ。 |
|
省略可: クエリの取得構成。 |
RagRetrievalConfig |
|
---|---|
|
省略可: 取得するコンテキストの数。 |
|
ベクトル距離がしきい値より小さいコンテキストのみが返されます。 |
|
ベクトル類似度がしきい値より大きいコンテキストのみを返します。 |
|
省略可: ランクサービスのモデル名。 例: |
|
省略可: ランキングに使用されるモデル名。 例: |
予測パラメータ
次の表では、予測パラメータの一覧を確認できます。
GenerateContentRequest |
|
---|---|
|
Vertex AI RAG ストアで使用されるデータソースを使用するように設定します。 |
詳細については、VertexRagStore をご覧ください。
コーパス管理の例
このセクションでは、API を使用して RAG コーパスを管理する方法の例を示します。
RAG コーパスの作成の例
次のコードサンプルは、RAG コーパスを作成する方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- CORPUS_DISPLAY_NAME: RAG コーパスの表示名。
- CORPUS_DESCRIPTION: RAG コーパスの説明。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
成功を示すステータス コード(2xx)が返されます。
次の例は、REST API を使用して RAG コーパスを作成する方法を示しています。
// 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
-d '{
"display_name" : "CORPUS_DISPLAY_NAME"
}'
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
RAG コーパスの更新の例
RAG コーパスを更新して、新しい表示名、説明、ベクトル データベースの構成を指定できます。ただし、RAG コーパスの次のパラメータは変更できません。
- ベクトル データベースの種類。たとえば、ベクトル データベースを Weaviate から Vertex AI Feature Store に変更することはできません。
- マネージド データベース オプションを使用している場合、ベクトル データベースの構成を更新することはできません。
次の例は、RAG コーパスの更新方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- CORPUS_ID: RAG コーパスのコーパス ID。
- CORPUS_DISPLAY_NAME: RAG コーパスの表示名。
- CORPUS_DESCRIPTION: RAG コーパスの説明。
- INDEX_NAME: ベクトル検索インデックスのリソース名。形式:
projects/{project}/locations/{location}/indexes/{index}
。 - INDEX_ENDPOINT_NAME: ベクトル検索インデックス エンドポイントのリソース名。形式:
projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}
。
HTTP メソッドと URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
成功を示すステータス コード(2xx)が返されます。
RAG コーパスのリストの例
次のコードサンプルは、すべての RAG コーパスをリストする方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- PAGE_SIZE: 標準的なリストのページサイズ。
page_size
パラメータを更新して、ページごとに返される RAG コーパスの数を調整できます。 - PAGE_TOKEN: 標準的なリストのページトークン。通常は、前の
VertexRagDataService.ListRagCorpora
呼び出しのListRagCorporaResponse.next_page_token
を使用して取得します。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
成功ステータス コード(2xx
)と、指定された PROJECT_ID
の RAG コーパスのリストが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
RAG コーパスの取得の例
次のコードサンプルは、RAG コーパスを取得する方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパス リソースの ID。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
成功すると、RagCorpus
リソースが返されます。
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.
```
```sh
// 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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
```
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
RAG コーパスの削除の例
次のコードサンプルは、RAG コーパスを削除する方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID:
RagCorpus
リソースの ID。
HTTP メソッドと URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
成功すると、DeleteOperationMetadata
が返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
ファイル管理の例
このセクションでは、API を使用して RAG ファイルを管理する方法の例を示します。
RAG ファイルのアップロードの例
次のコードサンプルは、RAG ファイルをアップロードする方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパスのコーパス ID。
- LOCAL_FILE_PATH: アップロードするファイルのローカルパス。
- DISPLAY_NAME: RAG ファイルの表示名。
- DESCRIPTION: RAG ファイルの説明。
リクエストを送信するには、次のコマンドを使用します。
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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
RAG ファイルのインポートの例
ファイルとフォルダは、ドライブまたは Cloud Storage からインポートできます。response.metadata
を使用すると、SDK の response
オブジェクトで部分的な失敗、リクエスト時間、レスポンス時間を確認できます。
response.skipped_rag_files_count
は、インポート中にスキップされたファイルの数です。ファイルは、次の条件が満たされるとスキップされます。
- ファイルがすでにインポートされている。
- ファイルが変更されていない。
- ファイルのチャンク構成が変更されていない。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパスのコーパス ID。
- FOLDER_RESOURCE_ID: ドライブ フォルダのリソース ID。
- GCS_URIS: Cloud Storage ロケーションのリスト。例:
gs://my-bucket1
- CHUNK_SIZE: 各チャンクに付与されている必要があるトークンの数。
- CHUNK_OVERLAP: 2 つのチャンク間で重複するトークンの数。
- EMBEDDING_MODEL_QPM_RATE: RAG によるエンベディング モデルへのアクセスを制限する QPM レート。例: 1,000。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/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
インデックス登録プロセス中にエンベディング モデルを呼び出すレートを制限します。このフィールドのデフォルト値は、1 分あたり 1000
回の呼び出しです。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパスのコーパス ID。
- GCS_URIS: Cloud Storage ロケーションのリスト。例:
gs://my-bucket1
- CHUNK_SIZE: 各チャンクに付与されている必要があるトークンの数。
- CHUNK_OVERLAP: 2 つのチャンク間で重複するトークンの数。
- EMBEDDING_MODEL_QPM_RATE: RAG によるエンベディング モデルへのアクセスを制限する QPM レート。例: 1,000。
// 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/v1/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
}
}'
次のサンプルは、ドライブからファイルをインポートする方法を示しています。max_embedding_requests_per_min
制御フィールドを使用して、RAG Engine が ImportRagFiles
インデックス登録プロセス中にエンベディング モデルを呼び出すレートを制限します。このフィールドのデフォルト値は、1 分あたり 1000
回の呼び出しです。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパスのコーパス ID。
- FOLDER_RESOURCE_ID: ドライブ フォルダのリソース ID。
- CHUNK_SIZE: 各チャンクに付与されている必要があるトークンの数。
- CHUNK_OVERLAP: 2 つのチャンク間で重複するトークンの数。
- EMBEDDING_MODEL_QPM_RATE: RAG によるエンベディング モデルへのアクセスを制限する QPM レート。例: 1,000。
// 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/v1/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
}
}'
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
RAG ファイルのリストの例
次のコードサンプルは、RAG ファイルを一覧表示する方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID:
RagCorpus
リソースの ID。 - PAGE_SIZE: 標準的なリストのページサイズ。page_size パラメータを更新して、ページごとに返される
RagFiles
の数を調整できます。 - PAGE_TOKEN: 標準的なリストのページトークン。前の
VertexRagDataService.ListRagFiles
呼び出しのListRagFilesResponse.next_page_token
を使用して取得します。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/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
の下で、成功ステータス コード(2xx)と RagFiles
のリストが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
RAG ファイルの取得の例
次のコードサンプルは、RAG ファイルを取得する方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID:
RagCorpus
リソースの ID。 - RAG_FILE_ID:
RagFile
リソースの ID。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
成功すると、RagFile
リソースが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
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 メソッドと URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
取得クエリ
ユーザーが質問をするか、プロンプトを指定すると、RAG の検索コンポーネントがナレッジベースを検索し、クエリに関連する情報を探します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_RESOURCE:
RagCorpus
リソースの名前。形式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
。 - VECTOR_DISTANCE_THRESHOLD: ベクトル距離がしきい値より小さいコンテキストのみが返されます。
- TEXT: 関連するコンテキストを取得するクエリテキスト。
- SIMILARITY_TOP_K: 取得する上位コンテキストの数。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
成功ステータス コード(2xx)と関連する RagFiles
のリストが返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
生成
LLM では、取得したコンテキストを使用してグラウンディングされた回答を生成します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- MODEL_ID: コンテンツ生成用の LLM モデル。例:
gemini-2.0-flash-001
- 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: 省略可。ベクトル距離がしきい値より小さいコンテキストが返されます。
- USER: ユーザー名。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
成功すると、生成されたコンテンツと引用が返されます。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
次のステップ
- サポートされている生成モデルの詳細については、RAG をサポートしている生成 AI モデルをご覧ください。
- サポートされているエンベディング モデルの詳細については、エンベディング モデルをご覧ください。
- オープンモデルの詳細については、オープンモデルをご覧ください。
- RAG Engine の詳細については、RAG Engine の概要をご覧ください。