RAG Engine API

検索拡張生成(RAG)により、大規模言語モデル(LLM)はドキュメントやデータベースなどの外部ナレッジソースにアクセスできます。RAG を使用すると、LLM は外部知識ソースに含まれるデータに基づいて、より正確で有益なレスポンスを生成できます。

構文の例

このセクションでは、RAG コーパスを作成するための構文について説明します。

curl

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" : "...",
  "description": "...",
  "rag_embedding_model_config": {
    "vertex_prediction_endpoint": {
      "endpoint": "..."
    }
  }
}'

Python

corpus = rag.create_corpus(display_name=..., description=...)
print(corpus)

パラメータ リスト

このセクションでは、次について説明します。

パラメータ
コーパス管理パラメータをご覧ください。 コーパス管理の例をご覧ください。
ファイル管理パラメータをご覧ください。 ファイル管理の例をご覧ください。

コーパス管理パラメータ

RAG コーパスの詳細については、コーパス管理をご覧ください。

RAG コーパスを作成する

次の表では、RAG コーパスの作成に使用するパラメータの一覧を確認できます。

パラメータ

display_name

省略可: string

RAG コーパスの表示名。

description

省略可: string

RAG コーパスの説明。

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

省略可: string

RAG コーパスに使用するエンベディング モデル。

rag_vector_db_config.weaviate.http_endpoint

省略可: string

Weaviate インスタンスの HTTPS または HTTP エンドポイント。

rag_vector_db_config.weaviate.collection_name

省略可: string

RAG コーパスがマッピングされる Weaviate コレクション。

rag_vector_db_config.vertex_feature_store.feature_view_resource_name

省略可: string

RAG コーパスがマッピングされる Vertex AI Feature Store FeatureView

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

api_auth.api_key_config.api_key_secret_version

省略可: string

API キーを保存する Secret Manager シークレット バージョン リソース名。

形式: projects/{project}/secrets/{secret}/versions/{version}

rag_vector_db_config.pinecone

string

このフィールドは、RAG コーパスに関連付けるベクトル データベースを選択する際に役立ちます。また、CreateRagCorpus API 呼び出し時に設定する必要があります。設定が行われていない場合、デフォルトで選択されているベクトル データベースの `RagManagedDb` が RAG コーパスに割り当てられます。

rag_vector_db_config.pinecone.index_name

string

これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。

rag_vector_db_config.api_auth.api_key_config.api_key_secret_version

string

これは、Secret Manager に保存されている Secret の完全なリソース名です。ここには Pinecone API キーが含まれます。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。このフィールドを指定しないと、RAG コーパスにデータをインポートできません。

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

rag_vector_db_config.vertex_vector_search

string

このフィールドは、RAG コーパスに関連付けるベクトル データベースを選択する際に役立ちます。また、CreateRagCorpus API 呼び出し時に設定する必要があります。設定が行われていない場合、デフォルトで選択されているベクトル データベースの RagManagedDb が RAG コーパスに割り当てられます。

rag_vector_db_config.vertex_vector_search.index

string

これは、RAG コーパスで使用するベクトル検索のリソース名です。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。

rag_vector_db_config.vertex_vector_search.index_endpoint

string

これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。

RAG コーパスを更新する

次の表では、RAG コーパスの更新に使用するパラメータの一覧を確認できます。

名前 説明
display_name 省略可: string
RAG コーパスの表示名。
description 省略可: string
RAG コーパスの表示。
rag_vector_db_config.weaviate.http_endpoint 省略可: string
Weaviate インスタンスの HTTPS エンドポイントまたは HTTP エンドポイント。
rag_vector_db_config.weaviate.collection_name 省略可: string
RAG コーパスがマッピングされる Weaviate コレクション。
rag_vector_db_config.vertex_feature_store.feature_view_resource_name 省略可: string
RAG コーパスがマッピングされる Vertex AI Feature Store の特徴ビュー。
形式:
projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}
api_auth.api_key_config.api_key_secret_version 省略可: string
API キーを保存する Secret Manager の Secret のバージョン リソース名。
形式:
projects/{project}/secrets/{secret}/versions/{version}

