このページでは、Gemini Enterprise の回答とフォローアップによる検索について説明します。また、メソッド呼び出しを使用して実装する方法についても説明します。
回答とフォローアップによる検索は、answer メソッドに基づいています。answer メソッドには、複雑なクエリを処理する機能など、重要な追加機能もあります。
answer メソッドの特徴
answer メソッドの主な機能は次のとおりです。
複雑なクエリに対する回答を生成する機能。たとえば、answer メソッドでは、次のような複合クエリを複数の小さなクエリに分割して、より良い結果を返すことができます。これにより、より良い回答が得られます。
- 「2024 年の Google Cloud と Google 広告のそれぞれの収益は?」
- 「Google は創業から何年後に 10 億米ドルの収益を達成しましたか?」
各ターンで answer メソッドを呼び出して、マルチターンの会話で検索と回答の生成を組み合わせる機能。
search メソッドと組み合わせて検索レイテンシを短縮する機能。search メソッドと answer メソッドを別々に呼び出し、検索結果と回答を異なる iframe に異なるタイミングでレンダリングできます。つまり、ユーザーに検索結果(10 個の青いリンク)をミリ秒単位で表示できます。検索結果を表示する前に、回答が生成されるのを待つ必要はありません。
回答とフォローアップの機能は、クエリ、検索、回答の 3 つのフェーズに分けることができます。
回答と検索を使用するタイミング
Gemini Enterprise には、アプリのクエリに使用される 2 つの方法があります。両者には異なる機能がありますが、重複する機能もあります。
answer メソッドは、次の場合に使用します。
検索結果の AI 生成の回答(またはサマリー)が必要な場合。
マルチターン検索(コンテキストを保持してフォローアップの質問を可能にする検索)が必要である。
search メソッドは、次の場合に使用します。
生成された回答ではなく、検索結果のみが必要。
10 件を超える検索結果(「青色のリンク」)を返す必要がある場合。
次のいずれかがある。
- 独自のエンベディング
- 類義語またはリダイレクトの制御
- ファセット
- ユーザーの国コード
次の場合は、answer メソッドと search メソッドを併用します。
10 件を超える検索結果を返す必要があり、かつ、生成された回答が必要な場合。
レイテンシの問題があり、生成された回答が返される前に検索結果を迅速に返して表示したい。
クエリフェーズの機能
回答とフォローアップ機能は、自然言語クエリ処理をサポートしています。
このセクションでは、クエリの言い換えと分類のさまざまなオプションについて説明します。
クエリの言い換え
クエリの言い換えはデフォルトでオンになっています。この機能は、検索結果を改善するために、クエリを言い換える最適な方法を自動的に選択します。この機能は、言い換えを必要としないクエリにも対応できます。
複雑なクエリを複数のクエリに分割し、同期サブクエリを実行します。
たとえば、複雑なクエリを 4 つの小さく単純なクエリに分割します。
ユーザー入力 複雑なクエリから作成されたサブクエリ Andie Ram と Arnaud Clément は、どのような仕事と趣味が共通していますか? - Andie Ram の職業
- Arnaud Clément の職業
- Andie Ram の趣味
- Arnaud Clément hobby
マルチターンのクエリを合成して、フォローアップの質問をコンテキスト認識型でステートフルにします。
例: 各ターンのユーザー入力から合成されたクエリは次のようになります。
ユーザー入力 合成されたクエリ ターン 1: 学校用ノートパソコン 学校用ノートパソコン ターン 2: Mac 以外 Mac 以外の学校用ノートパソコン ターン 3: 大画面かつワイヤレス キーボードとマウスも必要 ワイアレス キーボードとマウス付きの、Mac 以外の大画面の学校用ノートパソコン ターン 4: それにパソコン用のバックパック ワイアレス キーボードとマウスとバックパック付きの、Mac 以外の大画面の学校用ノートパソコン 長いクエリを簡素化して、取得を改善します。
たとえば、長いクエリを単純なクエリに短縮します。
ユーザー入力 簡素化されたクエリ ウェブサイトの [カートに追加] ボタンが正しく機能しない理由を調べています。ユーザーがボタンをクリックしても、商品がカートに追加されず、エラー メッセージが表示されるようです。コードを確認しましたが、正しいようです。問題が何なのかわかりません。この問題のトラブルシューティングを手伝っていただけますか? ウェブサイトで [カートに追加] ボタンが機能しません。 マルチステップの推論を実行する
マルチステップ推論は ReACT(理由 + 行動)パラダイムに基づいており、LLM が自然言語推論を使用して複雑なタスクを解決できるようにします。 デフォルトでは、最大ステップ数は 5 です。
例:
ユーザー入力 回答を生成する 2 つのステップ Google は創業から何年後に 10 億米ドルの収益を達成しましたか? ステップ 1:
[思考]: Google の創立日を知る必要があります。そうすれば、それ以降の収益をクエリできます。
[行動] 検索: Google はいつ設立されましたか?[検索結果の確認]:「1998 年」
ステップ 2:
[思考]: 次は、1998 年以降の Google の年間収益を調べて、初めて 10 億ドルを超えたのはいつかを確認する必要があります。
[行動] 検索: 1998 年以降の Google の収益
[検索結果の確認] 1998 年の Google の収益、1999 年の Google の収益
[回答]: Google は、2003 年に 10 億米ドル以上の収益を達成しました [1]、1998 年の創業から 5 年後です [2]。
クエリ分類
クエリ分類オプションは、敵対的なクエリと回答を求めていないクエリを特定します。デフォルトでは、クエリ分類オプションはオフになっています。
敵対的クエリと回答を求めていないクエリの詳細については、敵対的クエリを無視するとサマリーを求めていないクエリを無視するをご覧ください。
検索フェーズの機能
検索の場合、answer メソッドには search メソッドと同じオプションがあります。次に例を示します。
フィルタを適用して、検索を特定のドキュメントに限定する。詳細については、構造化データまたは非構造化データのカスタム検索をフィルタするをご覧ください。
検索から返されたドキュメントを昇格または降格させるブースト条件を指定する。詳細については、検索結果をブーストするをご覧ください。
回答フェーズの機能
回答フェーズでは、検索結果から回答が生成されたときに、search メソッドと同じ機能を有効にできます。例:
回答内の各文のソースを示す引用を取得します。詳しくは、引用を含めるをご覧ください。
プロンプトのプリアンブルを使用して、回答のトーンとスタイル、詳細度などをカスタマイズします。詳細については、カスタム プリアンブルを指定するをご覧ください。
回答の生成に使用するモデルを選択します。詳細については、回答生成モデルのバージョンとライフサイクルをご覧ください。
敵対的または回答を求めていないと分類されたクエリを無視するかどうかを選択します。
敵対的クエリと回答を求めていないクエリの詳細については、敵対的クエリを無視するとサマリーを求めていないクエリを無視するをご覧ください。回答を求めていないクエリは、サマリーを求めていないクエリとも呼ばれます。
search メソッドでは利用できない回答フェーズの機能は次のとおりです。
各主張(生成された回答内の文)のサポートスコアの取得。 サポートスコアは、[0,1] の範囲の浮動小数点値で、主張がデータストア内のデータにおいてどの程度根拠があるかを示します。詳細については、グラウンディング サポート スコアを返すをご覧ください。
回答の集計サポートスコアを取得します。サポート スコアは、回答がデータストア内のデータにおいてどの程度根拠があるかを示します。詳細については、グラウンディング サポート スコアを返すをご覧ください。
根拠のある回答のみを返します。特定のサポート スコアのしきい値を満たす回答のみを返すように選択できます。詳細については、根拠のある回答のみを表示するをご覧ください。
クエリにパーソナライズ情報を追加して、個々のユーザーに合わせて回答をカスタマイズできるようにします。詳細については、回答をカスタマイズするをご覧ください。
テキストに加えてグラフや画像を含むマルチモーダル回答を受け取るには、次のオプションを使用できます。
回答に含まれるデータをプロットしたグラフやグラフを含む回答を取得する。詳細については、回答のグラフを生成するをご覧ください。
データストアから画像を取得しています。データストアに画像が含まれている場合、回答メソッドは回答で画像を返すことができます。引用がリクエストされた場合、データストアの画像が参照として返されることもあります。詳細については、データストアから既存のイメージを取得するをご覧ください。
検索と回答(基本)
次のコマンドは、answer メソッドを呼び出して、生成された回答と、ソースへのリンクを含む検索結果のリストを返す方法を示しています。
このコマンドは、必要な入力のみを表示します。オプションはデフォルトのままにします。
REST
検索して生成された回答付きの結果を取得する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"} }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。たとえば、「BigQuery と Spanner のデータベースを比較してください」などです。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
クエリフェーズのコマンド
このセクションでは、answer メソッド呼び出しのクエリフェーズにオプションを指定する方法について説明します。
検索と回答(言い換えが無効)
次のコマンドは、answer メソッドを呼び出して、生成された回答と検索結果のリストを返す方法を示しています。言い換えオプションが無効になっているため、回答が前の回答とは異なる場合があります。
REST
クエリの言い換えを適用せずに検索して、生成された回答を含む結果を取得する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "queryUnderstandingSpec": { "queryRephraserSpec": { "disable": true } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。たとえば、「BigQuery と Spanner のデータベースを比較してください」などです。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
検索と回答(最大ステップ数を指定)
次のコマンドは、answer メソッドを呼び出して、生成された回答と検索結果のリストを返す方法を示しています。言い換えステップの数が増えているため、回答が前の回答とは異なっています。
REST
最大 5 回の言い換えステップで検索して、生成された回答を含む結果を取得する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "queryUnderstandingSpec": { "queryRephraserSpec": { "maxRephraseSteps": MAX_REPHRASE } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。たとえば、「BigQuery と Spanner のデータベースを比較してください」などです。MAX_REPHRASE
: 言い換えステップの最大数。最大値は5
です。 設定されていない場合、または1
未満に設定されている場合、値はデフォルトの1
になります。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
クエリ分類による検索と回答
次のコマンドは、answer メソッドを呼び出して、クエリが敵対的、回答を求めていない、またはどちらでもないかを問い合わせる方法を示しています。
レスポンスにはクエリの分類タイプが含まれますが、回答自体は分類の影響を受けません。 クエリタイプに応じて回答の動作を変更する場合は、回答フェーズで変更できます。敵対的クエリを無視するとサマリーを求めていないクエリを無視するをご覧ください。
REST
クエリが敵対的なものか、回答を求めていないものかを判断するには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "queryUnderstandingSpec": { "queryClassificationSpec": { "types": ["QUERY_CLASSIFICATION_TYPE"] } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。例: 「hello」。QUERY_CLASSIFICATION_TYPE
: 識別するクエリタイプ(ADVERSARIAL_QUERY
、NON_ANSWER_SEEKING_QUERY
、または両方)。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
検索フェーズのコマンド: 検索して検索結果のオプション付きで回答する
このセクションでは、answer メソッド呼び出しの検索フェーズ部分のオプション(返されるドキュメントの最大数、ブースト処理、フィルタリングなどのオプション)を指定する方法と、独自の検索結果を指定して回答を取得する方法について説明します。
次のコマンドは、answer メソッドを呼び出して、検索結果を返す方法に関するさまざまなオプションを指定する方法を示しています。(検索結果は回答とは関係ありません)。
REST
検索結果が返される内容と方法に関連するさまざまなオプションを設定するには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "searchSpec": { "searchParams": { "maxReturnResults": MAX_RETURN_RESULTS, "filter": "FILTER", "boostSpec": BOOST_SPEC, "orderBy": "ORDER_BY", "searchResultMode": SEARCH_RESULT_MODE } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。たとえば、「BigQuery データベースと Spanner データベースを比較してください」などです。MAX_RETURN_RESULTS
: 返す検索結果の数。デフォルト値は 10 です。FILTER
: フィルタは、クエリ対象のドキュメントを指定します。ドキュメントのメタデータがフィルタ仕様を満たしている場合、ドキュメントはクエリされます。フィルタ構文などの詳細については、構造化データまたは非構造化データのカスタム検索をフィルタするをご覧ください。BOOST_SPEC
: ブースト仕様を使用すると、検索結果で特定のドキュメントをブーストできます。これにより、回答に影響する可能性があります。 ブースト仕様の構文など、詳細については、検索結果をブーストするをご覧ください。ORDER_BY
: ドキュメントが返される順序。ドキュメントは、Document オブジェクトのフィールドで並べ替えることができます。orderBy
式では大文字と小文字が区別されます。 このフィールドが認識できない場合、INVALID_ARGUMENT
が返されます。SEARCH_RESULT_MODE
: 検索結果モード(DOCUMENTS
またはCHUNKS
)を指定します。詳細については、ドキュメントを解析してチャンクすると ContentSearchSpec をご覧ください。このフィールドは、API の v1alpha バージョンでのみ使用できます。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
回答フェーズのコマンド
このセクションでは、answer
メソッド呼び出しをカスタマイズする方法について説明します。必要に応じて、次のオプションを組み合わせることができます。
敵対的クエリと回答を求めていないクエリを無視する
次のコマンドは、answer メソッドを呼び出すときに、敵対的クエリや回答を求めていないクエリに回答しないようにする方法を示しています。
REST
敵対的または回答を求めていないクエリへの回答をスキップするには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "ignoreAdversarialQuery": true, "ignoreNonAnswerSeekingQuery": true } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
関連する回答のみを表示する
Gemini Enterprise は、結果がクエリとどの程度関連するかを評価できます。十分に関連性があると判断される結果がない場合、関連性のない結果や関連性が低い結果から回答を生成する代わりに、フォールバック回答「We do not have a summary for your query.
」を返すよう選択できます。
次のコマンドは、answer メソッドを呼び出したときに、関連性のない結果の場合にフォールバック回答を返す方法を示しています。
REST
関連する結果が見つからない場合にフォールバック回答を返すには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "ignoreLowRelevantContent": true } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
グラウンディング サポート スコアを返す
次のコマンドは、回答と主張に対するグラウンディング サポート スコアを返す方法を示しています。
REST
各主張(回答内の文)のサポートスコアと回答の集計サポートスコアを返すには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "groundingSpec": { "includeGroundingSupports": true, } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。
根拠のある回答のみを表示する
次のコマンドは、コーパス(データストア内の情報)において根拠があると見なされる回答のみを返す方法を示しています。グラウンディングが不十分な回答は除外されます。
グラウンディング サポート スコアに対して低レベルまたは高レベルのしきい値を選択します。回答がそのレベルを満たしているか、それを超えている場合にのみ、回答が返されます。2 つのフィルタしきい値付きと、しきい値なしを試して、ユーザーにとって最適な結果をもたらすフィルタレベルを判断できます。
REST
サポートスコアのしきい値を満たす場合にのみ回答を返すには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "groundingSpec": { "filteringLevel": "FILTER_LEVEL" } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。FILTER_LEVEL
: グラウンディング サポート スコアに基づいて回答をフィルタリングするための列挙型。オプションはFILTERING_LEVEL_LOW
とFILTERING_LEVEL_HIGH
です。filteringLevel
が含まれていない場合、回答にサポートスコア フィルタは適用されません。
回答モデルを指定する
次のコマンドは、回答の生成に使用されるモデル バージョンを変更する方法を示しています。
サポートされているモデルについては、回答生成モデルのバージョンとライフサイクルをご覧ください。
REST
デフォルト モデルとは異なるモデルを使用して回答を生成する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "modelSpec": { "modelVersion": "MODEL_VERSION", } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。MODEL_VERSION
: 回答の生成に使用するモデルのバージョン。詳細については、回答生成モデルのバージョンとライフサイクルをご覧ください。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
カスタム プリアンブルを指定する
次のコマンドは、生成された回答のプリアンブルの設定方法を示しています。プリアンブルには、回答をカスタマイズするための自然言語の指示が含まれています。長さ、詳細レベル、出力のスタイル(「シンプル」など)、出力の言語、回答の焦点、形式(表、箇条書き、XML など)などのカスタマイズをリクエストできます。たとえば、「10 歳の子どもに説明するように説明して」のようなプリアンブルを使用できます。
プリアンブルは、生成される回答の品質に大きな影響を与える可能性があります。プリアンブルに記述する内容と適切なプリアンブルの例については、カスタム プリアンブルについてをご覧ください。
REST
デフォルト モデルとは異なるモデルを使用して回答を生成する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "promptSpec": { "preamble": "PREAMBLE", } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。PREAMBLE
: 回答をカスタマイズするための自然言語による指示。たとえば、show the answer format in an ordered list
やgive a very detailed answer
を試します。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
引用を含める
次のコマンドは、回答に引用を含めるようリクエストする方法を示しています。
REST
デフォルト モデルとは異なるモデルを使用して回答を生成する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "includeCitations": INCLUDE_CITATIONS } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。INCLUDE_CITATIONS
: 回答に引用メタデータを含めるかどうかを指定します。デフォルト値はfalse
です。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
回答の言語コードを設定する
次のコマンドは、回答の言語コードを設定する方法を示しています。
REST
デフォルト モデルとは異なるモデルを使用して回答を生成する手順は次のとおりです。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "answerLanguageCode": "ANSWER_LANGUAGE_CODE" } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。ANSWER_LANGUAGE_CODE
: 回答の言語コード。BCP47: 言語を識別するためのタグで定義されている言語タグを使用します。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
回答をパーソナライズする
ユーザーに関する特定の情報(プロフィール内のデータなど)がある場合は、endUserMetadata
オブジェクトでその情報を指定して、クエリ結果をユーザーに合わせてカスタマイズできます。
たとえば、ユーザーが携帯電話のアップグレードに関する情報を検索している場合、現在の携帯電話のモデルや携帯通信プランなどのプロフィール情報に基づいて、生成された回答をパーソナライズできます。
クエリを実行するユーザーの個人情報を追加し、その個人情報を考慮した回答を生成するには、次の操作を行います。
次の 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:answer" \ -d '{ "query": { "text": "QUERY"}, "endUserSpec": { "endUserMetadata": [ { "chunkInfo": { "content": "PERSONALIZED_INFO", "documentMetadata": { "title": "INFO_DESCRIPTION"} } } ] } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。PERSONALIZATION_INFO
: クエリを実行しているユーザーに固有の情報を含む文字列。たとえば、This customer has a Pixel 6 Pro purchased over a period of 24-months starting 2023-01-15. This customer is on the Business Plus International plan. No payment is due at this time.
この文字列の長さの上限は 8,000 文字です。INFO_DESCRIPTION
: パーソナライズ情報を簡単に説明する文字列(例:Customer profile data, including model, plan, and billing status.
)。モデルは、クエリに対するカスタマイズされた回答を生成する際に、この説明とパーソナライズ情報の両方を使用します。
回答のグラフを生成する
answer メソッドは、グラフを生成して、クエリの回答の一部として返すことができます。
たとえば、「利用可能なデータを使用して、中小企業の支払いの前年比成長率を年ごとにプロットして」のように、回答にグラフを含めるよう具体的にリクエストできます。十分なデータが存在すると判断された場合は、グラフが返されます。通常、グラフとともに回答テキストが返されます。
また、グラフを作成するのに十分なデータがある場合、クエリでグラフが明示的にリクエストされていなくても、回答メソッドはグラフを返すことができます。たとえば、「2010 年から 2020 年の 10 年間で、安全な飲料水へのアクセス増加に関連する HDI スコアの改善は何でしたか?」
回答ごとに生成されるグラフは 1 つのみです。ただし、グラフが複合グラフで、他の小さなグラフが含まれている場合があります。複合グラフの例:
制約事項
クエリは英語で入力する必要があります。
一般的な障害シナリオ
回答とともに画像が返されるとは限りません。十分なデータがない場合は、図を生成できません。
その他の障害シナリオには、コード実行の失敗やタイムアウトなどがあります。どちらかの場合は、クエリを言い換えてもう一度お試しください。
始める前に
生成されたグラフをリクエストするクエリを実行する前に、次の操作を行います。
Gemini 2.0 以降のモデルを使用していることを確認します。モデルについては、回答生成モデルのバージョンとライフサイクルをご覧ください。
テーブルや画像が多数含まれるドキュメントを含む非構造化データストアがある場合は、レイアウト パーサーを有効にします。これは必須ではありませんが、結果の品質が向上します。
手順
REST
次のように answer メソッドを呼び出して、データストア内のデータから生成されたグラフを含む回答を返します。
次の curl コマンドを実行します。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "model_spec": { "model_version": "MODEL_VERSION" }, "multimodalSpec": { "imageSource": "IMAGE_SOURCE" } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含む英語の自由形式の文字列。MODEL_VERSION
: モデル バージョンgemini-2.0-flash-001/answer_gen/v1
以降。詳細については、回答生成モデルのバージョンとライフサイクルをご覧ください。IMAGE_SOURCE
: 生成されたグラフを回答に含めることをリクエストする列挙型(FIGURE_GENERATION_ONLY
)、または生成されたグラフかデータストアの既存の画像のいずれかを回答に含めることをリクエストする列挙型(ALL_AVAILABLE_SOURCES
)。
データストアから既存の画像を取得する
データストアの画像を回答と引用の参照に含めるように選択できます。データストアは、レイアウト パーサーが有効になっている非構造化データストアである必要があります。
imageSource
が CORPUS_IMAGE_ONLY
または ALL_AVAILABLE_SOURCES
の場合、answer メソッドはデータストアから画像を適宜取得できます。ただし、この機能をオンにしても、画像が常に返されるわけではありません。
回答ごとに 1 枚の画像(最大)が生成されます。引用には複数の画像を含めることができます。
制限事項
使用しているアプリが非構造化データストアに接続されている必要があります。画像はウェブサイトや構造化データストアから返されません。
クエリは英語で入力する必要があります。
レイアウト パーサーによる画像アノテーションは、データストアに適用する必要があります。レイアウト パーサーについては、ドキュメントを解析してチャンクするをご覧ください。
手順
REST
次のように answer メソッドを呼び出して、データストアの画像を含む回答を返します。
次の curl コマンドを実行します。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:answer" \ -d '{ "query": { "text": "QUERY"}, "answerGenerationSpec": { "model_spec": { "model_version": "MODEL_VERSION" }, includeCitations: true, "multimodalSpec": { "imageSource": "IMAGE_SOURCE" } } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: クエリするアプリの ID。QUERY
: 質問または検索クエリを含む英語の自由形式の文字列。MODEL_VERSION
: モデル バージョンgemini-2.0-flash-001/answer_gen/v1
以降。詳細については、回答生成モデルのバージョンとライフサイクルをご覧ください。IMAGE_SOURCE
: 回答にデータストアの画像を含めるようリクエストする列挙型(CORPUS_IMAGE_ONLY
)、または回答にデータストアの画像または生成されたグラフを含めることができる列挙型(ALL_AVAILABLE_SOURCES
)。
フォローアップの質問のコマンド
フォローアップはマルチターン クエリです。フォローアップ セッションの最初のクエリの後、後続の「ターン」では以前のやり取りが考慮されます。フォローアップでは、answer メソッドで関連する質問を提示することもできます。ユーザーは、独自のフォローアップの質問を入力する代わりに、提示された質問を選択できます。
前のセクションで説明した回答とフォローアップの機能(引用、フィルタ、セーフサーチ、特定の種類のクエリの無視、プリアンブルを使用した回答のカスタマイズなど)はすべて、フォローアップとともに適用できます。
フォローアップ セッションの例
フォローアップ付きセッションの例を次に示します。メキシコでの休暇について調べたいとします。
ターン 1:
ユーザー: メキシコで休暇を過ごすのに最適な時期はいつですか?
フォローアップ付きの回答: メキシコで休暇を過ごすのに最適な時期は乾季です。これは 11 月から 4 月までです。
ターン 2:
ユーザー: 為替レートを教えてください。
フォローアップ付きの回答: 1 米ドルは約 17.65 メキシコペソに相当します。
ターン 3:
お客様: 12 月の平均気温はどれくらいですか?
フォローアップ付きの回答: 平均気温は華氏 70~78 度です。 カンクンの平均気温は華氏 77 度までです。
フォローアップがないと、「為替レートは?」という質問に答えることはできません。通常の検索では、メキシコの為替レートを知りたいことがわからないためです。同様に、フォローアップなしでは、特にメキシコの温度を示すために必要なコンテキストがありません。
関連する質問の例
「メキシコで休暇を過ごすのに最適な時期はいつですか?」という質問をするときに、質問への回答に加えて、回答とフォローアップでは、「メキシコで休暇を過ごすのに最も安い月はいつですか?」や「メキシコの観光シーズンはいつですか?」など、質問する可能性のある他の質問を提示できます。
関連する質問の機能が有効になると、質問はレスポンスで文字列として返されます。
セッションについて
Gemini Enterprise でのフォローアップの仕組みを理解するには、セッションについて理解する必要があります。
セッションは、ユーザーが提供したテキスト クエリと Gemini Enterprise が提供したレスポンスで構成されます。
このようなクエリとレスポンスのペアは、ターンと呼ばれることもあります。上記の例では、2 番目のターンは「為替レートはいくらですか?」と「1 米ドルは約 17.65 メキシコペソに相当します」で構成されています。
セッションはアプリとともに保存されます。アプリでは、セッションはセッション リソースで表されます。
クエリ メッセージとレスポンス メッセージに加えて、セッション リソースには次のものも含まれます。
一意の名前(セッション ID)。
状態(進行中または完了)。
ユーザー疑似 ID(ユーザーを追跡する訪問者 ID)。プログラムで割り当てることができます。
開始時刻と終了時刻。
ターン(クエリと回答のペア)。
セッション情報を保存してレスポンスを取得する
コマンドラインを使用して、検索レスポンスと回答を生成し、各クエリとともにセッションに保存できます。
REST
コマンドラインを使用してセッションを作成し、ユーザーの入力からレスポンスを生成する手順は次のとおりです。
セッションを保存するアプリを指定します。
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/sessions" \ -d '{ "userPseudoId": "USER_PSEUDO_ID" }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。USER_PSEUDO_ID
: 検索訪問者をトラッキングするための固有識別子。たとえば、これは HTTP Cookie で実装できます。これにより、1 台のデバイス上の訪問者を一意に識別できます。
コマンドの例と結果
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" "https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/collections/default_collection/engines/my-app/sessions" -d '{ "userPseudoId": "test_user" }'
{ "name": "projects/123456/locations/global/collections/default_collection/engines/my-app/sessions/16002628354770206943", "state": "IN_PROGRESS", "userPseudoId": "test_user", "startTime": "2024-09-13T18:47:10.465311Z", "endTime": "2024-09-13T18:47:10.465311Z" }JSON レスポンスの
name:
フィールドの末尾にある数値をセッション ID としてメモします。次の例の場合、ID は5386462384953257772
です。 この値は次のステップで必要になります。回答を生成して、アプリのセッションに追加します。
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:answer" \ -d '{ "query": { "text": "QUERY"}, "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID", "searchSpec":{ "searchParams": {"filter": "FILTER"} } }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。QUERY
: 質問または検索クエリを含むフリーテキスト文字列。SESSION_ID
: ステップ 1 で作成したセッションの ID。これは、手順 2 でメモしたname:
フィールドの末尾の数字です。セッションでは、すべてのターンで同じセッション ID を使用します。FILTER
: フィルタ式を使用して検索をフィルタリングするためのテキスト フィールド。デフォルト値は空文字列です。 フィルタの作成方法は、メタデータを含む非構造化データ、構造化データ、ウェブサイトのデータのいずれを使用しているかによって異なります。詳細については、構造化データまたは非構造化データのカスタム検索をフィルタするをご覧ください。
コマンドの例と結果
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" "https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/collections/default_collection/engines/my-app/servingConfigs/default_search:answer" -d '{ "query": { "text": "Compare bigquery with spanner database?"}, "session": "projects/123456/locations/global/collections/default_collection/engines/my-app/sessions/16002628354770206943", }'
{ "answer": { "name": "projects/123456/locations/global/collections/default_collection/engines/my-app/sessions/16002628354770206943/answers/4861507376861383072", "state": "SUCCEEDED", "answerText": "BigQuery and Spanner are both powerful tools that can be used together to handle transactional and analytical workloads. Spanner is a fully managed relational database optimized for transactional workloads, while BigQuery is a serverless data warehouse designed for business agility. Spanner provides seamless replication across regions in Google Cloud and processes over 1 billion requests per second at peak. BigQuery analyzes over 110 terabytes of data per second. Users can leverage federated queries to read data from Spanner and write to a native BigQuery table. \n", "steps": [ { "state": "SUCCEEDED", "description": "Rephrase the query and search.", "actions": [ { "searchAction": { "query": "Compare bigquery with spanner database?" }, "observation": { "searchResults": [ { "document": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/ecc0e7547253f4ca3ff3328ce89995af", "uri": "https://cloud.google.com/blog/topics/developers-practitioners/how-spanner-and-bigquery-work-together-handle-transactional-and-analytical-workloads", "title": "How Spanner and BigQuery work together to handle transactional and analytical workloads | Google Cloud Blog", "snippetInfo": [ { "snippet": "Using Cloud \u003cb\u003eSpanner\u003c/b\u003e and \u003cb\u003eBigQuery\u003c/b\u003e also allows customers to build their \u003cb\u003edata\u003c/b\u003e clouds using Google Cloud, a unified, open approach to \u003cb\u003edata\u003c/b\u003e-driven transformation ...", "snippetStatus": "SUCCESS" } ] }, { "document": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/d7e238f73608a860e00b752ef80e2941", "uri": "https://cloud.google.com/blog/products/databases/cloud-spanner-gets-stronger-with-bigquery-federated-queries", "title": "Cloud Spanner gets stronger with BigQuery-federated queries | Google Cloud Blog", "snippetInfo": [ { "snippet": "As enterprises compete for market share, their need for real-time insights has given rise to increased demand for transactional \u003cb\u003edatabases\u003c/b\u003e to support \u003cb\u003edata\u003c/b\u003e ...", "snippetStatus": "SUCCESS" } ] }, { "document": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/e10a5a3c267dc61579e7c00fefe656eb", "uri": "https://cloud.google.com/blog/topics/developers-practitioners/replicating-cloud-spanner-bigquery-scale", "title": "Replicating from Cloud Spanner to BigQuery at scale | Google Cloud Blog", "snippetInfo": [ { "snippet": "... \u003cb\u003eSpanner data\u003c/b\u003e into \u003cb\u003eBigQuery\u003c/b\u003e for analytics. In this post, you will learn how to efficiently use this feature to replicate large tables with high throughput ...", "snippetStatus": "SUCCESS" } ] }, ... { "document": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/8100ad36e1cac149eb9fc180a41d8f25", "uri": "https://cloud.google.com/blog/products/gcp/from-nosql-to-new-sql-how-spanner-became-a-global-mission-critical-database", "title": "How Spanner became a global, mission-critical database | Google Cloud Blog", "snippetInfo": [ { "snippet": "... SQL \u003cb\u003evs\u003c/b\u003e. NoSQL dichotomy may no longer be relevant." The \u003cb\u003eSpanner\u003c/b\u003e SQL query processor, while recognizable as a standard implementation, has unique ...", "snippetStatus": "SUCCESS" } ] } ] } } ] } ] }, "session": { "name": "projects/123456/locations/global/collections/default_collection/engines/my-app/sessions/16002628354770206943", "state": "IN_PROGRESS", "userPseudoId": "test_user", "turns": [ { "query": { "queryId": "projects/123456/locations/global/questions/741830", "text": "Compare bigquery with spanner database?" }, "answer": "projects/123456/locations/global/collections/default_collection/engines/my-app/sessions/16002628354770206943/answers/4861507376861383072" } ], "startTime": "2024-09-13T18:47:10.465311Z", "endTime": "2024-09-13T18:47:10.465311Z" }, "answerQueryToken": "NMwKDAjFkpK3BhDU24uZAhIkNjZlNDIyZWYtMDAwMC0yMjVmLWIxMmQtZjQwMzA0M2FkYmNj" }セッション内の新しいクエリごとに手順 3 を繰り返します。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
データストアからセッションを取得する
次のコマンドは、get
メソッドを呼び出してデータストアからセッションを取得する方法を示しています。
REST
データストアからセッションを取得する手順は次のとおりです。
次の curl コマンドを実行します。
curl -X GET -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/sessions/SESSION_ID"
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。SESSION_ID
: 取得するセッションの ID。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
アプリからセッションを削除する
次のコマンドは、delete
メソッドを呼び出して、データストアからセッションを削除する方法を示しています。
デフォルトでは、60 日を超えるセッションは自動的に削除されます。 ただし、特定のセッションを削除する場合(たとえば、機密コンテンツが含まれている場合など)は、この API 呼び出しを使用して削除します。
REST
アプリからセッションを削除するには、次の操作を行います。
次の curl コマンドを実行します。
curl -X DELETE -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/sessions/SESSION_ID"
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。SESSION_ID
: 削除するセッションの ID。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
セッションを更新する
セッションを更新する理由はさまざまです。たとえば、次のいずれかを行うためです。
- セッションを完了としてマークする
- あるセッションのメッセージを別のセッションに統合する
- ユーザーの疑似 ID を変更する
次のコマンドは、patch
メソッドを呼び出してデータストア内のセッションを更新する方法を示しています。
REST
アプリからセッションを更新する手順は次のとおりです。
次の curl コマンドを実行します。
curl -X PATCH \ -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/sessions/SESSION_ID?updateMask=state" \ -d '{ "state": "NEW_STATE" }'
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。SESSION_ID
: 更新するセッションの ID。NEW_STATE
: 状態の新しい値(IN_PROGRESS
など)。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
すべてのセッションを一覧表示する
次のコマンドは、list
メソッドを呼び出して、データストア内のセッションを一覧表示する方法を示しています。
REST
アプリのセッションを一覧表示する手順は次のとおりです。
次の curl コマンドを実行します。
curl -X GET \ -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/sessions"
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
ユーザーのセッションを一覧表示する
次のコマンドは、list
メソッドを呼び出して、ユーザーまたはサイト訪問者に関連付けられたセッションを一覧表示する方法を示しています。
REST
ユーザーまたは訪問者に関連付けられているセッションを一覧表示するには、次の操作を行います。
次の curl コマンドを実行します。
curl -X GET \ -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/sessions?filter=userPseudoId=USER_PSEUDO_ID"
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。USER_PSEUDO_ID
: セッションを一覧表示するユーザーの疑似 ID。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
ユーザーと状態のセッションを一覧表示する
次のコマンドは、list
メソッドを呼び出して、特定のユーザーの特定の状態のセッションを一覧表示する方法を示しています。
REST
オープンまたはクローズしていて、特定のユーザーまたは訪問者に関連付けられているユーザーのセッションを一覧表示するには、次の操作を行います。
次の curl コマンドを実行します。
curl -X GET -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/sessions?filter=userPseudoId=USER_PSEUDO_ID%20AND%20state=STATE"
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクトの ID。APP_ID
: アプリの ID。USER_PSEUDO_ID
: セッションを一覧表示するユーザーの疑似 ID。STATE
: セッションの状態:STATE_UNSPECIFIED
(クローズ、または不明)またはIN_PROGRESS
(オープン)。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Gemini Enterprise Python API のリファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。