Method: corpora.documents.query

Document に対してセマンティック検索を実行します。

HTTP リクエスト

POST https://generativelanguage.googleapis.com/v1beta/{name=corpora/*/documents/*}:query

この URL は gRPC Transcoding 構文を使用します。

パスパラメータ

パラメータ
name

string

必須。クエリする Document の名前。例: corpora/my-corpus-123/documents/the-doc-abc

リクエスト本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "query": string,
  "resultsCount": integer,
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ]
}
フィールド
query

string

必須。セマンティック検索を実行するためのクエリ文字列。

resultsCount

integer

(省略可)返される Chunk の最大数。サービスが返す Chunk の数が少なくなる場合があります。

指定されていない場合は、最大で 10 個の Chunk が返されます。指定できる結果の最大数は 100 です。

metadataFilters[]

object (MetadataFilter)

(省略可)Chunk メタデータをフィルタします。各 MetadataFilter オブジェクトは一意のキーに対応する必要があります。複数の MetadataFilter オブジェクトは論理「AND」で結合されます。

注: Document 名はすでに指定されているため、このリクエストでは Document レベルのフィルタリングはサポートされていません。

クエリの例: (year >= 2020 OR year < 2010) AND (genre = draft OR genre = action)

MetadataFilter オブジェクト リスト: metadataFilters = [ {key = "chunk.custom_metadata.year"condition = [{int_value = 2020, operation = GREATER_EQUAL}, {int_value = 2010, operation = LESS}}, {key = "chunk.custom_metadata.genre"condition = [{stringValue " string"UAL = "value =",

数値の範囲をクエリする例: (year > 2015 AND year <= 2020)

MetadataFilter オブジェクト リスト: metadataFilters = [ {key = "chunk.custom_metadata.year" conditions = [{int_value = 2015, operation = GREATER}]}, {key = "chunk.custom_metadata.year" conditions = [{int_value = 2020, operation = LESS_EQUAL}]}]

注: 同じキーに対する「AND」は、数値に対してのみサポートされています。文字列値では、同じキーに対して「OR」のみがサポートされます。

レスポンスの本文

関連するチャンクのリストを含む documents.query からのレスポンス。

成功すると、レスポンスの本文に次の構造のデータが含まれます。

JSON 表現
{
  "relevantChunks": [
    {
      object (RelevantChunk)
    }
  ]
}
フィールド
relevantChunks[]

object (RelevantChunk)

返された関連するチャンク。

認可スコープ

次の OAuth スコープのいずれかが必要です。

  • https://www.googleapis.com/auth/generative-language.retriever
  • https://www.googleapis.com/auth/generative-language.retriever.readonly

詳細については、認証の概要をご覧ください。