rag_vector_db_config.pinecone

string

このフィールドは、RAG コーパスに関連付けるベクトル データベースを選択する際に役立ちます。また、CreateRagCorpus API 呼び出し時に設定する必要があります。設定が行われていない場合、デフォルトで選択されているベクトル データベースの RagManagedDb が RAG コーパスに割り当てられます。

rag_vector_db_config.pinecone.index_name

string

これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。

rag_vector_db_config.api_auth.api_key_config.api_key_secret_version

string

これは、Secret Manager に保存されている Secret の完全なリソース名です。ここには Pinecone API キーが含まれます。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。このフィールドを指定しないと、RAG コーパスにデータをインポートできません。

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

rag_vector_db_config.vertex_vector_search

string

このフィールドは、RAG コーパスに関連付けるベクトル データベースを選択する際に役立ちます。また、CreateRagCorpus API 呼び出し時に設定する必要があります。設定が行われていない場合、デフォルトで選択されているベクトル データベースの RagManagedDb が RAG コーパスに割り当てられます。

rag_vector_db_config.vertex_vector_search.index

string

これは、RAG コーパスで使用するベクトル検索のリソース名です。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。

rag_vector_db_config.vertex_vector_search.index_endpoint

string

これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。名前は CreateRagCorpus 呼び出し時に設定することも、UpdateRagCorpus API 呼び出し時に指定することもできます。

RAG コーパスをリストする

次の表では、RAG コーパスをリストするために使用するパラメータの一覧を確認できます。

パラメータ

page_size

省略可: int

標準的なリストのページサイズ。

page_token

省略可: string

標準的なリストのページトークン。通常は、前の [VertexRagDataService.ListRagCorpora][] 呼び出しの [ListRagCorporaResponse.next_page_token][] から取得します。

RAG コーパスを取得する

次の表では、RAG コーパスの取得に使用するパラメータの一覧を確認できます。

パラメータ

rag_corpus_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

RAG コーパスを削除する

次の表では、RAG コーパスの削除に使用するパラメータの一覧を確認できます。

パラメータ

rag_corpus_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

ファイル管理パラメータ

RAG ファイルの詳細については、ファイル管理をご覧ください。

RAG ファイルをアップロードする

次の表では、RAG ファイルのアップロードに使用するパラメータの一覧を確認できます。

パラメータ

rag_corpus_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

display_name

省略可: string

RagCorpus の表示名。

description

省略可: string

RagCorpus の説明。

RAG ファイルをインポートする

次の表では、RAG ファイルのインポートに使用するパラメータの一覧を確認できます。

パラメータ

rag_corpus_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

gcs_source.uris

list

アップロード ファイルを含む Cloud Storage URI。

google_drive_source.resource_id

省略可: string

Google ドライブのリソースのタイプ。

google_drive_source.resource_ids.resource_type

省略可: string

Google ドライブのリソースの ID。

rag_file_chunking_config.chunk_size

省略可: int

省略可。各チャンクに必要なトークンの数。

rag_file_chunking_config.chunk_overlap

省略可: int

2 つのチャンク間で重複するトークンの数。

max_embedding_requests_per_min

省略可: int

RAG Engine がインデックス登録プロセス中にエンベディング モデルを呼び出すレートを制限する上限値。デフォルトの上限は 1000 です。レート制限の詳細については、RAG Engine の割り当てをご覧ください。

rag_corpus_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

page_size

省略可: int

標準的なリストのページサイズ。

page_token

省略可: string

標準的なリストのページトークン。通常は、前の [VertexRagDataService.ListRagCorpora][] 呼び出しの [ListRagCorporaResponse.next_page_token][] から取得します。

RAG ファイルを取得する

次の表では、RAG ファイルの取得に使用するパラメータの一覧を確認できます。

パラメータ

rag_file_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

RAG ファイルを削除する

次の表では、RAG ファイルの削除に使用するパラメータの一覧を確認できます。

パラメータ

rag_file_id

string

