arrow_back

会話型エージェント: bot ビルドの基本

ログイン 参加
700 以上のラボとコースにアクセス

会話型エージェント: bot ビルドの基本

ラボ 1時間 30分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP002

Google Cloud セルフペース ラボのロゴ

概要

会話型エージェントは、会話型エージェントの設計にシンプルで視覚的な bot ビルド アプローチを提供します。bot デザイナーは、bot のビルドプロセス全体をより明確に把握できるようになり、複数のデザイナーが同じエージェント ビルドで簡単にコラボレーションできるようになりました。会話型エージェントは、エージェントが使用および理解できる多くの言語をサポートしていますが、このラボでは英語のみを使用します。

このラボでは、会話型エージェントを使用して会話型エージェントをビルドします。

前提条件

会話型 AI の基本的なコンセプトを全般的に理解している必要があります。文字起こしサンプルを読んで、クライアントの文字起こしがどのようなものかを確認してください。エージェントを作成する最初のステップは、ユースケースと具体的なビジネス要件を理解するために、クライアントの文字起こしやその他のコンテキスト データを読み込むことです。

設定

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Dialogflow API を有効にする

  1. コンソールの検索フィールドに「Dialogflow API」と入力します。
  2. [Dialogflow API] タイルを選択します。
  3. [有効にする] ボタンをクリックします。

タスク 1. エージェントを作成する

  1. 会話型エージェント コンソールにアクセスし、 という名前の Cloud プロジェクトを選択します。

    プロジェクト名がハイライト表示された会話型エージェント コンソール

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 API を有効にする

  2. [エージェントを作成] > [独自にビルド] をクリックします。このページが表示されない場合は、ブラウザを更新してください。

    [エージェントを作成] ボタンがハイライト表示されている [エージェント] ページ
  3. エージェントに「フライト予約」という名前を付けます。

  4. [場所] プルダウンから [グローバル] を選択します。

  5. [作成] をクリックします。

    エージェントの作成ウィンドウ。表示名と場所のフィールドが入力済み
  6. エージェントを作成したら、[設定] > [(エージェント)設定] > [全般] > [ロギング設定] に移動し、[Cloud Logging を有効にする] と [会話履歴を有効にする] のオプションの横にあるチェックボックスをオンにします。このエージェントのログが生成されます。

  7. [保存] をクリックします。

    [エージェント設定] の [全般] タブページで [Stackdriver Logging を有効にする] オプションが選択されている

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

    エージェントを作成する

    理解度チェック

タスク 2. インテント

インテントは、エンドユーザーがエージェントとやり取りする理由です(例: 何かを注文する)。ユーザーが移動したいトピックごとにインテントを作成できます。

インテントは、ページやフローをまたいで再利用できます。各インテントは、エンドユーザーが通常尋ねるトレーニング フレーズによって定義されます。これらにアノテーションを付けたり、「ラベル付け」したりして、到着都市や出発日などの特定のパラメータを収集できます。

会話型エージェントは、インテントのトレーニング フレーズを追加すると、アノテーションを提案します。また、手動でアノテーションを付けて、エンドユーザーがエージェントとやり取りする際に抽出したいパラメータ値を収集することもできます。

推奨: インテントを再利用しやすく、メンテナンスを容易にするために、インテントには明確でわかりやすい名前を付けます。

インテントの形式: category.some_description

書式設定の例:

  • コアインテント: main.book_a_flight
  • 一般的なインテントだがコアではない: supplemental.flight_emissions
  • 再利用可能なインテント: confirmation.yesconfirmation_noredirect.live_agent

