
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create an Agent
/ 50
Importing a conversational agent file
/ 25
Testing your conversational agent
/ 25
会話型エージェントがより動的な会話が行えるようにすると、Conversational Agents のより高度な機能によって、エージェントの会話がさらに自然になります。このラボでは、Conversational Agents の高度な機能を使用して、会話型エージェントの会話体験を向上させる方法を学びます。確認番号を入力して会話型エージェントでフライトのステータスを確認する機能を追加する方法と、「フライトを予約する」シナリオを新しい [Anything else?] ページに接続して、エージェントがユーザーからの別のリクエストにいつでも対応できるようにする方法を学びます。
このラボを修了した受講者ができるようになることは、次のとおりです。
このラボは、Conversational Agents: bot 構築の基礎で開発した基本的なフライト予約エージェントを基にビルドされているため、インテント、エンティティ、トレーニング フレーズ、フロー、ページなどの Conversational Agents 要素に関する知識があることを前提としています。このラボでは、これらの基本を基に、Conversational Agents の高度な機能を使用して、より高度な会話テクニックを実装します。前のラボを先に受講することをおすすめしますが、Conversational Agents とその基本的な機能と使用方法をすでに理解している場合は、このラボに進んでください。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
このタスクでは、Conversational Agents にログインして、新しいエージェントを作成します。
Dialogflow API と AI Applications API を有効にします。
Google Cloud コンソールに移動し、ナビゲーション メニュー()> [すべてのプロダクトを表示] > [AI] > [AI Applications] に移動します。
[+ アプリを作成] をクリックします。作成するアプリのタイプとして [会話型エージェント] を選択します。
エージェントの作成を求められたら、[Build your own] をクリックします。
エージェントに「Flight Booker - Parameter Manipulation」という名前を付けます。
場所を
タイムゾーンとデフォルトの言語が適切に設定されていることを確認します。[Conversation Start] を [Flow] に設定します。
[作成] をクリックします。エージェントが作成されると、会話型エージェントの UI のデザインと構成が表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、以前のラボから会話型エージェントをインポートします。
上部にある [エージェント] プルダウン メニューから [すべてのエージェントを表示] を選択します。
会話型エージェントの右にあるコンテキスト メニュー(縦に並んだ 3 つの点)をクリックします。
展開されたメニュー オプションから [復元] を選択します。
[Cloud Storage] ラジオボタンを選択します(まだ選択されていない場合)。
URI に「gs://spls/DialogflowCX_agents/gsp929-start-agent.blob
」と入力します。
[復元] をクリックします。
必要に応じて、Conversational Agents の「復元」に関するドキュメントをご覧ください。
これで、以前のラボで完了したすべての機能が備わった会話型エージェントが完成しました。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
[会話型エージェント] > [フロー] に移動し、会話型エージェントに次のページとインテントが表示されていることを確認します。
ページ:
インテント:
次に、ユーザーがエージェントに話しかけてフライトの状況を確認できるようにします。カスタムの正規表現エンティティを追加して、ユーザーの予約参照情報(Passenger Name Record(PNR)番号とも呼ばれます)をキャプチャします。正規表現(Regex)は、PNR の固定形式を簡単に指定できるため選択されました。利点は、エラーチェックが組み込まれていることです。
航空業界全体で、PNR は乗客の基本情報とフライトの詳細を把握するために使用されます。すべての PNR レコードには、英数字(文字と数字)で構成され、5 文字または 6 文字の長さの一意の参照識別子があります。
エンドユーザーが PNR 番号を入力したら、その番号が PNR 番号のルールに準拠していることを検証する必要があります。カスタムの正規表現エンティティを使用してこれを行います。
[管理] タブをクリックします。
左側のメニューで [エンティティ タイプ] をクリックします。
[+ 作成] をクリックします。
エンティティの [表示名] テキスト ボックスに「PNR_Number
」と入力します。
[Regexp entities] チェックボックスをオンにします。
[エンティティ] の下の [値を追加] テキスト ボックスに「^[a-zA-Z0-9]{5,6}$
」と入力します。
この正規表現は実際には何を意味するのでしょうか? 角かっこで囲まれた文字 [a-zA-Z0-9] は、大文字と小文字を区別しない任意の文字または数字に一致することを意味します。{5,6} は、値の長さが 5 文字または 6 文字でなければならないことを意味します。$ は、文字列の末尾にあることをアサートします。
たとえば、PNR は XCr942 または 1f38C のようになります。
ニーズに合わせて少し異なるものを構築する必要がある場合は、オンラインで正規表現のリソースをたくさん見つけることができます。
[保存] をクリックします。
エンティティをクリックすると、次のようになります。
@PNR_Number
カスタム エンティティを作成したので、フライトのステータス確認の会話フローを構成するインテントとページを作成します。
左側のメニューで [インテント] をクリックします。
[+ 作成] をクリックします。
[表示名] に「main.flight_status
」と入力します。
[Training Phrases] セクションに、次のフレーズを追加します。各フレーズを入力するごとに、Enter キーを押します。
フレーズ | アノテーション |
---|---|
PNR K4P89E, what is the flight status? | K4P89E |
My PNR is Z453K9, is it still on time? | Z453K9 |
Is my flight on time? | 該当なし |
What is my flight status? | 該当なし |
I would like to know if my flight is still on time | 該当なし |
Check flight status | 該当なし |
完了すると、次のようになります。
[保存] をクリックします。
次に、main.flight_status インテントを使用して新しいルートで [Start] ページを更新し、後続のページを作成してこの新しい会話フローを完成させます。[Start] ページでインテントとそのルートを追加すると、ユーザーのリクエストが認識され、フローのどこからでも Conversational Agents が正しく反応できるようになります。
[ビルド] をクリックして、フロー全体を表示します。
[Start] ページをクリックします。
右上の [ルート] の右にある [+] をクリックします。
[インテント] プルダウン メニューから [main.flight_status] を選択します。
[移行] セクションまで下にスクロールします。
[ページ] ラジオボタンが有効になっていることを確認します。
[ページ] プルダウン メニューから [+ 新しいページ] を選択します。
[Page name] ボックスに「Check flight status
」と入力します。
[保存] をクリックします。
必要に応じてルート構成ペインを閉じ、フローペインを再度表示します。
main.flight_status インテントが [Start] ページのルートリストに表示されていることに注目してください。フローペインには、[Start] ページから [Check flight status] ページに続く矢印があります。
[Check flight status] ページをクリックします。
[パラメータ] の右側にある [+] をクリックします。
[表示名] に「pnr_num
」と入力します。
[エンティティ タイプ] のプルダウンから [@PNR_Number] を選択します。
まだ有効になっていない場合は、クリックして [必須] を有効にします。
パラメータは次のようになります。
[Initial prompt fulfillment] セクションまで下にスクロールします。
[Agent responses] で、ダイアログの回答を追加し、[Agent dialogue] に「What is your flight booking reference please?
」と入力します。
[保存] をクリックします。
必要に応じて [パラメータ] 構成ペインを閉じて、フローペインを再度表示します。
[Check flight status] ページの [ルート] の右側にある [+] をクリックします。
[条件] セクションまで下にスクロールします。
[パラメータ] に「$page.params.status
」と入力します。
[Operand] で [=
] が選択されていることを確認します。
[値] に「FINAL
」と入力します。
条件は次のようになります。
条件式「$page.params.status = FINAL」は、ユーザーからパラメータが正常に取得されたら、このページでこれ以上行うことはないことを Conversational Agents に伝えます。
[移行] セクションまで下にスクロールします。
[ページ] ラジオボタンが有効になっていることを確認します。
[ページ] プルダウンで [+ 新しいページ] を選択します。
[Page name] に「Confirm flight status
」と入力します。
[保存] をクリックします。
[Confirm flight status] ページをクリックします。
[Edit fulfillment] をクリックします。
[Agent responses] で、ダイアログのレスポンスを追加し、[Agent dialogue] にメッセージを入力します。
[保存] をクリックします。
[ルート] の右にある [+] をクリックします。この画面を表示するには、右側のペインの構成ウィンドウを閉じる必要がある場合があります。
[インテント] プルダウンから [confirmation.yes] を選択します。
[フルフィルメント] セクションまで下にスクロールします。
[Agent responses] で、ダイアログの回答を追加し、[Agent dialogue] に「Our agents will be in touch soon for your request to amend your scheduled flight
」と入力します。
[移行] セクションまで下にスクロールします。
[ページ] ラジオボタンが有効になっていることを確認します。
[ページ] プルダウンで [+ 新しいページ] を選択します。
[Page name] に「Anything else?
」と入力します。
[保存] をクリックします。
別のルートを追加します。今回は、[インテント] プルダウンから [confirmation.no] を選択します。
このルートの [Agent responses] でダイアログ レスポンスを追加し、「Great, we look forward to having you fly with us soon.
」と入力します。
作成した同じ [Anything else?] ページに移行先を追加します。
[保存] をクリックします。
[Anything else?] ページをクリックします。
クリックして [Entry fulfillment] を開きます。
[Agent responses] で、ダイアログのレスポンスを追加し、[Agent dialogue] に「Have you any further queries for me?
」と入力します。
[保存] をクリックします。
[+] をクリックして [Anything else?] ページからルートを追加します。
[インテント] プルダウンから [confirmation.yes] を選択します。
[フルフィルメント] の [Agent responses] に「Please let me know how I can be of service.
」と入力します。
[ページ] ラジオボタンが有効になっていることを確認します。
[移行] セクションの [ページ] で [Start ページ] を選択します。
[保存] をクリックします。
別のルートを追加します。今回は confirmation.no インテントを指定します。
「No worries, I'm glad to be of assistance today. Goodbye.
」を [フルフィルメント] の [Agent responses] に追加します。
移行先として [セッションを終了] ページを選択します。
[保存] をクリックします。
[Toggle Simulator] をクリックしてテスト シミュレータを開きます。
予想される結果を含むテストデータを定義しておくのが理想的です。テストデータを整理する方法の一つは、チャットボットの会話で見るように、会話の進行順に整理することです。
以下のテストデータと同様のテストをエージェントに対して実行します。
対象 | メッセージ |
---|---|
ユーザー | Check flight status |
エージェント | What is your flight booking reference please? |
ユーザー | 1234 |
エージェント | What is your flight booking reference please? |
ユーザー | abcdefghijk |
エージェント | What is your flight booking reference please? |
ユーザー | P34K09 |
エージェント | Looking up your flight reference P34K09, ... |
ユーザー | no |
エージェント | Great, we look forward to having you fly with us soon. Have you any further... |
ユーザー | no |
エージェント | No worries, I'm glad to be of assistance today. Goodbye. |
テストデータでは、有効な PNR 番号 P34K09 を使用する前に、意図的に 1234(短すぎる)と abcdefghijk(長すぎる)を使用していることに注意してください。定義した正規表現により、ユーザーが入力した最初の 2 つの値は無効な PNR 番号とみなされます。そのため、エージェントはパラメータのステータス条件(FINAL)を満たして次のページに移行できるまで、質問を続けます。
シミュレータ ペインに会話に関するデータが表示されていることに注目してください。たとえば、ページのフロー、一致したインテント、パラメータとその入力値などです。
リセット アイコンをクリックして、現在のテストデータをクリアします。同じテストを繰り返す場合(リサイクル アイコンを使用)を除き、テストを 1 回完了するたびにこれを行うことをおすすめします。
フローが [Anything else?] ページに到達したときに、No
と回答する代わりに、Yes
と回答します。
エージェントのテストをもう一度行います。今回はネガティブ テストです。次に例を示します。
対象 | メッセージ |
---|---|
ユーザー | Check flight status |
エージェント | What is your flight booking reference please? |
ユーザー | PN34K5 |
エージェント | Looking up your flight reference PN34K5, ... |
ユーザー | no |
エージェント | Great, we look forward to having you fly with us soon. Have you any further... |
ユーザー | yes |
エージェント | Please let me know how I can be of service |
ユーザー | check flight status |
エージェント | Looking up your flight reference PN34K5, ... |
pnr_num
パラメータをリセット(無効化)する必要があります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
[Anything else?] ページをクリックします。
[Entry fulfillment] フィールドをクリックして、[Fulfillment configuration] ペインを開きます。
[Parameter presets] セクションまでスクロールします。
[パラメータを追加] をクリックします。
[Parameter presets] の [パラメータ] 名に「pnr_num
」と入力します。
[値] に「null
」と入力します。
[保存] をクリックします。
テストを再度実行して、すべてのパラメータが null にリセットされていることを確認します。これにより、会話が再開されたときにエージェントが新しい値を再プロンプトします。
[Anything else?] ページは次のようになります。
[Anything else?] ページは、このラボの開始時にインポートしたフライト予約の会話フローで再利用できます。期待される成果は、ユーザーがクエリの最後に会話の継続を希望した場合、会話型エージェントが会話を継続できることです。
[Confirm trip] ページをクリックします。
[confirmation.yes] ルートをクリックします。
[Anything else?] ページに移行先を追加します。
[保存] をクリックします。
check flight status テストを再度実行して、pnr_num
パラメータが null にリセットされていることを確認します。これにより、ユーザーが別のフライトを確認したいときに、エージェントが新しい値をリプロンプトします。
フライト予約のテストシナリオを最後まで実行して、フライトを予約します。フローの「Anything else?」という部分に達したら、「Yes
」と答えて、新しいフライトの予約を開始します。
フライトの運行状況を確認するシナリオと同様に、フライト予約のパラメータを null にリセットする必要があります。
[Anything else?] ページをクリックします。
[Entry fulfillment] をクリックします。
pnr_num
と同様に、次のパラメータを追加して null に設定します。
パラメータ | 値 |
---|---|
departure_city | null |
destination_city | null |
departure_date | null |
return_date | null |
passenger_name | null |
[保存] をクリックします。
情報が正しいかどうかを尋ねる質問に「いいえ
」と答えたときに、すべてのパラメータが null にリセットされることを確認するために、テストを再度実行します。
理解度チェック
会話型エージェントをエクスポートして自分のプロジェクトで使用する場合は、次の手順を行います。
上部にある [エージェント] プルダウンから [すべてのエージェントを表示] を選択します。
その他メニュー(縦に 3 つ並んだ点 )をクリックし、[エクスポート] を選択します。
[ダウンロード] ラジオボタンをクリックします。
[エクスポート] をクリックします。
正規表現を使用して PNR 番号のパラメータ検証を行い、ユーザーが新しい会話フローを開始したときにパラメータを null にリセットする方法を学びました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 4 月 24 日
ラボの最終テスト日: 2025 年 4 月 24 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください