ウェブアプリでは、質問に対する回答をストリーミング レスポンスの形式で取得できます。このドキュメントでは、REST API を使用して回答を取得する方法について説明します。Gemini Enterprise ウェブアプリを使用する場合は、アシスタントとチャットするをご覧ください。
StreamAssist の概要
StreamAssist は、ユーザーのクエリを処理するための強力でインタラクティブな方法を提供します。ストリーミング形式で動作し、リアルタイムの双方向のやり取りを可能にします。
API の主な機能は次のとおりです。
会話のコンテキストの維持: セッションを使用して会話のコンテキストを維持し、以前のやり取りの範囲内でフォローアップのクエリを理解できるようにします。
提供されたファイルの組み込み: 添付ファイルをコンテキストとして含め、より多くの情報に基づいた関連性の高い回答を生成します。
シームレスな統合: さまざまなエージェントやツールと統合して、幅広いユーザー リクエストに対応します。
始める前に
以下のことを確認してください。
Google Cloudで Discovery Engine API が有効になっている。Google Cloud コンソールの [Discovery Engine API] ページで有効にできます。
discoveryengine.assistants.assist権限が割り当てられているディスカバリー エンジン ロール。既存の Gemini Enterprise アプリ。アプリを作成するには、アプリを作成するをご覧ください。
検索結果を取得する
streamAssist メソッドを使用して、Gemini Enterprise にクエリを送信し、回答を取得できます。次の curl コマンドは、必須フィールドの一覧を取得します。
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
-d '
{
"query": {
"text": "QUERY_TEXT_1"
}
}'
次のように置き換えます。
- ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
- 米国のマルチリージョンの場合は
us- - EU のマルチリージョンの場合は
eu- - グローバル ロケーションの場合は
global-
- 米国のマルチリージョンの場合は
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- APP_ID: Gemini Enterprise アプリの固有識別子。
- LOCATION: データストアのマルチリージョン(
global、us、eu) - QUERY_TEXT_1: 検索クエリのテキスト。
フィールドと返される内容の詳細については、レスポンス本文をご覧ください。
同じセッションを使用して検索結果を取得する
既存のセッション内で会話を継続して Gemini Enterprise から回答を取得するには、streamAssist メソッドを使用します。次のコードサンプルは、必須フィールドを示しています。
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
-d '
{
"session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
"query": {
"text": "QUERY_TEXT_2"
}
}'
次のように置き換えます。
- ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
- 米国のマルチリージョンの場合は
us- - EU のマルチリージョンの場合は
eu- - グローバル ロケーションの場合は
global-
- 米国のマルチリージョンの場合は
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- APP_ID: Gemini Enterprise アプリの固有識別子。
- LOCATION: データストアのマルチリージョン(
global、us、eu) - QUERY_TEXT_2: 検索クエリのテキスト。
- SESSION_ID: 前の会話またはクエリのセッション ID。
フィールドと返される内容の詳細については、レスポンス本文をご覧ください。
ファイルをアップロードして検索結果を取得する(プレビュー)
アシスタントにコンテキストを追加するには、セッションにファイルをアップロードしてから、そのコンテンツをクエリします。手順は次のとおりです。
addContextFileメソッドを使用して、セッションにファイルをアップロードします。REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/sessions/SESSION_ID:addContextFile" \ -d ' { "fileName": "FILE_NAME", "mimeType": "MIME_TYPE", "fileContents": "BASE64_ENCODED_FILE" }'次のように置き換えます。
- ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
- 米国のマルチリージョンの場合は
us- - EU のマルチリージョンの場合は
eu- - グローバル ロケーションの場合は
global-
- 米国のマルチリージョンの場合は
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION: データストアのマルチリージョン(
global、us、eu) - APP_ID: Gemini Enterprise アプリの固有識別子。
- SESSION_ID: 前の会話またはクエリのセッション ID。
- FILE_NAME: ファイルの名前。
- MIME_TYPE: ファイルの MIME タイプ(
text/plain、application/pdfなど)。さまざまなメディアタイプの詳細については、メディアタイプをご覧ください。 - BASE64_ENCODED_FILE: ファイルの base64 エンコード表現。
フィールドと返される内容の詳細については、レスポンス本文をご覧ください。
- ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
同じセッションを使用して、
streamAssistメソッドでアップロードしたファイルに関する質問をします。REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \ -d ' { "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID", "fileIds": ["FILE_ID"], "query": { "text": "QUERY_TEXT_3" } }'次のように置き換えます。
- ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。
- 米国のマルチリージョンの場合は
us- - EU のマルチリージョンの場合は
eu- - グローバル ロケーションの場合は
global-
- 米国のマルチリージョンの場合は
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- APP_ID: Gemini Enterprise アプリの固有識別子。
- LOCATION: データストアのマルチリージョン(
global、us、eu) - QUERY_TEXT_3: 検索クエリのテキスト。
- SESSION_ID: 前の会話またはクエリのセッション ID。
- FILE_ID: アシスタントにアップロードしたファイルの ID。
フィールドと返される内容の詳細については、レスポンス本文をご覧ください。
- ENDPOINT_LOCATION-: API リクエストのマルチリージョン。次のいずれかの値を割り当てます。