インテントを作成する

  1. 左側のナビゲーション パネルで [アラート] をクリックします。

  2. [管理] > [インテント] > [+ 作成] をクリックします。

    [インテント] タブで [作成] ボタンがハイライト表示されている
  3. 表示名: main.book_a_flight

  4. [トレーニング フレーズ] ヘッダーの下で、次の各フレーズを [会話型エージェント] に追加し、各フレーズの後に Enter をクリックします。

    • フライトを予約
    • 来月のサンフランシスコ行きのフライトを予約できますか?
    • 特典ポイントを使って 10 月にミラノから出発するフライトを予約したい
    • 来週家族が来るので、往復チケットを 6 枚予約する必要があります
    • 6 月 2 日~ 30 日の台湾発ドバイ行きのビジネスクラス チケット 4 枚
    • 土曜日にロサンゼルスからサンノゼまでのフライトが必要です
    • 8 月 10 日のサンフランシスコ空港からマイアミ国際空港への片道チケットを予約します
    • メキシコシティからコロンビアのメデジンまでのチケットを 4 月 10 日から 4 月 15 日で予約してください
    • 母へのサプライズ旅行を予約したいのですが、5 月 10 日から 5 月 25 日までコスタリカへの旅行を手配していただけますか?
    • 今週末のニューヨーク行きの格安フライトはありますか?
    • 8 月 8 日にモントリオールからいとこを呼びたい
    • 7 月 4 日にパナマシティ行きを 2 席予約したい
    • 結婚記念日にクリスマスをシアトルで過ごしたい
    注: モデルの精度を高めるには、短い回答と長い回答のオプションを含む 20 ~ 50 個のトレーニング フレーズを使用することをおすすめします。
  5. [保存] をクリックします。

    [インテント] タブで [保存] ボタンがハイライト表示されている 注: トレーニング フレーズの CSV ファイルを作成して会話型エージェントにアップロードすることで、トレーニング フレーズを一括で追加することもできます。

タスク 3. フローとページ

フローは、これらのトピックと、それに関連する会話パスを定義するために使用されます。すべてのエージェントには、デフォルトの開始フローと呼ばれるフローが 1 つあります。単純なエージェントであればこのフローのみで十分ですが、

より複雑なエージェントでは追加のフローが必要になる場合があります。さまざまな開発チームのメンバーに、これらのフローのビルドと保守を担当させることができます。

デフォルトの開始フロー図

すべてのフローは ページから始まり、その後は 1 ページ以上の異なるページで構成され、特定のフロー内の会話を処理します。エンドユーザーが現在表示しているページは「アクティブなページ」とみなされます。各ページは、エンドユーザーから必要な情報を収集するように構成できます。

デフォルトの開始フローからビルド

エージェントが最初にアクセスするページは、デフォルトの開始フローと呼ばれます。ページには、ルーティング ロジック、レスポンス(フルフィルメント)、インテントが一致しない場合(不一致)や入力なし(エージェントが時間内にレスポンスを受け取らない場合)の特定の処理が保存されます。

  1. [ビルド] をクリックします。

  2. [スタートページ] をクリックしてページを開きます。

    [ビルド] ボタンと [開始] ボタンがハイライト表示された [デフォルトの開始フロー] ページ
  3. スタートページの展開されたオプションから、[ルート] の横にある [+] アイコンを選択します。

    ルートとプラスアイコンがハイライト表示されている
  4. プルダウンからインテント [main.book_a_flight] を選択し、[保存] をクリックします。

    [ルート] ウィンドウで [main.book_a_flight] インテントが選択され、[保存] ボタンがハイライト表示されている
  5. 次に、[ルート] セクションで [main.book_a_flight] ルートをクリックします。[ルート] セクションで、[main.book_a_flight] ルートがハイライト表示されている

  6. [トランジション] まで下にスクロールし、プルダウンから [+ 新しいページ] を選択します。

  7. ページに「チケット情報」という名前を付けて、[保存] をクリックします。

    [ページ名] フィールドがハイライト表示され、チケット情報が入力されている
  8. ウィンドウを閉じてフローのメイン画面に戻ると、新しい [チケット情報] ページが [開始] ページに接続されていることがわかります。

    フロー図が表示されたメインディスプレイ

    フローの冒頭に挨拶が追加され、[main.book_a_flight] インテントが一致すると、[チケット情報]ページに進むようになります。[チケット情報] ページでは、エンドユーザーからパラメータを収集して、フライトを予約できるようにします。

