カスタム データソースのデータを準備する

企業には、社内で構築されたカスタム アプリケーションがよくあります。Gemini Enterprise をこれらのカスタム アプリケーションのデータソースに接続する場合は、まずデータを準備する必要があります。データの準備方法は、カスタム データソースからインポートするデータの種類と、インポート方法によって異なります。まず、インポートするデータの種類を決めます。

複数のデータストアを 1 つのアプリに接続できる統合検索の制限事項については、複数のデータストアの接続についてをご覧ください。

非構造化データ

Gemini Enterprise は、HTML、テキストが埋め込まれた PDF、TXT 形式のドキュメントの検索をサポートしています。プレビューでは、PPTX および DOCX 形式を使用できます。

次の表に、構成が異なる各ファイルタイプのファイルサイズの上限を示します(詳細については、ドキュメントを解析してチャンクに分割するをご覧ください)。一度にインポートできるファイル数は最大 100,000 個です。

ファイル形式 デフォルトのインポート
HTML、TXT、JSON、XHTML、XML などのテキストベースのファイル 200 MB 未満
PPTX、DOCX、XLSX 200 MB 未満
PDF 200 MB 未満

非構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

検索できない PDF(スキャンした PDF や、インフォグラフィックなどの画像内にテキストを含む PDF)がある場合は、データストアの作成時にレイアウト パーサーをオンにすることをおすすめします。これにより、Gemini Enterprise はテキスト ブロックや表などの要素を抽出できます。検索可能な PDF の大部分が機械読み取り可能なテキストで構成され、多くのテーブルが含まれている場合は、検出と解析を改善するために、機械読み取り可能なテキストのオプションを有効にして OCR 処理を有効にすることを検討してください。詳細については、ドキュメントを解析してチャンクするをご覧ください。

検索拡張生成(RAG)に Gemini Enterprise を使用する場合は、データストアの作成時にドキュメント チャンクを有効にします。詳細については、ドキュメントを解析してチャンクするをご覧ください。

次のソースから非構造化データをインポートできます。

Cloud Storage

Google Cloud コンソールImportDocuments メソッド、または CRUD メソッドによるストリーミング取り込みを使用して、メタデータの有無にかかわらず Cloud Storage からデータをインポートできます。API リファレンス情報については、DocumentServicedocuments をご覧ください。

データ インポートは再帰的です。つまり、指定したバケットまたはフォルダ内にフォルダが存在する場合、そのフォルダ内のファイルはインポートされます。

メタデータなしで Cloud Storage からドキュメントをインポートする場合は、ドキュメントを Cloud Storage バケットに直接配置します。ドキュメント ID はメタデータの例です。

テストには、次の一般公開の Cloud Storage フォルダを使用できます。これらのフォルダには PDF が含まれています。

  • gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs
  • gs://cloud-samples-data/gen-app-builder/search/CUAD_v1
  • gs://cloud-samples-data/gen-app-builder/search/kaiser-health-surveys
  • gs://cloud-samples-data/gen-app-builder/search/stanford-cs-224

メタデータを含む Cloud Storage からデータをインポートする場合は、メタデータを含む JSON ファイルを、インポート時に指定するロケーションの Cloud Storage バケットに配置します。

非構造化ドキュメントは、メタデータと同じ Cloud Storage バケットに配置することも、別のバケットに配置することもできます。

メタデータ ファイルは、JSON Lines ファイルまたは NDJSON ファイルである必要があります。ドキュメント ID はメタデータの例です。メタデータ ファイルの各行は、次のいずれかの JSON 形式に準拠している必要があります。

  • 使用中: jsonData

    { "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
    
  • 使用中: structData

    { "id": "<your-id>", "structData": { <JSON object> }, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
    

各行の uri フィールドを使用して、ドキュメントの Cloud Storage の場所を指定します。

非構造化ドキュメントの NDJSON メタデータ ファイルの例を次に示します。この例では、メタデータ ファイルの各行が PDF ドキュメントを指し、そのドキュメントのメタデータが含まれています。最初の 2 行は jsonData を使用し、次の 2 行は structData を使用します。structData を使用すると、引用符内の引用符をエスケープする必要がなくなります。

{"id":"doc-0","jsonData":"{\"title\":\"test_doc_0\",\"description\":\"This document uses a blue color theme\",\"color_theme\":\"blue\"}","content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_0.pdf"}}
{"id":"doc-1","jsonData":"{\"title\":\"test_doc_1\",\"description\":\"This document uses a green color theme\",\"color_theme\":\"green\"}","content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_1.pdf"}}
{"id":"doc-2","structData":{"title":"test_doc_2","description":"This document uses a red color theme","color_theme":"red"},"content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_3.pdf"}}
{"id":"doc-3","structData":{"title":"test_doc_3","description":"This is document uses a yellow color theme","color_theme":"yellow"},"content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_4.pdf"}}

