Cloud Storage から同期する

Cloud Storage テーブルからデータストアを作成するには、次の 2 つの方法があります。

  • 1 回限りの取り込み: Cloud Storage のフォルダまたはファイルからデータストアにデータをインポートします。データストア内のデータは、手動でデータを更新しない限り変更されません。

  • 定期的な取り込み: Cloud Storage フォルダまたはファイルからデータをインポートし、同期頻度を設定します。この頻度によって、Cloud Storage の場所から最新のデータでデータストアが更新される頻度が決まります。

次の表に、Cloud Storage データを Gemini Enterprise データストアにインポートする 2 つの方法を比較します。

1 回限りの取り込み 定期的な取り込み
一般提供(GA)。 公開プレビュー版。
データは手動で更新する必要があります。 データは 1 日、3 日、5 日ごとに自動的に更新されます。データを手動で更新することはできません。
Gemini Enterprise は、Cloud Storage の 1 つのフォルダまたはファイルから単一のデータストアを作成します。 Gemini Enterprise はデータコネクタを作成し、指定されたファイルまたはフォルダのデータストア(エンティティ データストア)を関連付けます。各 Cloud Storage データコネクタには、単一のエンティティ データストアを設定できます。
複数のファイル、フォルダ、バケットのデータを 1 つのデータストアに結合するには、まず 1 つの Cloud Storage ロケーションからデータを取り込み、次に別のロケーションからデータを取り込みます。 手動でのデータ インポートはサポートされていないため、エンティティ データストア内のデータは 1 つの Cloud Storage ファイルまたはフォルダからのみ取得できます。
データソースへのアクセス制御がサポートされています。詳細については、データソースへのアクセス制御をご覧ください。 データソースのアクセス制御はサポートされていません。インポートされたデータにはアクセス制御を含めることができますが、これらの制御は適用されません。
データストアは、Google Cloud コンソールまたは API を使用して作成できます。 コンソールを使用して、データ コネクタとそのエンティティ データストアを作成する必要があります。
CMEK 準拠。 CMEK 準拠。

Cloud Storage から 1 回インポートする

Cloud Storage からデータを取り込むには、次の手順で Google Cloud コンソールまたは API を使用してデータストアを作成し、データを取り込みます。

データをインポートする前に、取り込むデータを準備します

コンソール

コンソールを使用して Cloud Storage バケットからデータを取り込むには、次の操作を行います。

  1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

    Gemini Enterprise

  2. [データストア] ページに移動します。

  3. [データストアを作成] をクリックします。

  4. [データソースを選択] ページで、[Cloud Storage] を選択します。

  5. [インポートするフォルダまたはファイルを選択] セクションで、[フォルダ] または [ファイル] を選択します。

  6. [参照] をクリックして、取り込み用に準備したデータを選択し、[選択] をクリックします。 または、[gs://] フィールドにロケーションを直接入力します。

  7. インポートするデータの種類を選択します。

  8. [続行] をクリックします。

  9. 構造化データを 1 回限りでインポートする場合:

    1. フィールドをキー プロパティにマッピングします。

    2. スキーマに重要なフィールドが欠落している場合は、[新しいフィールドを追加] を使用して追加します。

      詳しくは、自動検出と編集についてをご覧ください。

    3. [続行] をクリックします。

  10. データストアのリージョンを選択します。

  11. データストアの名前を入力します。

  12. 省略可: 非構造化ドキュメントを選択した場合は、ドキュメントの解析とチャンキングのオプションを選択できます。パーサーを比較するには、ドキュメントを解析するをご覧ください。チャンク処理の詳細については、RAG 用にドキュメントをチャンクするをご覧ください。

    OCR パーサーとレイアウト パーサーでは、追加費用が発生する可能性があります。

    パーサーを選択するには、[ドキュメント処理オプション] を開いて、使用するパーサー オプションを指定します。

  13. [作成] をクリックします。

  14. 取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。 [アクティビティ] タブのステータス列が [進行中] から [インポート完了] に変わると、取り込みが完了します。

    取り込みには、データのサイズに応じて、数分から数時間かかることがあります。

REST

コマンドラインを使用してデータストアを作成し、Cloud Storage からデータを取り込む手順は次のとおりです。

  1. データストアを作成します。

    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_SEARCH"],
      "contentConfig": "CONTENT_REQUIRED",
    }'
    

    次のように置き換えます。

    • PROJECT_ID: 実際のプロジェクトの ID。
    • DATA_STORE_ID: 作成するデータストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。
    • DATA_STORE_DISPLAY_NAME: 作成するデータストアの表示名。

    省略可: ドキュメント解析を構成するか、RAG のドキュメント チャンキングを有効にするには、documentProcessingConfig オブジェクトを指定して、データストアの作成リクエストに含めます。スキャンされた PDF を取り込む場合は、PDF 用の OCR パーサーを構成することをおすすめします。解析オプションまたはチャンク処理オプションの構成方法については、ドキュメントの解析とチャンク化をご覧ください。

  2. 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: 実際のプロジェクトの ID。
    • DATA_STORE_ID: データストアの 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 バケットに対する service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com 権限を付与します。

    • DATA_SCHEMA: 省略可。値は documentcustomcsv および 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 文字列を各行に一貫した形式で直接配置できます。Gemini Enterprise は、インポートされた各ドキュメントの 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)。Gemini Enterprise に一時ディレクトリを自動的に作成させるには、この項目を空のままにすることをおすすめします。

    • RECONCILIATION_MODE: 省略可。値は FULL および INCREMENTAL です。デフォルトは INCREMENTAL です。INCREMENTAL を指定すると、Cloud Storage からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL を指定すると、データストア内のドキュメントが完全に再ベース化されます。つまり、新しいドキュメントと更新されたドキュメントがデータストアに追加され、Cloud Storage にないドキュメントがデータストアから削除されます。FULL モードは、不要になったドキュメントを自動的に削除する場合に便利です。

    • AUTO_GENERATE_IDS: 省略可。ドキュメント ID を自動的に生成するかどうかを指定します。true に設定すると、ペイロードのハッシュに基づいてドキュメント ID が生成されます。生成されたドキュメント ID は、複数のインポートで一貫性が保たれない場合があります。複数のインポートで ID を自動生成する場合は、ドキュメント ID の整合性を維持するために、reconciliationModeFULL に設定することを強くおすすめします。

      autoGenerateIds は、gcsSource.dataSchemacustom または 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)customcsv に設定されている、および(2)auto_generate_idsfalse に設定されているか、未設定の場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT エラーが返されます。

      id_field で指定された JSON フィールド名は、文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。

