データストアを作成してカスタム レコメンデーションのデータを取り込むには、使用するソースのセクションに移動します。
BigQuery
BigQuery テーブルからデータストアを作成するには、次の 2 つの方法があります。
1 回限りの取り込み: BigQuery テーブルからデータストアにデータをインポートします。データストア内のデータは、手動でデータを更新しない限り変更されません。
定期的な取り込み: 1 つ以上の BigQuery テーブルからデータをインポートし、BigQuery データセットの最新データでデータストアが更新される頻度を決定する同期頻度を設定します。
次の表は、BigQuery データを Vertex AI Search データストアにインポートする 2 つの方法を比較したものです。
1 回限りの取り込み | 定期的な取り込み |
---|---|
一般提供(GA)。 | 公開プレビュー版。 |
データは手動で更新する必要があります。 | データは 1 日、3 日、5 日ごとに自動的に更新されます。データを手動で更新することはできません。 |
Vertex AI Search は、BigQuery の 1 つのテーブルから単一のデータストアを作成します。 | Vertex AI Search は、BigQuery データセットのデータコネクタと、指定されたテーブルごとにデータストア(エンティティ データストア)を作成します。データ コネクタごとに、テーブルのデータ型(構造化など)が同じで、同じ BigQuery データセットに存在している必要があります。 |
複数のテーブルのデータを 1 つのデータストアに結合するには、まず 1 つのテーブルからデータを取り込み、次に別のソースまたは BigQuery テーブルからデータを取り込みます。 | 手動データ インポートはサポートされていないため、エンティティ データストアのデータは 1 つの BigQuery テーブルからのみ取得できます。 |
データソースへのアクセス制御がサポートされています。 | データソースへのアクセス制御はサポートされていません。インポートされたデータにアクセス制御を含めることはできますが、これらの制御は適用されません。 |
データストアは、Google Cloud コンソールまたは API を使用して作成できます。 | データ コネクタとそのエンティティ データストアは、コンソールを使用して作成する必要があります。 |
CMEK 準拠。 | CMEK 準拠。 |
BigQuery から 1 回インポートする
BigQuery テーブルからデータを取り込むには、次の手順でデータストアを作成し、 Google Cloud コンソールまたは API を使用してデータを取り込みます。
データをインポートする前に、取り込むデータを準備します。
コンソール
Google Cloud コンソールを使用して BigQuery からデータを取り込む手順は次のとおりです。
Google Cloud コンソールで、[AI アプリケーション] ページに移動します。
[データストア] ページに移動します。
[
データストアを作成] をクリックします。[ソース] ページで、[BigQuery] を選択します。
[インポートするデータの種類] セクションで、インポートするデータの種類を選択します。
[同期の頻度] セクションで [1 回] を選択します。
[BigQuery のパス] フィールドで [参照] をクリックし、取り込み用に準備したテーブルを選択して、[選択] をクリックします。 または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。
[続行] をクリックします。
構造化データを 1 回限りインポートする場合:
フィールドをキー プロパティにマッピングします。
スキーマに重要なフィールドが欠落している場合は、[新しいフィールドを追加] を使用して追加します。
詳細については、自動検出と編集についてをご覧ください。
[続行] をクリックします。
データストアのリージョンを選択します。
データストアの名前を入力します。
[作成] をクリックします。
取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。 [アクティビティ] タブのステータス列が [進行中] から [インポート完了] に変わると、取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
REST
コマンドラインを使用してデータストアを作成し、BigQuery からデータをインポートする手順は次のとおりです。
データストアを作成します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_RECOMMENDATION"] }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: 作成する Vertex AI Search データストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。DATA_STORE_DISPLAY_NAME
: 作成する Vertex AI Search データストアの表示名。
BigQuery からデータをインポートします。
スキーマを定義した場合は、データがそのスキーマに準拠していることを確認します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "bigquerySource": { "projectId": "PROJECT_ID", "datasetId":"DATASET_ID", "tableId": "TABLE_ID", "dataSchema": "DATA_SCHEMA", "aclEnabled": "BOOLEAN" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: Vertex AI Search データストアの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_ID
: BigQuery テーブルの ID。- BigQuery テーブルが PROJECT_ID にない場合は、サービス アカウント
service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
に BigQuery テーブルに対する「BigQuery データ閲覧者」権限を付与する必要があります。たとえば、ソース プロジェクト「123」から宛先プロジェクト「456」に BigQuery テーブルをインポートする場合は、プロジェクト「123」の BigQuery テーブルに対する[email protected]
権限を付与します。
- BigQuery テーブルが PROJECT_ID にない場合は、サービス アカウント
DATA_SCHEMA
: 省略可。値はdocument
およびcustom
です。デフォルトはdocument
です。document
: 使用する BigQuery テーブルは、取り込み用にデータを準備するで説明されているデフォルトの BigQuery スキーマに準拠している必要があります。各ドキュメントの ID を自分で定義し、すべてのデータを jsonData 文字列にラップできます。custom
: 任意の BigQuery テーブル スキーマが受け入れられ、Vertex AI Search はインポートされる各ドキュメントの ID を自動的に生成します。
ERROR_DIRECTORY
: 省略可。インポートに関するエラー情報用の Cloud Storage ディレクトリ(例:gs://<your-gcs-bucket>/directory/import_errors
)。Vertex AI Search に一時ディレクトリを自動的に作成させるには、この項目を空のままにすることをおすすめします。RECONCILIATION_MODE
: 省略可。値はFULL
およびINCREMENTAL
です。デフォルトはINCREMENTAL
です。INCREMENTAL
を指定すると、BigQuery からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL
を指定すると、データストア内のドキュメントが完全に再ベース化されます。つまり、新規および更新されたドキュメントがデータストアに追加され、BigQuery にないドキュメントがデータストアから削除されます。FULL
モードは、不要になったドキュメントを自動的に削除する場合に便利です。AUTO_GENERATE_IDS
: 省略可。ドキュメント ID を自動生成するかどうかを指定します。true
に設定すると、ドキュメント ID はペイロードのハッシュに基づいて生成されます。生成されたドキュメント ID は、複数のインポートで整合性が維持されない場合があります。複数のインポートで ID を自動生成する場合は、ドキュメント ID の整合性を維持するために、reconciliationMode
をFULL
に設定することを強くおすすめします。autoGenerateIds
は、bigquerySource.dataSchema
がcustom
に設定されている場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT
エラーが返されます。autoGenerateIds
を指定しない場合、またはfalse
に設定しない場合は、idField
を指定する必要があります。そうしないと、ドキュメントのインポートに失敗します。ID_FIELD
: 省略可。ドキュメント ID のフィールドを指定します。 BigQuery ソースファイルの場合、idField
は、ドキュメント ID を含む BigQuery テーブルの列の名前を示します。idField
は、(1)bigquerySource.dataSchema
がcustom
に設定されている、および(2)auto_generate_ids
がfalse
に設定されているか、未設定の場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT
エラーが返されます。BigQuery 列名の値は文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。
C#
詳細については、AI アプリケーション C# API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Go
詳細については、AI アプリケーション Go API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Java
詳細については、AI アプリケーション Java API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Node.js
詳細については、AI アプリケーション Node.js API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Python
詳細については、AI アプリケーション Python API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Ruby
詳細については、AI アプリケーション Ruby API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
定期的な同期で BigQuery に接続する
データをインポートする前に、取り込むデータを準備します。
次の手順では、BigQuery データセットを Vertex AI Search データ コネクタに関連付けるデータ コネクタを作成する方法と、作成するデータストアごとにデータセットのテーブルを指定する方法について説明します。データ コネクタの子データストアは、エンティティ データストアと呼ばれます。
データセットのデータは、エンティティ データストアと定期的に同期されます。同期は、毎日、3 日ごと、5 日ごとに指定できます。
コンソール
Google Cloud コンソールを使用して、BigQuery データセットから Vertex AI Search にデータを定期的に同期するコネクタを作成するには、次の操作を行います。
Google Cloud コンソールで、[AI アプリケーション] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
[データストアを作成] をクリックします。
[ソース] ページで、[BigQuery] を選択します。
インポートするデータの種類を選択します。
[定期] をクリックします。
[同期頻度] で、Vertex AI Search コネクタが BigQuery データセットと同期する頻度を選択します。頻度は後で変更できます。
[BigQuery データセットのパス] フィールドで [参照] をクリックし、取り込み用に準備したテーブルを含むデータセットを選択します。または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。パスの形式は
projectname.datasetname
です。[同期するテーブル] フィールドで [参照] をクリックし、データストアに必要なデータを含むテーブルを選択します。
データストアに使用する別のテーブルがデータセット内にある場合は、[テーブルを追加] をクリックして、それらのテーブルも指定します。
[続行] をクリックします。
データストアのリージョンを選択し、データ コネクタの名前を入力して、[作成] をクリックします。
これで、BigQuery データセットとデータを定期的に同期するデータコネクタが作成されました。また、1 つ以上のエンティティ データストアを作成しています。データストアの名前は BigQuery テーブルと同じです。
取り込みのステータスを確認するには、[データストア] ページに移動し、データ接続名をクリックして、[データ] ページ > [データ取り込みアクティビティ] タブで詳細を表示します。[アクティビティ] タブのステータス列が [進行中] から [成功] に変わると、最初の取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
データソースを設定してデータを初めてインポートすると、データストアは設定時に選択した頻度でそのソースからデータを同期します。 データコネクタの作成から約 1 時間後に、最初の同期が行われます。 次回の同期は、24 時間、72 時間、または 120 時間後に行われます。
次のステップ
データストアをアプリにアタッチするには、カスタム レコメンデーション アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。
アプリとデータストアが設定された後にレコメンデーションをプレビューまたは取得するには、レコメンデーションを取得するをご覧ください。
Cloud Storage
Cloud Storage テーブルからデータストアを作成するには、次の 2 つの方法があります。
1 回限りのデータ取り込み: Cloud Storage のフォルダまたはファイルからデータストアにデータをインポートします。データストア内のデータは、手動でデータを更新しない限り変更されません。
定期的な取り込み: Cloud Storage フォルダまたはファイルからデータをインポートし、同期頻度を設定して、その Cloud Storage ロケーションの最新データでデータストアが更新される頻度を決定します。
次の表は、Cloud Storage データを Vertex AI Search データストアにインポートする 2 つの方法を比較したものです。
1 回限りの取り込み | 定期的な取り込み |
---|---|
一般提供(GA)。 | 公開プレビュー版。 |
データは手動で更新する必要があります。 | データは 1 日、3 日、5 日ごとに自動的に更新されます。データを手動で更新することはできません。 |
Vertex AI Search は、Cloud Storage の 1 つのフォルダまたはファイルから単一のデータストアを作成します。 | Vertex AI Search はデータコネクタを作成し、指定されたファイルまたはフォルダにデータストア(エンティティ データストア)を関連付けます。各 Cloud Storage データコネクタには、単一のエンティティ データストアを設定できます。 |
複数のファイル、フォルダ、バケットのデータを 1 つのデータストアに結合するには、まず 1 つの Cloud Storage ロケーションからデータを取り込み、次に別のロケーションからデータを取り込みます。 | 手動データ インポートはサポートされていないため、エンティティ データストアのデータは 1 つの Cloud Storage ファイルまたはフォルダからのみ取得できます。 |
データソースへのアクセス制御がサポートされています。詳細については、データソースのアクセス制御をご覧ください。 | データソースへのアクセス制御はサポートされていません。インポートされたデータにアクセス制御を含めることはできますが、これらの制御は適用されません。 |
データストアは、Google Cloud コンソールまたは API を使用して作成できます。 | データ コネクタとそのエンティティ データストアは、コンソールを使用して作成する必要があります。 |
CMEK 準拠。 | CMEK 準拠。 |
Cloud Storage から 1 回インポートする
Cloud Storage からデータを取り込むには、次の手順でデータストアを作成し、 Google Cloud コンソールまたは API を使用してデータを取り込みます。
データをインポートする前に、取り込むデータを準備します。
Console
コンソールを使用して Cloud Storage バケットからデータを取り込む手順は次のとおりです。
Google Cloud コンソールで、[AI アプリケーション] ページに移動します。
[データストア] ページに移動します。
[
データストアを作成] をクリックします。[ソース] ページで、[Cloud Storage] を選択します。
[インポートするフォルダまたはファイルを選択] セクションで、[フォルダ] または [ファイル] を選択します。
[参照] をクリックして、取り込み用に準備したデータを選択し、[選択] をクリックします。 または、[
gs://
] フィールドにロケーションを直接入力します。インポートするデータの種類を選択します。
[続行] をクリックします。
構造化データを 1 回限りインポートする場合:
フィールドをキー プロパティにマッピングします。
スキーマに重要なフィールドが欠落している場合は、[新しいフィールドを追加] を使用して追加します。
詳細については、自動検出と編集についてをご覧ください。
[続行] をクリックします。
データストアのリージョンを選択します。
データストアの名前を入力します。
省略可: 非構造化ドキュメントを選択した場合は、ドキュメントの解析とチャンキングのオプションを選択できます。パーサーを比較するには、ドキュメントを解析するをご覧ください。チャンク処理の詳細については、RAG 用にドキュメントをチャンクするをご覧ください。
OCR パーサーとレイアウト パーサーを使用すると、追加費用が発生する場合があります。Document AI 機能の料金をご覧ください。
パーサーを選択するには、[ドキュメント処理オプション] を開き、使用するパーサー オプションを指定します。
[作成] をクリックします。
取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。 [アクティビティ] タブのステータス列が [進行中] から [インポート完了] に変わると、取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
REST
コマンドラインを使用してデータストアを作成し、Cloud Storage からデータを取り込む手順は次のとおりです。
データストアを作成します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_RECOMMENDATION"] }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: 作成する Vertex AI Search データストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。DATA_STORE_DISPLAY_NAME
: 作成する Vertex AI Search データストアの表示名。
Cloud Storage からデータをインポートします。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "gcsSource": { "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"], "dataSchema": "DATA_SCHEMA", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: Vertex AI Search データストアの ID。INPUT_FILE_PATTERN
: ドキュメントを含む Cloud Storage 内のファイル パターン。構造化データまたはメタデータを含む非構造化データの場合、入力ファイル パターンの例は
gs://<your-gcs-bucket>/directory/object.json
で、1 つ以上のファイルにパターン マッチングする例はgs://<your-gcs-bucket>/directory/*.json
です。非構造化ドキュメントの場合、例は
gs://<your-gcs-bucket>/directory/*.pdf
です。パターンに一致する各ファイルがドキュメントになります。<your-gcs-bucket>
が PROJECT_ID にない場合は、サービス アカウントservice-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com
に Cloud Storage バケットに対する「ストレージ オブジェクト閲覧者」権限を付与する必要があります。たとえば、ソース プロジェクト「123」から宛先プロジェクト「456」に Cloud Storage バケットをインポートする場合は、プロジェクト「123」の Cloud Storage バケットに対する[email protected]
権限を付与します。DATA_SCHEMA
: 省略可。値はdocument
、custom
、csv
およびcontent
です。デフォルトはdocument
です。document
: 構造化されていないドキュメントのメタデータを含む非構造化データをアップロードします。ファイルの各行は、次のいずれかの形式にする必要があります。各ドキュメントの ID を定義できます。{ "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
{ "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
custom
: 構造化ドキュメントの JSON をアップロードします。データはスキーマに従って編成されます。スキーマを指定することもできます。指定しない場合、スキーマは自動的に検出されます。ドキュメントの JSON 文字列を一貫した形式で各行に直接配置できます。Vertex AI Search は、インポートされた各ドキュメントの ID を自動的に生成します。content
: 非構造化ドキュメント(PDF、HTML、DOC、TXT、PPTX)をアップロードします。各ドキュメントの ID は、SHA256(GCS_URI) の最初の 128 ビットが 16 進数文字列としてエンコードされたものとして自動的に生成されます。一致するファイルが 10 万ファイルの制限を超えない限り、複数の入力ファイル パターンを指定できます。csv
: CSV ファイルにヘッダー行を含め、各ヘッダーをドキュメント フィールドにマッピングします。inputUris
フィールドを使用して、CSV ファイルのパスを指定します。
ERROR_DIRECTORY
: 省略可。インポートに関するエラー情報用の Cloud Storage ディレクトリ(例:gs://<your-gcs-bucket>/directory/import_errors
)。Vertex AI Search に一時ディレクトリを自動的に作成させるには、この項目を空のままにすることをおすすめします。RECONCILIATION_MODE
: 省略可。値はFULL
およびINCREMENTAL
です。デフォルトはINCREMENTAL
です。INCREMENTAL
を指定すると、Cloud Storage からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL
を指定すると、データストア内のドキュメントが完全に再ベース化されます。つまり、新しいドキュメントと更新されたドキュメントがデータストアに追加され、Cloud Storage にないドキュメントがデータストアから削除されます。FULL
モードは、不要になったドキュメントを自動的に削除する場合に便利です。AUTO_GENERATE_IDS
: 省略可。ドキュメント ID を自動生成するかどうかを指定します。true
に設定すると、ドキュメント ID はペイロードのハッシュに基づいて生成されます。生成されたドキュメント ID は、複数のインポートで整合性が維持されない場合があります。複数のインポートで ID を自動生成する場合は、ドキュメント ID の整合性を維持するために、reconciliationMode
をFULL
に設定することを強くおすすめします。autoGenerateIds
は、gcsSource.dataSchema
がcustom
またはcsv
に設定されている場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT
エラーが返されます。autoGenerateIds
を指定しない場合、またはfalse
に設定しない場合は、idField
を指定する必要があります。そうしないと、ドキュメントのインポートに失敗します。ID_FIELD
: 省略可。ドキュメント ID のフィールドを指定します。 Cloud Storage ソースドキュメントの場合、idField
はドキュメント ID である JSON フィールドの名前を指定します。たとえば、{"my_id":"some_uuid"}
がドキュメントの 1 つのドキュメント ID フィールドの場合は、"idField":"my_id"
を指定します。これにより、"my_id"
という名前のすべての JSON フィールドがドキュメント ID として識別されます。gcsSource.dataSchema
は、(1)custom
がcsv
に設定されている、および(2)auto_generate_ids
がfalse
に設定されているか、未設定の場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT
エラーが返されます。Cloud Storage JSON フィールドの値は、文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。
id_field
で指定された JSON フィールド名は、文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。
C#
詳細については、AI アプリケーション C# API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Go
詳細については、AI アプリケーション Go API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Java
詳細については、AI アプリケーション Java API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Node.js
詳細については、AI アプリケーション Node.js API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Python
詳細については、AI アプリケーション Python API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
Ruby
詳細については、AI アプリケーション Ruby API のリファレンス ドキュメントをご覧ください。
AI アプリケーションに対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアを作成
ドキュメントのインポート
定期的な同期で Cloud Storage に接続する
データをインポートする前に、取り込むデータを準備します。
次の手順では、Cloud Storage のロケーションを Vertex AI Search データコネクタに関連付けるデータコネクタを作成する方法と、作成するデータストアのロケーションにあるフォルダまたはファイルを指定する方法について説明します。データ コネクタの子データストアは、エンティティ データストアと呼ばれます。
データはエンティティ データストアに定期的に同期されます。同期は、毎日、3 日ごと、5 日ごとに指定できます。
コンソール
Google Cloud コンソールで、[AI アプリケーション] ページに移動します。
[データストア] ページに移動します。
[データストアを作成] をクリックします。
[ソース] ページで、[Cloud Storage] を選択します。
インポートするデータの種類を選択します。
[定期] をクリックします。
[同期頻度] で、Vertex AI Search コネクタが Cloud Storage ロケーションと同期する頻度を選択します。頻度は後で変更できます。
[インポートするフォルダまたはファイルを選択] セクションで、[フォルダ] または [ファイル] を選択します。
[参照] をクリックして、取り込み用に準備したデータを選択し、[選択] をクリックします。 または、[
gs://
] フィールドにロケーションを直接入力します。[続行] をクリックします。
データ コネクタのリージョンを選択します。
データコネクタの名前を入力します。
省略可: 非構造化ドキュメントを選択した場合は、ドキュメントの解析とチャンキングのオプションを選択できます。パーサーを比較するには、ドキュメントを解析するをご覧ください。チャンク処理の詳細については、RAG 用にドキュメントをチャンクするをご覧ください。
OCR パーサーとレイアウト パーサーを使用すると、追加費用が発生する場合があります。Document AI 機能の料金をご覧ください。
パーサーを選択するには、[ドキュメント処理オプション] を開き、使用するパーサー オプションを指定します。
[作成] をクリックします。
これで、データ コネクタが作成されました。このコネクタは、Cloud Storage のロケーションとデータを定期的に同期します。また、
gcs_store
という名前のエンティティ データストアも作成しました。取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。
[データの取り込みアクティビティ] タブ。[データ取り込みアクティビティ] タブのステータス列が [進行中] から [成功] に変わると、最初の取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
データソースを設定してデータを初めてインポートすると、設定時に選択した頻度でそのソースからデータが同期されます。 データコネクタの作成から約 1 時間後に、最初の同期が行われます。 次回の同期は、24 時間、72 時間、または 120 時間後に行われます。
次のステップ
データストアをアプリにアタッチするには、カスタム レコメンデーション アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。
アプリとデータストアが設定された後にレコメンデーションをプレビューまたは取得するには、レコメンデーションを取得するをご覧ください。
API を使用して構造化 JSON データをアップロードする
API を使用して JSON ドキュメントまたはオブジェクトを直接アップロードする手順は次のとおりです。
データをインポートする前に、取り込むデータを準備します。
REST
コマンドラインを使用してデータストアを作成し、構造化 JSON データをインポートする手順は次のとおりです。
データストアを作成します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_RECOMMENDATION"] }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: 作成するレコメンデーション データストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。DATA_STORE_DISPLAY_NAME
: 作成するレコメンデーション データストアの表示名。
省略可: 独自のスキーマを指定します。通常、スキーマを指定すると、より良い結果が得られます。詳細については、スキーマを指定する、または自動検出するをご覧ください。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID
: レコメンデーション データストアの ID。JSON_SCHEMA_OBJECT
: JSON オブジェクトとしての JSON スキーマ。次に例を示します。{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" } } }
定義されたスキーマに準拠する構造化データをインポートします。
データのアップロードには、次のような方法があります。
JSON ドキュメントをアップロードします。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents?documentId=DOCUMENT_ID" \ -d '{ "jsonData": "JSON_DOCUMENT_STRING" }'
JSON_DOCUMENT_STRING
は、単一の文字列として JSON ドキュメントを置き換えます。これは、前の手順で指定した JSON スキーマに準拠している必要があります。次に例を示します。```none { \"title\": \"test title\", \"categories\": [\"cat_1\", \"cat_2\"], \"uri\": \"test uri\"} ```
JSON オブジェクトをアップロードします。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents?documentId=DOCUMENT_ID" \ -d '{ "structData": JSON_DOCUMENT_OBJECT }'
JSON_DOCUMENT_OBJECT
は、JSON オブジェクトとして JSON ドキュメントを置き換えます。これは、前の手順で指定した JSON スキーマに準拠している必要があります。次に例を示します。```json { "title": "test title", "categories": [ "cat_1", "cat_2" ], "uri": "test uri" } ```
JSON ドキュメントで更新します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID" \ -d '{ "jsonData": "JSON_DOCUMENT_STRING" }'
JSON オブジェクトで更新します。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID" \ -d '{ "structData": JSON_DOCUMENT_OBJECT }'
次のステップ
データストアをアプリにアタッチするには、カスタム レコメンデーション アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。
アプリとデータストアが設定された後にレコメンデーションが表示される様子をプレビューするには、レコメンデーションを取得するをご覧ください。
Terraform を使用してデータストアを作成する
Terraform を使用して空のデータストアを作成できます。空のデータストアが作成されたら、 Google Cloud コンソールまたは API コマンドを使用してデータストアにデータを取り込むことができます。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
Terraform を使用して空のデータストアを作成するには、
google_discovery_engine_data_store
をご覧ください。