RagCorpus リソースの ID。形式: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

取得と予測

このセクションでは、取得パラメータと予測パラメータの一覧を確認できます。

取得パラメータ

次の表では、取得パラメータの一覧を確認できます。

パラメータ 説明
similarity_top_k 取得するコンテキストの最大数を制御します。
vector_distance_threshold 距離がしきい値より小さいコンテキストのみが考慮されます。

予測パラメータ

次の表では、予測パラメータの一覧を確認できます。

パラメータ

model_id

string

コンテンツ生成用の LLM モデル。

rag_corpora

string

RagCorpus リソースの名前。形式: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

text

string (list)

コンテンツ生成のために LLM に送信されるテキスト。最大値: 1 リスト。

vector_distance_threshold

省略可: double

ベクトル距離がしきい値より小さいコンテキストのみが返されます。

similarity_top_k

省略可: int

取得する上位コンテキストの数。

コーパス管理の例

このセクションでは、API を使用して RAG コーパスを管理する方法の例を示します。

RAG コーパスの作成の例

このコードサンプルは、RAG コーパスを作成する方法を示しています。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID
  • LOCATION: リクエストを処理するリージョン。
  • CORPUS_DISPLAY_NAME: RagCorpus の表示名。
  • CORPUS_DESCRIPTION: RagCorpus の説明。
  • RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT: 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",
  "rag_embedding_model_config_endpoint": "RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT"
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-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 という名前のファイルに保存して、次のコマンドを実行します。

$headers = @{  }

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 コーパスを作成する方法を示しています。

    // Either your first party publisher model or fine-tuned endpoint
    // Example: projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/textembedding-gecko@003
    // or
    // Example: projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/12345
    ENDPOINT_NAME=${RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT}

    // Corpus display name
    // Such as "my_test_corpus"
    CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME

    // CreateRagCorpus
    // Input: ENDPOINT, PROJECT_ID, CORPUS_DISPLAY_NAME
    // Output: CreateRagCorpusOperationMetadata
    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora \
    -d '{
          "display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
          "rag_embedding_model_config" : {
                  "vertex_prediction_endpoint": {
                        "endpoint": '\""${ENDPOINT_NAME}"\"'
                  }
          }
      }'

    // Poll the operation status.
    // The last component of the RagCorpus "name" field is the server-generated
    // rag_corpus_id: (only Bold part)
    // projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/7454583283205013504.
    OPERATION_ID=OPERATION_ID
    poll_op_wait ${OPERATION_ID}

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

# Configure embedding model
embedding_model_config = rag.EmbeddingModelConfig(
    publisher_model="publishers/google/models/text-embedding-004"
)

corpus = rag.create_corpus(
    display_name=display_name,
    description=description,
    embedding_model_config=embedding_model_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...

RAG コーパスの更新の例

RAG コーパスを更新して、新しい表示名、説明、ベクトル データベースの構成を指定できます。ただし、RAG コーパスの次のパラメータは変更できません。

  • ベクトル データベースの種類。たとえば、ベクトル データベースを Weaviate から Vertex AI Feature Store に変更することはできません。
  • マネージド データベース オプションを使用している場合、ベクトル データベースの構成を更新することはできません。

次の例は、RAG コーパスの更新方法を示しています。

Python

Vertex AI SDK をインストールまたは更新する方法については、Vertex AI SDK をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。

from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment on the following lines:
# PROJECT_ID = "YOUR_PROJECT_ID"
# corpus_name = "YOUR_CORPUS_NAME"
#  e.g. "projects/1234567890/locations/us-central1/ragCorpora/1234567890'"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpus = rag.update_corpus(
    corpus_name=corpus_name,
    display_name=display_name,
    description=description,
)
print(corpus)

REST

リクエストのデータを使用する前に、次のように置き換えます。

PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
CORPUS_ID: The corpus ID of your RAG corpus.
CORPUS_DISPLAY_NAME: The display name of the RAG corpus.
CORPUS_DESCRIPTION: The description of the RAG corpus.

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}
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