定期的な同期で Cloud Storage に接続する

データをインポートする前に、取り込むデータを準備します

次の手順では、Cloud Storage の場所を Gemini Enterprise データコネクタに関連付けるデータコネクタを作成する方法と、作成するデータストアの場所にあるフォルダまたはファイルを指定する方法について説明します。データ コネクタの子データストアは、エンティティ データストアと呼ばれます。

データはエンティティ データストアに定期的に同期されます。同期は、毎日、3 日ごと、5 日ごとに指定できます。

コンソール

  1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

    Gemini Enterprise

  2. [データストア] ページに移動します。

  3. [データストアを作成] をクリックします。

  4. [ソース] ページで、[Cloud Storage] を選択します。

  5. インポートするデータの種類を選択します。

  6. [Periodic] をクリックします。

  7. [同期頻度] で、Gemini Enterprise コネクタが Cloud Storage ロケーションと同期する頻度を選択します。頻度は後で変更できます。

  8. [インポートするフォルダまたはファイルを選択] セクションで、[フォルダ] または [ファイル] を選択します。

  9. [参照] をクリックして、取り込み用に準備したデータを選択し、[選択] をクリックします。 または、[gs://] フィールドにロケーションを直接入力します。

  10. [続行] をクリックします。

  11. データコネクタのリージョンを選択します。

  12. データストアの名前を入力します。

  13. 省略可: 非構造化ドキュメントを選択した場合は、ドキュメントの解析とチャンキングのオプションを選択できます。パーサーを比較するには、ドキュメントを解析するをご覧ください。チャンク処理の詳細については、RAG 用にドキュメントをチャンクするをご覧ください。

    OCR パーサーとレイアウト パーサーでは、追加費用が発生する可能性があります。

    パーサーを選択するには、[ドキュメント処理オプション] を開いて、使用するパーサー オプションを指定します。

  14. [作成] をクリックします。

    これで、Cloud Storage のロケーションとデータを定期的に同期するデータコネクタが作成されました。また、gcs_store という名前のエンティティ データストアも作成しました。

  15. 取り込みのステータスを確認するには、[データストア] ページに移動し、データコネクタ名をクリックして、[データ] ページで詳細を表示します。

    [データ取り込みアクティビティ] タブ。[データ取り込みアクティビティ] タブのステータス列が [進行中] から [成功] に変わると、最初の取り込みが完了します。

    取り込みには、データのサイズに応じて、数分から数時間かかることがあります。

データソースを設定してデータを初めてインポートすると、設定時に選択した頻度でそのソースからデータが同期されます。 データコネクタの作成から約 1 時間後に、最初の同期が行われます。 次の同期は、約 24 時間後、72 時間後、120 時間後のいずれかに行われます。

次のステップ

  • データストアをアプリに接続するには、検索アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。

  • アプリとデータストアが設定された後に検索結果がどのように表示されるかをプレビューするには、検索結果をプレビューするをご覧ください。