タスク 4. エンティティとパラメータ

  • エンティティは、エンドユーザーから抽出したい情報のタイプを定義します。たとえば、フライトの目的地となる都市などです。会話型エージェントの組み込みの「システム エンティティ」を使用して、日付、時刻、色、メールアドレスなどを照合する。

  • システム エンティティは「拡張」して、デフォルトのシステム値の一部ではない値を含めることもできます。完全にカスタマイズされたエンティティを作成する必要がある場合は、ビジネスに固有でシステム エンティティとして見つからないデータをマッチングするためのカスタム エンティティ タイプを作成することで、それを行うことができます。

  • パラメータは、セッション中にエンドユーザーが指定した情報です(日付、時刻、目的地の都市など)。各パラメータには名前エンティティ タイプがあります。snake_case(小文字で単語間にアンダースコア)で記述

最初のパラメータ セットを作成する

次に、エンティティを使用して、エンドユーザーから必要なパラメータを抽出します。

  1. [チケット情報] ページをクリックし、[パラメータ] の横にある [+] をクリックしてフライトデータを収集します。

  2. [表示名] フィールドに「departure_city」と入力します。

  3. [エンティティ タイプ] プルダウンから [@sys.geo-city] を選択します。

  4. 初期プロンプトのフルフィルメント > エージェントのレスポンス > + ダイアログのレスポンスを追加 > エージェントのダイアログまでスクロールし、[What city would you like the flight to depart from?] を追加します。

  5. [保存] をクリックします。

    [初期プロンプトのフルフィルメント] セクションで [エージェントのダイアログ] フィールドにデータが入力されている
  6. このウィンドウを閉じて、別のパラメータを作成します。

  7. [パラメータ] の横にある + をもう一度クリックして、次の名前、エンティティ タイプ、エージェントがエンドユーザーにプロンプトを表示する方法で、4 つのパラメータを 1 つずつ作成します。

    表示名 エンティティ タイプ エージェント ダイアログ:
    departure_date @sys.date 出発の月と日をお知らせください。
    destination_city @sys.geo-city 目的地の都市をお知らせください。
    return_date @sys.date 帰りのフライトの月日をお知らせください。
    passenger_name @sys.any 搭乗者の氏名は何ですか?

    完了すると、次のように表示されます。

    追加されたパラメータのリストが表示された [パラメータ] ページ

    注: パラメータがリストされている順序によって、フライト予約エージェントが各パラメータを尋ねる順序が決まります。パラメータを上下にドラッグして、順序を簡単に変更できます。

    理解度チェック

タスク 5. 条件

エージェントがフライト予約に必要な 5 つのパラメータを収集したら、次に作成するルーティングの条件を使用して、エンドユーザーを別のページにルーティングします。

  1. パラメータ ウィンドウを閉じて、[チケット情報] ページに戻ります。

  2. 下にスクロールして [ルート] を見つけ、その横にある + 記号をクリックします。

  3. [条件] > [条件ルール] まで下にスクロールし、[1 つ以上のルールに一致(OR)] を選択します。

  4. [パラメータ] フィールドに「$page.params.status」と入力します。

  5. [オペランド] プルダウンで [=] 記号を選択します。

  6. [] フィールドに「"FINAL"」と入力します(二重引用符も必ず含めてください)。

  7. [保存] をクリックします。

    [条件] セクションで [パラメータ] フィールドがハイライト表示されている

    理解度チェック

タスク 6. フルフィルメント

次に、エンドユーザーの予約パラメータが 5 つすべて収集されたときにエンドユーザーに伝えるレスポンスを追加します。これらの応答はフルフィルメントと呼ばれます。

  1. 先ほど作成した条件から少し下にスクロールして、[フルフィルメント] セクションを見つけます。

  2. [エージェントのレスポンス] で [ダイアログのレスポンスを追加] をクリックし、[エージェントのダイアログ] を選択して、次のように入力します。ご回答ありがとうございます。チケットの空き状況を確認して [追加] をクリックします。

  3. [保存] をクリックします。

    (このページを開いたまま、次のステップで情報を確認します。)

    [フルフィルメント] セクションで、[エージェントのダイアログ] フィールドにデータが入力されていることがハイライト表示されている