request.json という名前のファイルにリクエスト本文を保存し、次のコマンドを実行します。

  curl -X PATH \
      -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 }

Save the request body in a file named request.json, and execute the following command:

```sh
  $headers = @{  }

  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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

次のコマンドを実行します。

$headers = @{  }

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 のリストが返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpora = rag.list_corpora()
print(corpora)
# Example response:
# ListRagCorporaPager<rag_corpora {
#   name: "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/2305843009213693952"
#   display_name: "test_corpus"
#   create_time {
# ...

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

次のコマンドを実行します。

$headers = @{  }

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 が選択したエンベディング モデルを指す rag_embedding_model_config フィールドをどのように使用するのかを示す例で使用されています。

// Server-generated rag_corpus_id in CreateRagCorpus
RAG_CORPUS_ID=RAG_CORPUS_ID

// GetRagCorpus
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${ENDPOINT}/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://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora"

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpus = rag.get_corpus(name=corpus_name)
print(corpus)
# Example response:
# RagCorpus(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description',
# ...

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

次のコマンドを実行します。

$headers = @{  }

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 が返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_corpus(name=corpus_name)
print(f"Corpus {corpus_name} deleted.")
# Example response:
# Successfully deleted the RagCorpus.
# Corpus projects/[PROJECT_ID]/locations/us-central1/ragCorpora/123456789012345 deleted.

ファイル管理の例

このセクションでは、API を使用して RAG ファイルを管理する方法の例を示します。

RAG ファイルのアップロードの例

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID
  • LOCATION: リクエストを処理するリージョン。
  • RAG_CORPUS_ID: RagCorpus リソースの ID。
  • INPUT_FILE: ローカル ファイルのパス。
  • FILE_DISPLAY_NAME: RagFile の表示名。
  • RAG_FILE_DESCRIPTION: RagFile の説明。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload

リクエストの本文(JSON):

{
 "rag_file": {
  "display_name": "FILE_DISPLAY_NAME",
  "description": "RAG_FILE_DESCRIPTION"
 }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を INPUT_FILE という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

PowerShell

リクエスト本文を INPUT_FILE という名前のファイルに保存して、次のコマンドを実行します。

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload" | Select-Object -Expand Content
成功すると、RagFile リソースが返されます。RagFile.name フィールドの最後のコンポーネントは、サーバー生成の rag_file_id です。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# path = "path/to/local/file.txt"
# display_name = "file_display_name"
# description = "file description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.upload_file(
    corpus_name=corpus_name,
    path=path,
    display_name=display_name,
    description=description,
)
print(rag_file)
# RagFile(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890/ragFiles/09876543',
#  display_name='file_display_name', description='file description')

RAG ファイルのインポートの例

ファイルとフォルダは、ドライブまたは Cloud Storage からインポートできます。response.metadata を使用すると、SDK の response オブジェクトで部分的な失敗、リクエスト時間、レスポンス時間を確認できます。

response.skipped_rag_files_count は、インポート中にスキップされたファイルの数です。ファイルは、次の条件が満たされるとスキップされます。

  1. ファイルがすでにインポートされている。
  2. ファイルが変更されていない。
  3. ファイルのチャンク構成が変更されていない。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID
  • LOCATION: リクエストを処理するリージョン。
  • RAG_CORPUS_ID: RagCorpus リソースの ID。
  • GCS_URIS: Cloud Storage ロケーションのリスト。例: gs://my-bucket1, gs://my-bucket2
  • DRIVE_RESOURCE_ID: ドライブ リソースの ID。例:
    • https://drive.google.com/file/d/ABCDE
    • https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
  • DRIVE_RESOURCE_TYPE: ドライブ リソースのタイプ。オプション:
    • RESOURCE_TYPE_FILE - ファイル
    • RESOURCE_TYPE_FOLDER - フォルダ
  • CHUNK_SIZE: 省略可。各チャンクに必要なトークンの数。
  • CHUNK_OVERLAP: 省略可: チャンク間で重複するトークンの数。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

リクエストの本文(JSON):

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": GCS_URIS
    },
    "google_drive_source": {
      "resource_ids": {
        "resource_id": DRIVE_RESOURCE_ID,
        "resource_type": DRIVE_RESOURCE_TYPE
      },
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/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 回の呼び出しです。

// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION

// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT

// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, 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://${ENDPOINT}/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": 512
    },
    "max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}

次のサンプルは、ドライブからファイルをインポートする方法を示しています。max_embedding_requests_per_min 制御フィールドを使用して、RAG Engine が ImportRagFiles インデックス登録プロセス中にエンベディング モデルを呼び出すレートを制限します。このフィールドのデフォルト値は、1 分あたり 1000 回の呼び出しです。

// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID

// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT

// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, 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://${ENDPOINT}/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=OPERATION_ID
poll_op_wait ${OPERATION_ID}

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Google Cloud Storage and Google Drive Links

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    chunk_size=512,  # Optional
    chunk_overlap=100,  # Optional
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

次のコマンドを実行します。

$headers = @{  }

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 リソースが返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/us-central1/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')

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 \
"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

次のコマンドを実行します。

$headers = @{  }

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 のリストが返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

files = rag.list_files(corpus_name=corpus_name)
for file in files:
    print(file.display_name)
    print(file.name)
# Example response:
# g-drive_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/222222222222
# g_cloud_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/333333333333

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

次のコマンドを実行します。

$headers = @{  }

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 リソースが返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_file(name=file_name)
print(f"File {file_name} deleted.")
# Example response:
# Successfully deleted the RagFile.
# File projects/1234567890/locations/us-central1/ragCorpora/1111111111/ragFiles/2222222222 deleted.

取得クエリ

ユーザーが質問をするか、プロンプトを指定すると、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": 0.8
  },
  "query": {
   "text": "TEXT",
   "similarity_top_k": SIMILARITY_TOP_K
  }
 }

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-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 という名前のファイルに保存して、次のコマンドを実行します。

$headers = @{  }

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 のリストが返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/[rag_corpus_id]"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.retrieval_query(
    rag_resources=[
        rag.RagResource(
            rag_corpus=corpus_name,
            # Optional: supply IDs from `rag.list_files()`.
            # rag_file_ids=["rag-file-1", "rag-file-2", ...],
        )
    ],
    text="Hello World!",
    similarity_top_k=10,  # Optional
    vector_distance_threshold=0.5,  # Optional
)
print(response)
# Example response:
# contexts {
#   contexts {
#     source_uri: "gs://your-bucket-name/file.txt"
#     text: "....
#   ....

予測

予測では、取得したコンテキストを使用してグラウンディングされた回答を生成します。

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 実際のプロジェクト ID
  • LOCATION: リクエストを処理するリージョン。
  • MODEL_ID: コンテンツ生成用の LLM モデル。例: gemini-1.5-pro-002
  • GENERATION_METHOD: コンテンツ生成の LLM メソッド。オプション: generateContentstreamGenerateContent
  • 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 "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 という名前のファイルに保存して、次のコマンドを実行します。

$headers = @{  }

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
成功すると、生成されたコンテンツと引用が返されます。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、Python API リファレンス ドキュメントをご覧ください。


from vertexai.preview import rag
from vertexai.preview.generative_models import GenerativeModel, Tool
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_retrieval_tool = Tool.from_retrieval(
    retrieval=rag.Retrieval(
        source=rag.VertexRagStore(
            rag_resources=[
                rag.RagResource(
                    rag_corpus=corpus_name,
                    # Optional: supply IDs from `rag.list_files()`.
                    # rag_file_ids=["rag-file-1", "rag-file-2", ...],
                )
            ],
            similarity_top_k=3,  # Optional
            vector_distance_threshold=0.5,  # Optional
        ),
    )
)

rag_model = GenerativeModel(
    model_name="gemini-1.5-flash-001", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
# Example response:
#   The sky appears blue due to a phenomenon called Rayleigh scattering.
#   Sunlight, which contains all colors of the rainbow, is scattered
#   by the tiny particles in the Earth's atmosphere....
#   ...

次のステップ