回答をストリーミングする

このページでは、ストリーミング回答メソッドについて説明します。

ストリーミング回答メソッドには、回答メソッドと同じ多くの機能に加えて、ストリーミングという追加機能があります。ストリーミング回答では、生成された回答が複数の部分に分割され、順次送信されます。

生成された回答が長く、回答全体を一度に送信すると遅延が発生する場合には、ストリーミング回答が特に役立ちます。ストリーミング回答では、レイテンシの発生を抑えることができます。

制限事項

ストリーミング回答メソッドには、以下の例外を除き、回答メソッドと同じ機能があります。

  • ストリーミング回答は英語でのみサポートされています。

  • リフレーズ ステップの数は 1 です。リフレーズを無効にすることはできません。最大ステップ数を変更することもできません。

  • ストリーミング回答のグラウンディング スコアを取得することはできません。十分に根拠のある回答のみを返すようにすることもできません。

  • ストリーミング回答メソッドで使用できるのは Gemini モデルのみです。モデルの一覧については、使用可能なモデルをご覧ください。

回答をストリーミングする

次のコマンドは、ストリーミング回答メソッドを呼び出して、生成された回答を一連の JSON レスポンスの形式で返す方法を示しています。通常、各レスポンスには回答の 1 文が含まれます。

この基本的なコマンドでは、必要な入力のみが示されています。オプションはデフォルトのままにしています。

他のオプションの例については、回答とフォローアップを取得するをご覧ください。ストリーミング回答では一部の回答オプションを利用できません。このページの制限事項をご覧ください。

REST

検索を行い、生成された回答をストリーミングで取得する方法を以下に示します。

  1. 次の curl コマンドを実行します。

    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/engines/APP_ID/servingConfigs/default_search:streamAnswer" \
      -d '{
            "query": { "text": "QUERY"}
          }'
    

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

    • PROJECT_ID: 実際のプロジェクトの ID。
    • APP_ID: クエリするアプリの ID。
    • QUERY: 質問または検索クエリを含むフリーテキストの文字列。たとえば、「Which database is faster, bigquery or spanner?」(BigQuery と Spanner のうち、どちらのデータベースが高速ですか?)などです。

その他の例

回答をストリーミングするで示されている基本的なコマンドは、オプションが指定されていない最もシンプルなコマンドです。実際には、このページに記載されている制限事項を除き、回答メソッドで使用できるオプションと同じオプションを適用できます。

ストリーミング回答は、フォローアップ セッションでも使用できます。