タスク 7. 情報の確認

回答(またはフルフィルメント)を提示したら、収集した旅行情報(パラメータ)が正しい場合にエンドユーザーに繰り返して表示される新しいページへの遷移を作成する必要があります。

  1. 移行に到達するまで、下にスクロールし続けます(先ほど作成したフルフィルメントを通過します)。

  2. [ページ フィールド] で、プルダウンを選択して [+ 新しいページ] を選択します。

  3. [ページ名] というフィールドに「旅行を確定」と入力します。

    [トランジション] セクションで、[ページ名] フィールドに値が入力され、ハイライト表示されている
  4. [保存] をクリックします。

  5. ウィンドウを閉じます。

  6. 3 ページのフローを確認します。

    フロー図が表示されたメインディスプレイ。フローポイントには、開始、チケット情報、旅行の確認が含まれます

エンドユーザーから収集したパラメータを繰り返して伝える

セッション パラメータは、エンドユーザーから以前に収集された情報を保存し、セッション全体で有効です。また、エンドユーザーに情報を折り返し伝えるのにも役立ちます。

たとえば、エージェントに「$session.params.passenger_name 様、情報をご提供いただきありがとうございます。」のように乗客の名前を折り返させることができます。エンドユーザーには「John Day 様、情報をご提供いただきありがとうございます。」と表示されます。

形式は次のとおりです。

  • 接頭辞: $session.params.
  • エンティティ名: passenger_name

出発都市を参照する場合は、$session.params.departure_city となります。

  1. [ビルド] ビューから、[旅行の確認] ページ > [フルフィルメントの内容] > [フルフィルメントを編集] フィールドをクリックします。

    [フルフィルメントを編集] フィールドがハイライト表示された [旅行の確認] ウィンドウ
  2. 5 つのパラメータを使用しているため、次のセッション パラメータを使用してユーザーに繰り返すことができます。[エージェントのダイアログ] セクションに次のテキストを貼り付け、[追加] をクリックします。

    $session.params.passenger_name 様が $session.params.departure_city から $session.params.destination_city まで $session.params.departure_date に出発し $session.params.return_date に帰着するフライトでよろしいでしょうか? エージェントの会話フィールドにデータが入力されたフルフィルメント ウィンドウ
  3. [保存] をクリックします。

  4. 会話型エージェントが収集したセッション パラメータをエンドユーザーに繰り返して伝えるときの表示は次のようになります。

    収集されたセッション パラメータを表示する会話型エージェント

肯定的な確認ルート

  1. ウィンドウを閉じて、[旅行の確認] ページに戻ります。[ルート] の横にある [+] をクリックします。

    プラスボタンがハイライト表示された旅行の確認ページ
  2. [インテント] プルダウンをクリックし、[+ 新しいインテント] をクリックします。

    [インテント] プルダウン メニューで [+ 新しいインテント] オプションがハイライト表示されている
  3. [表示名] に「confirmation.yes」と入力します。

  4. [トレーニング フレーズ] に「はい」と入力して Enter キーを押します(「正解」、「うん」などのフレーズを追加して、このインテントの NLU マッチングを改善できます)。

    [トレーニング フレーズ] セクションのテキスト フィールドに「はい」と「正しい」が入力されている
  5. [保存] をクリックします。

  6. 保存したら、[フルフィルメント] セクションまで下にスクロールし、[エージェントのレスポンス] で [ダイアログのレスポンスを追加] をクリックして [エージェントのダイアログ] を選択し、Great, your flight is booked! と入力します。[追加] をクリックします。

    エージェントのダイアログ フィールドがハイライト表示され、「Great, your flight is booked!」というメッセージが表示されている。
  7. [保存] をクリックします。

  8. [ルート] の横にある戻る矢印をクリックします。

    戻る矢印がハイライト表示されている

否定的な確認ルート

