会話でデータを分析する
このドキュメントでは、BigQuery で会話を作成、編集、削除する方法について説明します。会話とは、選択したデータ エージェントまたはデータソース(テーブル、ビュー、グラフなど)との永続化されたチャットです。
会話とは、データ エージェントまたはデータソースとの永続化されたチャットです。テーブル フィールド名を指定したり、データのフィルタ条件を定義したりすることなく、「売上」や「最も人気がある」といった一般的な言葉を使用してデータ エージェントにマルチパートの質問をすることができます。PDF などのオブジェクトにあるデータについて質問することもできます。エージェントは、レスポンスを構築するときに、クエリを実行するデータソースを特定し、テーブル パーティションや検索インデックスなどの最適化を利用できます。
チャットで返信されたレスポンスには、次の機能があります。
- 質問に対する回答(テキスト、コード、画像(マルチモーダル))。回答には、サポートされている BigQuery AI 関数と ML 関数を含めることができます。
- 必要に応じてグラフを生成します。
- 結果の背後にあるエージェントの推論。
- 会話に関するメタデータ(使用されたエージェントやデータソースなど)。
データソースとの直接会話を作成すると、Conversational Analytics API は、データ エージェントから提供されるコンテキストと処理の指示を使用せずにユーザーからの質問を解釈します。そのため、直接会話の結果は正確さが低い可能性があります。正確さが求められる場合は、データ エージェントを使用してください。
BigQuery で会話を作成して管理するには、Google Cloud コンソールを使用します。詳細については、会話でデータを分析するをご覧ください。
始める前に
-
BigQuery、Gemini Data Analytics、Gemini for Google Cloud API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。
必要なロール
会話を作成するには、次のいずれかの Conversational Analytics API IAM ロールが必要です。
- 共有されているデータ エージェントとの会話を表示および作成するには、プロジェクト レベルで Gemini データ分析 Data Agent User(
roles/geminidataanalytics.dataAgentUser)ロールと Gemini for Google Cloud User(roles/cloudaicompanion.user)ロールが必要です。 - 直接会話を作成するには、Gemini データ分析 Stateless Chat User(
roles/geminidataanalytics.dataAgentStatelessUser)ロールが必要です。
また、次の状況では、次のロールが必要です。
- データ エージェントがデータセットをナレッジソースとして使用する場合は、データセットに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer)ロールが必要です。 - データ エージェントが SQL クエリを実行する場合は、プロジェクトに対する BigQuery ジョブユーザー(
roles/bigquery.jobUser)ロールが必要です。 - データ エージェントがテーブルまたはビューをナレッジソースとして使用する場合は、テーブルまたはビューに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer)ロールが必要です。 - テーブルで列レベルのアクセス制御が使用されている場合は、きめ細かい読み取り(
roles/datacatalog.categoryFineGrainedReader)ロールが必要です。このロールは、ポリシータグの構成の一環としてプリンシパルに割り当てられます。詳細については、列レベルのアクセス制御で使用されるロールをご覧ください。 - データテーブルで行レベルのアクセス制御が使用されている場合は、そのテーブルに対するロールレベルのアクセス ポリシーを通じてアクセス権が付与されている必要があります。詳細については、行レベルのアクセス ポリシーを作成または更新するをご覧ください。
- データテーブルでデータ マスキングが使用されている場合は、適切なデータポリシーを通じてマスクされた読み取り(
roles/bigquerydatapolicy.maskedReader)ロールが付与されている必要があります。詳細については、マスクされたデータに対してクエリを実行するためのロールをご覧ください。 - データセットと会話するには、プロジェクトに対する Data Catalog 閲覧者(
roles/datacatalog.viewer)が必要です。
データ エージェントで使用されるソースデータ テーブルに対する適切なロールがない場合、データ エージェントとチャットすると、次のエラーが返されます。
Schema_Resolution: Access Denied
ベスト プラクティス
会話分析は、ユーザーの質問に答えるために、ユーザーに代わってクエリを自動的に実行します。クエリ費用が増加する可能性がある次の要因を考慮してください。
- 大きなテーブルサイズ
- クエリでのデータ結合の使用
- クエリ内の AI 関数への頻繁な呼び出し
データ エージェントとの会話を作成する
データ エージェントとの会話を作成するには、まずデータ エージェントを作成して公開します。他のユーザーが共有したエージェントとの会話を開始することもできます。
Google Cloud コンソールで既存のデータ エージェントとの会話を作成する手順は次のとおりです。
BigQuery の [エージェント] ページに移動します。
[エージェント カタログ] タブを選択します。
[マイ エージェント] セクションまたは [組織内の他のユーザーが共有] セクションで、チャットするエージェントのエージェント カードをクリックします。
新しいチャット パネルが開きます。
[質問する] フィールドに質問を入力し、モードを選択します。
- 高速(デフォルト): ほとんどの質問に最適です。
- 思考: 詳細な推論。
Gemini が提案した質問のいずれかをクリックして開始することもできます。
send_spark [送信] をクリックします。
Conversational Analytics API は質問を処理し、結果を返します。
データソースとの直接会話を作成する
これらの BigQuery データソース(ナレッジソースとも呼ばれます)との直接会話を作成できます。直接会話を作成すると、Conversational Analytics API は、データ エージェントから提供されるコンテキストと処理の指示を使用せずにユーザーからの質問を解釈します。
次のデータソースとの会話を作成できます。
[エージェント] ページを使用してデータソースと会話する
Google Cloud コンソールの [エージェント] ページを使用してデータソースとの会話を作成する手順は次のとおりです。
[エージェント] ページからデータソースとの直接会話を作成する手順は次のとおりです。
BigQuery の [エージェント] ページに移動します。
[会話] タブで、[新しい会話] をクリックします。
[データとチャットする] ペインで、[ナレッジ ソース] タブをクリックします。データソースがリストに表示されない場合は、検索できます。
1 つ以上のデータソースを選択し、[チャット] をクリックします。
BigQuery Studio を使用してデータソースと会話する
BigQuery Studio を使用してデータソースとの直接的な会話を作成するには、次のいずれかのオプションを選択します。
データセット、テーブル、ビュー、グラフについて AI と会話する
データセット、テーブル、ビュー、グラフとの直接会話を作成する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
左側のペインで、 [エクスプローラ] をクリックします。
[エクスプローラ] ペインでプロジェクトを開き、[データセット] をクリックして、データセットを選択します。[データセット] ページが開きます。
データセットをクリックして開きます。
データセットについて質問するには、chat_spark チャットをクリックします。
データセット内のテーブルまたはビューとチャットする手順は次のとおりです。
[概要] タブで、[テーブル] をクリックします。
[テーブル ID] 列で、テーブルまたはビューへのリンクをクリックします。
chat_spark [チャット] をクリックします。
グラフとチャットする手順は次のとおりです。
[概要] タブで、[グラフ] をクリックします。
[グラフ ID] 列で、グラフへのリンクをクリックします。
chat_spark [チャット] をクリックします。
データセット
データセットとの会話を作成すると、データソースを明示的に指定しなくても、データに関する質問をすることができます。データセットとの会話を作成すると、データ エージェントはそのデータセット内のすべてのテーブルにアクセスできます。質問すると、データ エージェントは関連するテーブルを探し、必要に応じて結合して回答を生成します。
クエリ結果と会話する
クエリを実行すると、結果を使用して新しい会話を作成できます。データソースは、通常 24 時間保持されるキャッシュに保存された結果の一時テーブルです。キャッシュに保存された結果の有効期限が切れると、データに関する質問はできなくなります。
クエリ結果から会話を作成する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery Studio] ページに移動します。
[search_insights] クエリエディタのタブに切り替えるか、arrow_drop_down > [SQL クエリ] をクリックします。
SQL クエリを入力し、[play_circle 実行] をクリックします。
[結果] タブで、[chat_spark チャット] をクリックします。
データソースとの会話方法
データソースの [チャット] オプションをクリックすると、会話を開始できます。会話を行うには、次の操作を行います。
[質問する] フィールドに質問を入力し、モードを選択します。
- 高速(デフォルト): ほとんどの質問に最適です。
- 思考: 詳細な推論。
send_spark [送信] をクリックします。
Conversational Analytics API は質問を処理し、結果を返します。データに適している場合は、レスポンスで画像、グラフ、表、その他の可視化が提供されます。
質問に対する回答を提供するためにデータ エージェントが実行した各ステップを確認するには、回答の [思考を表示] オプションを開きます。
結果の計算方法に関する情報を確認するには、 [算出方法] をクリックします。
[Summary] セクションには、生成されたクエリとクエリ結果が表示されます。必要に応じて、クエリエディタでクエリを開くことができます。
会話からデータ エージェントを作成する
テーブルまたはビューとの会話からデータ エージェントを作成できます。データセットとの会話からカスタム エージェントを作成することはできません。
会話からデータ エージェントを作成する手順は次のとおりです。
会話の [詳細] ペインで、[エージェントを作成] をクリックします。
[エディタ] セクションの [エージェント名] フィールドに、データ エージェントのわかりやすい名前(
Q4 sales dataやUser activity logsなど)を入力します。[エージェントの説明] フィールドに、データ エージェントの説明を入力します。適切な説明を付けておくと、エージェントの機能や使用するデータがわかり、チャット相手とするデータ エージェントを選択する際に役立ちます(例:
Ask questions about customer orders and revenue)。[ナレッジ ソース] セクションで、[ナレッジ ソース] のエントリを確認します。既存のデータソースをカスタマイズすることも、[ソースを追加] をクリックしてデータソースを追加することもできます。データソースがリストに表示されない場合は、検索できます。
変更を加えたら、[下書きを保存] をクリックします。
[公開] をクリックします。
会話を管理する
[エージェント] ページで会話を開いたり、名前を変更したり、削除したりできます。また、BigQuery Studio エクスプローラで会話を管理することもできます。
既存の会話を開く
Google Cloud コンソールで、BigQuery の [エージェント] ページに移動します。
[会話] タブの会話リストで、開く会話をクリックします。
会話の名前を変更する
Google Cloud コンソールで、BigQuery の [エージェント] ページに移動します。
[会話] タブの会話リストで、名前を変更する会話をクリックします。
[アクションを表示] > [名前を変更] をクリックします。
[会話の名前を変更する] ダイアログの [会話名] フィールドに、会話の新しい名前を入力します。
[名前を変更] をクリックします。
会話を削除する
会話内の質問の結果は、基盤となるデータソースが削除されても保持されます。会話とそのすべての結果を削除する手順は次のとおりです。
Google Cloud コンソールで、BigQuery の [エージェント] ページに移動します。
[会話] タブの会話リストで、削除する会話をクリックします。
[アクションを表示] > [削除] をクリックします。
[会話を削除しますか?] ダイアログで、[削除] をクリックします。
会話を 180 日間更新しないと、BigQuery は自動的に会話を削除します。
BigQuery Studio エクスプローラを使用して会話を管理する
BigQuery Studio エクスプローラを使用して会話を管理します。この会話リストは、会話の検索、開始、作成を一元的に行うためのものです。会話 ID をコピーしたり、会話リストを更新したりすることもできます。
会話を管理する手順は次のとおりです。
BigQuery Studio の [エクスプローラ] ページに移動します。
[エクスプローラ] ペインで、プロジェクト名を開きます。
[会話] をクリックします。
- 会話リストをフィルタするには、フィルタ フィールドにプロパティ名または値を入力します。
- 会話を開くには、 [アクションを表示] > [開く] をクリックします。
- 会話 ID をコピーするには、 [アクションを表示] > [ID をコピー] をクリックします。
- 会話を作成するには、メニューバーで [会話を作成] をクリックします。
- リストを更新するには、メニューバーの [更新] をクリックします。
次のステップ
- BigQuery の会話型分析について学習する。
- Conversational Analytics API について学習する。
- データ エージェントを作成する。