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 の構成。 |
RagVectorDbConfig
パラメータ | |
---|---|
|
ベクトル データベースが指定されていない場合、 |
|
Pinecone インスタンスを指定します。 |
|
これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。 この値は、設定後に変更することはできません。 |
|
Vertex Vector Search インスタンスを指定します。 |
|
これは、RAG コーパスで使用するベクトル検索インデックスのリソース名です。 形式: この値は、設定後に変更することはできません。 |
|
これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。 形式: この値は、設定後に変更することはできません。 |
|
これは、Secret Manager に保存されている Secret の完全なリソース名です。ここには Pinecone API キーが含まれます。 形式:
|
|
省略可: 不変: RAG コーパスに使用するエンベディング モデル。この値は、設定後に変更することはできません。空白のままにすると、エンベディング モデルとして text-embedding-004 が使用されます。 |
RAG コーパスを更新する
次の表では、RAG コーパスの更新に使用するパラメータの一覧を確認できます。
本文リクエスト
パラメータ | |
---|---|
|
省略可: RAG コーパスの表示名。 |
|
省略可: RAG コーパスの説明。 |
|
これは、RAG コーパスで使用する Pinecone インデックスの作成に使用される名前です。
|
|
これは、RAG コーパスで使用するベクトル検索インデックスのリソース名です。 形式:
|
|
これは、RAG コーパスで使用するベクトル検索インデックス エンドポイントのリソース名です。 形式:
|
|
Secret Manager に保存されているシークレットの完全なリソース名。ここには 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 ソース。 |
|
各チャンクのトークン数。 |
|
チャンク間の重複。 |
|
省略可: このジョブがコーパスで指定されたエンベディング モデルに対して 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 を指定できます。 |
RAG ファイルを取得する
次の表では、RAG ファイルの取得に使用するパラメータの一覧を確認できます。
パラメータ | |
---|---|
|
|
RAG ファイルを削除する
次の表では、RAG ファイルの削除に使用するパラメータの一覧を確認できます。
パラメータ | |
---|---|
|
|
取得と予測
このセクションでは、取得パラメータと予測パラメータの一覧を確認できます。
取得パラメータ
次の表に、RetrieveContexts
API のパラメータを示します。
パラメータ | |
---|---|
|
必須:
形式: |
|
Vertex RagStore のデータソース。 |
|
必須: 単一の RAG 取得クエリ。 |
VertexRagStore
VertexRagStore |
|
---|---|
|
リスト: RAG ソースの表現。コーパスのみまたは |
|
省略可:
形式: |
|
リスト:
形式: |
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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- CORPUS_DISPLAY_NAME: RAG コーパスの表示名。
- CORPUS_DESCRIPTION: RAG コーパスの説明。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
display_name = "CORPUS_DISPLAY_NAME"
description = "CORPUS_DESCRIPTION"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
# 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 コーパスの更新方法を示しています。
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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "us-central1"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
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 コーパスの取得の例
次のコードサンプルは、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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパス リソースの ID。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
corpus_name = "projects/{PROJECT_ID}/locations/{LOCATION}/ragCorpora/{rag_corpus_id}"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
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 コーパスの削除の例
次のコードサンプルは、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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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. import rag
ファイル管理の例
このセクションでは、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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパスのコーパス ID。
- LOCAL_FILE_PATH: アップロードするファイルのローカルパス。
- DISPLAY_NAME: RAG ファイルの表示名。
- DESCRIPTION: RAG ファイルの説明。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")
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
は、インポート中にスキップされたファイルの数です。ファイルは、次の条件が満たされるとスキップされます。
- ファイルがすでにインポートされている。
- ファイルが変更されていない。
- ファイルのチャンク構成が変更されていない。
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: チャンク間で重複するトークンの数。
- 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: チャンク間で重複するトークンの数。
- 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: チャンク間で重複するトークンの数。
- 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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID: RAG コーパスのコーパス ID。
- FOLDER_RESOURCE_ID: ドライブ フォルダのリソース ID。
- CHUNK_SIZE: 各チャンクに必要なトークンの数。
- CHUNK_OVERLAP: チャンク間で重複するトークンの数。
- EMBEDDING_MODEL_QPM_RATE: RAG によるエンベディング モデルへのアクセスを制限する QPM レート。例: 1,000。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")
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。 - 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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
コードサンプルで使用されている次の変数を置き換えます。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID:
RagCorpus
リソースの ID。 - PAGE_SIZE: 標準的なリストのページサイズ。page_size パラメータを更新して、ページごとに返される
RagFiles
の数を調整できます。 - PAGE_TOKEN: 標準のリストページ トークン。前の
VertexRagDataService.ListRagFiles
呼び出しのListRagFilesResponse.next_page_token
を使用して取得します。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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。
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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_ID:
RagCorpus
リソースの ID。 - RAG_FILE_ID:
RagFile
リソースの ID。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/LOCATION/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')
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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- 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}
。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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
リクエストのデータを使用する前に、次のように置き換えます。
- 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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- PROJECT_ID: プロジェクト ID。
- LOCATION: リクエストを処理するリージョン。
- RAG_CORPUS_RESOURCE:
RagCorpus
リソースの名前。形式:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
。 - VECTOR_DISTANCE_THRESHOLD: ベクトル距離がしきい値より小さいコンテキストのみが返されます。
- TEXT: 関連するコンテキストを取得するクエリテキスト。
- SIMILARITY_TOP_K: 取得する上位コンテキストの数。
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/[PROJECT_ID]/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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="TEXT",
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
)
print(response)
# Example response:
# contexts {
# contexts {
# source_uri: "gs://your-bucket-name/file.txt"
# text: "....
# ....
生成
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: 省略可。ベクトル距離がしきい値より小さいコンテキストが返されます。
- 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 をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
- 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: 省略可。ベクトル距離がしきい値より小さいコンテキストが返されます。
from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus="RAG_CORPUS_RESOURCE",
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
),
)
)
rag_model = GenerativeModel(
model_name="MODEL_ID", 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....
# ...
次のステップ
- サポートされている生成モデルの詳細については、RAG をサポートしている生成 AI モデルをご覧ください。
- サポートされているエンベディング モデルの詳細については、エンベディング モデルをご覧ください。
- オープンモデルの詳細については、オープンモデルをご覧ください。
- RAG Engine の詳細については、RAG Engine の概要をご覧ください。