データストアを作成するには、Google データソースを接続するをご覧ください。

BigQuery

BigQuery からメタデータをインポートする場合は、次の手順を行います。

  1. メタデータを含む BigQuery テーブルを作成します。ドキュメント ID はメタデータの例です。

  2. 非構造化ドキュメントを Cloud Storage バケットに格納します。

    インポートは、Google Cloud コンソールImportDocuments メソッド、または CRUD メソッドによるストリーミング取り込みを使用して行うことができます。API リファレンス情報については、DocumentServicedocuments をご覧ください。

次の BigQuery スキーマを使用します。各レコードの uri フィールドを使用して、ドキュメントの Cloud Storage のロケーションを指定します。

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "content",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "mimeType",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  }
]

詳細については、BigQuery ドキュメントのテーブルの作成と使用をご覧ください。

データストアを作成するには、Google データソースを接続するをご覧ください。

Google ドライブ

Google ドライブからのデータの同期は検索でサポートされています。

Google ドライブからデータをインポートする場合は、Gemini Enterprise で Google Identity を ID プロバイダとして設定する必要があります。アクセス制御の設定については、ID と権限をご覧ください。

データストアを作成するには、Google データソースを接続するをご覧ください。

構造化データ

使用するインポート方法に従ってデータを準備します。

次のソースから構造化データをインポートできます。

BigQuery または Cloud Storage から構造化データをインポートする際に、メタデータ付きでデータをインポートするオプションが提供されます。(メタデータを含む構造化データは、拡張構造化データとも呼ばれます)。

BigQuery

構造化データは BigQuery データセットからインポートできます。

スキーマは自動検出されます。インポート後、自動検出されたスキーマを編集して、タイトルなどのキー プロパティをマッピングすることをおすすめします。 Google Cloud コンソールではなく API を使用してインポートする場合は、独自のスキーマを JSON オブジェクトとして指定できます。詳細については、スキーマを指定または自動検出するをご覧ください。

一般公開されている構造化データの例については、BigQuery 一般公開データセットをご覧ください。

構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

メタデータを含む構造化データをインポートするように選択すると、BigQuery テーブルに次の 2 つのフィールドが含まれます。

  • ドキュメントを識別するための id フィールド。メタデータなしで構造化データをインポートすると、id が自動的に生成されます。メタデータを含めると、id の値を指定できます。

  • データを含む jsonData フィールド。jsonData 文字列の例については、前のセクションの Cloud Storage をご覧ください。

メタデータのインポートを含む構造化データには、次の BigQuery スキーマを使用します。

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  }
]

データストアを作成するには、Google データソースを接続するをご覧ください。

Cloud Storage

Cloud Storage の構造化データは、JSON Lines 形式または NDJSON 形式である必要があります。各ファイルは 2 GB 以下である必要があります。1 回のインポート リクエストで最大 1,000 個のファイルをインポートできます。

一般公開されている構造化データの例については、Cloud Storage の次のフォルダをご覧ください。これらのフォルダには NDJSON ファイルが含まれています。

  • gs://cloud-samples-data/gen-app-builder/search/kaggle_movies
  • gs://cloud-samples-data/gen-app-builder/search/austin_311

構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

構造化データの NDJSON メタデータ ファイルの例を次に示します。ファイルの各行はドキュメントを表し、一連のフィールドで構成されています。

{"id": 10001, "title": "Hotel 1", "location": {"address": "1600 Amphitheatre Parkway, Mountain View, CA 94043"}, "available_date": "2024-02-10", "non_smoking": true, "rating": 3.7, "room_types": ["Deluxe", "Single", "Suite"]}
{"id": 10002, "title": "Hotel 2", "location": {"address": "Manhattan, New York, NY 10001"}, "available_date": "2023-07-10", "non_smoking": false, "rating": 5.0, "room_types": ["Deluxe", "Double", "Suite"]}
{"id": 10003, "title": "Hotel 3", "location": {"address": "Moffett Park, Sunnyvale, CA 94089"}, "available_date": "2023-06-24", "non_smoking": true, "rating": 2.5, "room_types": ["Double", "Penthouse", "Suite"]}

データストアを作成するには、Google データソースを接続するをご覧ください。

ローカル JSON データ

API を使用して、JSON ドキュメントまたはオブジェクトを直接アップロードできます。

より良い結果を得るために、独自のスキーマを JSON オブジェクトとして指定することをおすすめします。独自のスキーマを指定しない場合、スキーマは自動検出されます。インポート後、自動検出されたスキーマを編集して、タイトルなどのキー プロパティをマッピングすることをおすすめします。詳細については、スキーマを指定または自動検出するをご覧ください。

構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

データストアを作成するには、Google データソースを接続するをご覧ください。