次に、エンドユーザーが情報が間違っていると言った場合に、フライトのパラメータを再収集するようにルーティングするロジックを追加します。

  1. [ルート] セクションで、[ルートを追加] を選択します。

    [ルートを追加] ボタンがハイライト表示されている
  2. [インテント] プルダウンから [+ 新しいインテント] を選択します。

  3. [表示名] フィールドでインテントに confirmation.no という名前を付けます。

    [表示名] フィールドがハイライト表示され、「confirmation.no」が入力されている
  4. [トレーニング フレーズ] セクションまでスクロールし、「いいえ」と入力して Enter キーを押します。

    ハイライト表示されていないトレーニング フレーズ セクション
  5. [保存] をクリックします。

  6. 次に、[トランジション] > [ページ] セクションまでスクロールし、プルダウンから [チケット情報] を選択します。

    [ページ] プルダウン メニューで [チケット情報] が選択された状態の [移行] セクション
注: これは、ユーザーにフライト情報を再度入力してもらうためのものです。
  1. [パラメータ プリセット] までスクロールして、[パラメータを追加] をクリックします。次の 5 つの値を入力し、引用符なしnull に割り当てます。

    注: 値列の引用符を削除して、「null」と入力する必要があります。これは、エンドユーザーから収集したパラメータを削除するためのものです。
    パラメータ
    departure_city null
    destination_city null
    departure_date null
    return_date null
    passenger_name null
    5 つのパラメータのそれぞれに null 値が設定されたパラメータ プリセット セクション

    これは、エンドユーザーから以前に収集された値を削除し、新しい値を送信できるようにするためのものです。このステップを忘れると、bot で無限ループが発生する可能性があります。

  2. [保存] をクリックします。

  3. ウィンドウを閉じてビルドビューに戻ると、3 つのページがどのように流れるかを確認できます。最後のページでは、[旅行を確認] ページと [チケット情報] ページの間に 2 つの矢印があります。これは、confirmation.no インテントがリンクバックされているためです。

    フロー図を表示するビューを作成する

    理解度チェック

タスク 8. テスト

  1. エージェントが意図したとおりに動作するかどうかをテストするには、画面右上にある [シミュレータの切り替え] をクリックします。

  2. [開始リソース] プルダウンで [デフォルトの開始フロー] を選択します。

  3. エンドユーザーになったつもりでエージェントとやり取りしてください。メインフローを進むと、作成したページ、インテント、トランジションが表示されます。

    パラメータ コレクションの配置方法に応じて、次のサンプル ダイアログを入力してみてください。

    • 一部屋予約したいのですが。
    • オースティン
    • 明日
    • ボストン
    • 次の金曜日
    • ミッキーマウス
    • はい

    これにより、エージェントを介した取引が成功します。これは一般に「ハッピーパス」と呼ばれます。

    エージェントのテストを [エージェントをテストする] コンソールで行った例を次に示します。

    シミュレータ フローの例を使用してエージェント コンソールをテストする

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 エージェントをテストする

タスク 9. エージェントのエクスポート

1 つのプロジェクト用にエージェントをビルドしたら、それをエクスポートして別のプロジェクトで使用できます。エージェントをエクスポートして保存し、今後のラボで使用したり、自分の個人プロジェクトでビルドを続けたりできます。

  1. 会話型エージェント コンソールの上部にある [エージェント] プルダウンで、[すべてのエージェントを表示] をクリックします。

    [エージェント] プルダウンが展開され、[すべてのエージェントを表示] ボタンがハイライト表示されている
  2. エージェント リスト画面で、エージェントの横にあるコンテキスト メニューをクリックし、[エクスポート] をクリックします。

    展開されたコンテキスト メニューで [エクスポート] ボタンがハイライト表示されている
  3. [エージェントのエクスポート] 画面で、[ダウンロード] を選択してローカル ファイルにエクスポートし、[エクスポート] をクリックします。

    [エージェントをエクスポート] ページで [ダウンロード] オプションが選択され、ハイライト表示されている

お疲れさまでした

会話型エージェントをビルドし、基本的なコンセプトを理解しました。

次のステップと詳細情報

マニュアルの最終更新日: 2025 年 2 月 26 日

ラボの最終テスト日: 2025 年 2 月 24 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。