生成 AI 検索

始める前に

サンプル ドキュメントを Document AI Warehouse に取り込むには、クイック スタートガイドをご覧ください。

生成 AI 検索は、(キーワードまたは自然言語の)検索クエリに最も関連性の高い上位 k 個のドキュメントを取得します。お客様がアップロードしたドキュメントの本文からピンポイントの回答を返し、検索結果を関連性で並べ替えます。

検索リクエストの呼び出し元は、qaSizeLimit フィールドで k を指定して決定します。大規模言語モデルは、検索クエリとドキュメントの関連性を判断します。

検索対象となるデータ

  • ドキュメントの plain_text
  • Document AI オブジェクトをインポートする場合は、埋め込みの cloud_ai_document.text を使用します。

フィルタリング、ページネーション、ヒストグラム、カスタム シノニム、ドキュメント レベル、きめ細かいアクセス制御はサポートされていません。

検索リクエスト呼び出しを行う

検索サービスを呼び出すには、次のように定義された検索リクエストを使用する必要があります。

{
  "documentQuery": {
    object (DocumentQuery)
  },
  "qaSizeLimit": integer
}

parent フィールドは、次の形式で入力する必要があります。

/projects/PROJECT_ID/locations/LOCATION

生成 AI 検索には qaSizeLimit フィールドが必要です。

検索リクエストへのレスポンス

検索レスポンスは次のように定義されます。

{
  "matchingDocuments": [
    {
      object (MatchingDocument)
    }
  ],
  "metadata": {
    object (ResponseMetadata)
  }
}

ドキュメント クエリ

document_query フィールドは次のように定義されます。

{
  "query": string,
  "isNlQuery": boolean
}

query フィールドは、リクエスト ユーザーの検索クエリの単語用です。キーワードまたは自然言語の質問のいずれかになります。通常、これらは UI の検索フィールドから取得されます。生成 AI 検索では、isNlQuery フィールドを true に設定する必要があります。

一致するドキュメント

一致するドキュメントは次のようになります。

{
  "document": {
    object (Document)
  },
  "searchTextSnippet": string,
  "qaResult": {
    object (QAResult)
  }
}

SearchTextSnippet フィールドには、ユーザーの自然言語のクエリに対する回答を含むスニペットが含まれます。HTML の太字タグは含まれず、回答スニペットのハイライトは QAResult.highlights にあります。注: 一致するドキュメントの完全なリファレンス。

生成 AI の検索結果

これは生成 AI の検索結果の情報です。

{
  "highlights": {
    object(Highlight)
  }
  "confidence_score": float
}

ハイライト

これは、回答のコンテキストや関連性の高い文など、ハイライト表示されたセクションを表す検索テキスト スニペット内のテキスト スパンです。

{
  "start_index": integer
  "end_index": integer
}

一連のドキュメントからの質問と回答

生成 AI を使用して回答を生成するには、次のように定義された documentNameFilter を含む検索リクエストを使用する必要があります。

{
  "documentQuery": {
    "query": "QUERY",
    "isNlQuery": "true",
    "documentNameFilter" : [
      "projects/PROJECT_NUMBER/locations/LOCATION/documents/DOCUMENT_ID_1",
      "projects/PROJECT_NUMBER/locations/LOCATION/documents/DOCUMENT_ID_2",
    ]
  },
  "qaSizeLimit": integer
}

他のフィルタはまだ機能しないため、documentQuery に他のフィルタを追加しないでください。

指定されたドキュメントのセット内に回答が見つかった場合、回答は questionAnswer フィールドに保存されます。

{
  "document": {
    object (Document)
  },
  questionAnswer: "QUESTION_ANSWER",
}

次のステップ