Vertex AI RAG Engine は、検索拡張生成(RAG)を容易にする Vertex AI プラットフォームのコンポーネントです。RAG Engine を使用すると、大規模言語モデル(LLM)はドキュメントやデータベースなどの外部ナレッジソースにアクセスしてデータを組み込むことができます。RAG を使用すると、LLM はより正確で有益な LLM レスポンスを生成できます。
構文の例
このセクションでは、RAG コーパスを作成するための構文について説明します。
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. 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" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
パラメータ リスト
このセクションでは、次について説明します。
パラメータ | 例 |
---|---|
コーパス管理パラメータをご覧ください。 | コーパス管理の例をご覧ください。 |
ファイル管理パラメータをご覧ください。 | ファイル管理の例をご覧ください。 |
コーパス管理パラメータ
RAG コーパスの詳細については、コーパス管理をご覧ください。
RAG コーパスを作成する
次の表では、RAG コーパスの作成に使用するパラメータの一覧を確認できます。
本文リクエスト
パラメータ | |
---|---|
|
必須: RAG コーパスの表示名。 |
|
省略可: RAG コーパスの説明。 |
|
省略可: 変更不可: ベクトル DB の構成。 |
|
省略可: Vertex AI Search の構成。 形式: |
RagVectorDbConfig
パラメータ | |
---|---|
|
ベクトル データベースが指定されていない場合、 |
|
Weaviate インスタンスを指定します。 |
|
Weaviate インスタンスの HTTP エンドポイント。 この値を設定後に変更することはできません。 |
|
RAG コーパスがマッピングされる Weaviate コレクション。 この値を設定後に変更することはできません。 |
|
Pinecone インスタンスを指定します。 |
|
これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。 この値を設定後に変更することはできません。 |
|
Vertex AI Feature Store インスタンスを指定します。 |
|
RAG コーパスがマッピングされる Vertex AI Feature Store 形式: この値を設定後に変更することはできません。 |
|
Vertex Vector Search インスタンスを指定します。 |
|
これは、RAG コーパスで使用するベクトル検索インデックスのリソース名です。 形式: この値を設定後に変更することはできません。 |
|
これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。 形式: この値を設定後に変更することはできません。 |
|
これは、Secret Manager に保存されている Secret の完全なリソース名です。ここには、ベクトル データベースの選択に応じて Weaviate または Pinecone API キーが含まれます。 形式:
|
|
省略可: 変更不可: RAG コーパスに使用するエンベディング モデル。この値を設定後に変更することはできません。空白のままにすると、エンベディング モデルとして text-embedding-004 が使用されます。 |
RAG コーパスを更新する
次の表では、RAG コーパスの更新に使用するパラメータの一覧を確認できます。
本文リクエスト
パラメータ | |
---|---|
|
省略可: RAG コーパスの表示名。 |
|
省略可: RAG コーパスの説明。 |
|
Weaviate インスタンスの HTTP エンドポイント。
|
|
RAG コーパスがマッピングされる Weaviate コレクション。
|
|
これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。
|
|
RAG コーパスがマッピングされる Vertex AI Feature Store 形式:
|
|
これは、RAG コーパスで使用するベクトル検索インデックスのリソース名です。 形式:
|
|
これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。 形式:
|
|
これは、Secret Manager に保存されている Secret の完全なリソース名です。ここには、ベクトル データベースの選択に応じて 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 分間に実行できるクエリの最大数。この値は、このジョブに固有のものであり、他のインポート ジョブと共有されません。プロジェクトの [割り当て] ページで適切な値を設定します。 指定しない場合、デフォルト値の 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 |
|
---|---|
|
省略可: 取得するコンテキストの数。 |
|
省略可: アルファ値は、密ベクトルの検索結果とスパース ベクトルの検索結果の重みを制御します。範囲は [0, 1] です。ここで、0 はスパース ベクトル検索のみ、1 は密ベクトル検索のみを意味します。デフォルト値は 0.5 で、スパース ベクトル検索と密ベクトル検索のバランスが取れています。 ハイブリッド検索は Weaviate でのみ使用できます。 |
|
ベクトル距離がしきい値より小さいコンテキストのみが返されます。 |
|
ベクトル類似度がしきい値より大きいコンテキストのみを返します。 |
|
省略可: ランクサービスのモデル名。 例: |
|
省略可: ランキングに使用されるモデル名。 例: |
予測パラメータ
次の表では、予測パラメータの一覧を確認できます。
GenerateContentRequest |
|
---|---|
|
Vertex AI RAG ストアで使用されるデータソースを使用するように設定します。 |
詳細については、VertexRagStore をご覧ください。
コーパス管理の例
このセクションでは、API を使用して RAG コーパスを管理する方法の例を示します。
RAG コーパスの作成の例
このコードサンプルは、RAG コーパスを作成する方法を示しています。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- CORPUS_DISPLAY_NAME:
RagCorpus
の表示名。 - CORPUS_DESCRIPTION:
RagCorpus
の説明。
HTTP メソッドと URL:
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"
}'
Vertex AI SDK for 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:
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 メソッドと URL:
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: 標準的なリストのページサイズ。
page_size
パラメータを更新して、ページごとに返されるRagCorpora
の数を調整できます。 - PAGE_TOKEN: 標準的なリストのページトークン。通常は、前の
VertexRagDataService.ListRagCorpora
呼び出しのListRagCorporaResponse.next_page_token
を使用して取得します。
HTTP メソッドと URL:
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
で、成功ステータス コード(`2xx`)と RagCorpora
のリストが返されます。Vertex AI SDK for 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_ID:
RagCorpus
リソースの ID。
HTTP メソッドと URL:
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
リソースが返されます。
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/
Vertex AI SDK for 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_ID:
RagCorpus
リソースの ID。
HTTP メソッドと URL:
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
が返されます。Vertex AI SDK for Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
ファイル管理の例
このセクションでは、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"
Vertex AI SDK for Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
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 メソッドと URL:
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
インデックス登録プロセス中にエンベディング モデルを呼び出すレートを制限します。このフィールドのデフォルト値は、1 分あたり 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
次のサンプルは、ドライブからファイルをインポートする方法を示しています。max_embedding_requests_per_min
制御フィールドを使用して、RAG Engine が ImportRagFiles
インデックス登録プロセス中にエンベディング モデルを呼び出すレートを制限します。このフィールドのデフォルト値は、1 分あたり 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
Vertex AI SDK for 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/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
の下で、成功ステータス コード(2xx)と RagFiles
のリストが返されます。Vertex AI SDK for 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/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
リソースが返されます。Vertex AI SDK for 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/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
リソースが返されます。Vertex AI SDK for Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
取得クエリ
ユーザーが質問をするか、プロンプトを指定すると、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 メソッドと URL:
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
のリストが返されます。Vertex AI SDK for 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-1.5-pro-002
- 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 メソッドと URL:
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
Vertex AI SDK for Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
次のステップ
- サポートされている生成モデルの詳細については、RAG をサポートしている生成 AI モデルをご覧ください。
- サポートされているエンベディング モデルの詳細については、エンベディング モデルをご覧ください。
- オープンモデルの詳細については、オープンモデルをご覧ください。
- RAG Engine の詳細については、RAG Engine の概要をご覧ください。