arrow_back

Conversational Agents: パラメータの操作

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

Conversational Agents: パラメータの操作

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

GSP949

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

概要

会話型エージェントがより動的な会話が行えるようにすると、Conversational Agents のより高度な機能によって、エージェントの会話がさらに自然になります。このラボでは、Conversational Agents の高度な機能を使用して、会話型エージェントの会話体験を向上させる方法を学びます。確認番号を入力して会話型エージェントでフライトのステータスを確認する機能を追加する方法と、「フライトを予約する」シナリオを新しい [Anything else?] ページに接続して、エージェントがユーザーからの別のリクエストにいつでも対応できるようにする方法を学びます。

目標

このラボを修了した受講者ができるようになることは、次のとおりです。

  • 正規表現を使用してパラメータの検証を行う(例: PNR 番号)。
  • ユーザーが新しい会話フローを開始したときに、パラメータを null にリセットする。

前提条件

このラボは、Conversational Agents: bot 構築の基礎で開発した基本的なフライト予約エージェントを基にビルドされているため、インテント、エンティティ、トレーニング フレーズ、フロー、ページなどの Conversational Agents 要素に関する知識があることを前提としています。このラボでは、これらの基本を基に、Conversational Agents の高度な機能を使用して、より高度な会話テクニックを実装します。前のラボを先に受講することをおすすめしますが、Conversational Agents とその基本的な機能と使用方法をすでに理解している場合は、このラボに進んでください。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

タスク 1. Conversational Agents の利用を開始する

このタスクでは、Conversational Agents にログインして、新しいエージェントを作成します。

  1. Dialogflow APIAI Applications API を有効にします。

  2. Google Cloud コンソールに移動し、ナビゲーション メニューナビゲーション メニュー アイコン)> [すべてのプロダクトを表示] > [AI] > [AI Applications] に移動します。

  3. [+ アプリを作成] をクリックします。作成するアプリのタイプとして [会話型エージェント] を選択します。

  4. エージェントの作成を求められたら、[Build your own] をクリックします。

  5. エージェントに「Flight Booker - Parameter Manipulation」という名前を付けます。

  6. 場所を に設定します。

  7. タイムゾーンとデフォルトの言語が適切に設定されていることを確認します。[Conversation Start] を [Flow] に設定します。

  8. [作成] をクリックします。エージェントが作成されると、会話型エージェントの UI のデザインと構成が表示されます。

    create_flow.png

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

タスク 2. 会話型エージェントの .blob ファイルをインポートする

このタスクでは、以前のラボから会話型エージェントをインポートします。

  1. 上部にある [エージェント] プルダウン メニューから [すべてのエージェントを表示] を選択します。

  2. 会話型エージェントの右にあるコンテキスト メニュー(縦に並んだ 3 つの点)をクリックします。

  3. 展開されたメニュー オプションから [復元] を選択します。

  4. [Cloud Storage] ラジオボタンを選択します(まだ選択されていない場合)。

  5. URI に「gs://spls/DialogflowCX_agents/gsp929-start-agent.blob」と入力します。

  6. [復元] をクリックします。

    必要に応じて、Conversational Agents の「復元」に関するドキュメントをご覧ください。

    これで、以前のラボで完了したすべての機能が備わった会話型エージェントが完成しました。

注: サンプル エージェントのコピーを保持する場合は、gsp929-start-agent.blob をローカルのハードドライブにダウンロードしてください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 会話型エージェント ファイルのインポート

理解度をチェックする

復元されたエージェントを確認する

  • [会話型エージェント] > [フロー] に移動し、会話型エージェントに次のページとインテントが表示されていることを確認します。

    ページ:

    • Start
    • Ticket information
    • Confirm trip

    インテント:

    • Default Welcome Intent
    • Default Negative Intent
    • main.book_a_flight
    • confirmation.yes
    • confirmation.no

タスク 3. フライト状況を確認する機能を追加する

次に、ユーザーがエージェントに話しかけてフライトの状況を確認できるようにします。カスタムの正規表現エンティティを追加して、ユーザーの予約参照情報(Passenger Name Record(PNR)番号とも呼ばれます)をキャプチャします。正規表現(Regex)は、PNR の固定形式を簡単に指定できるため選択されました。利点は、エラーチェックが組み込まれていることです。

予約参照(PNR 番号)のカスタム正規表現エンティティを作成する

航空業界全体で、PNR は乗客の基本情報とフライトの詳細を把握するために使用されます。すべての PNR レコードには、英数字(文字と数字)で構成され、5 文字または 6 文字の長さの一意の参照識別子があります。

エンドユーザーが PNR 番号を入力したら、その番号が PNR 番号のルールに準拠していることを検証する必要があります。カスタムの正規表現エンティティを使用してこれを行います。

  1. [管理] タブをクリックします。

  2. 左側のメニューで [エンティティ タイプ] をクリックします。

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

  4. エンティティの [表示名] テキスト ボックスに「PNR_Number」と入力します。

  5. [Regexp entities] チェックボックスをオンにします。

  6. [エンティティ] の下の [値を追加] テキスト ボックスに「^[a-zA-Z0-9]{5,6}$」と入力します。

    この正規表現は実際には何を意味するのでしょうか? 角かっこで囲まれた文字 [a-zA-Z0-9] は、大文字と小文字を区別しない任意の文字または数字に一致することを意味します。{5,6} は、値の長さが 5 文字または 6 文字でなければならないことを意味します。$ は、文字列の末尾にあることをアサートします。

    たとえば、PNR は XCr942 または 1f38C のようになります。

    ニーズに合わせて少し異なるものを構築する必要がある場合は、オンラインで正規表現のリソースをたくさん見つけることができます。

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

    エンティティをクリックすると、次のようになります。

    [エンティティ タイプ] ページで、ハイライト表示されたエンティティ値と選択された [Regexp entities] チェックボックスが表示されている

フライト状況機能のインテントとページを作成する

@PNR_Number カスタム エンティティを作成したので、フライトのステータス確認の会話フローを構成するインテントとページを作成します。

  1. 左側のメニューで [インテント] をクリックします。

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

  3. [表示名] に「main.flight_status」と入力します。

  4. [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 該当なし
    注: PNR_Number エンティティは、Conversational Agents によって自動的にスロットが埋められる必要があります。そうでない場合は、選択して @PNR_Number エンティティを選択することで、手動でアノテーションを付けることができます。

    完了すると、次のようになります。

    PNR 番号がハイライト表示された [Training phrases] ページ

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

[Start] ページを設定する

次に、main.flight_status インテントを使用して新しいルートで [Start] ページを更新し、後続のページを作成してこの新しい会話フローを完成させます。[Start] ページでインテントとそのルートを追加すると、ユーザーのリクエストが認識され、フローのどこからでも Conversational Agents が正しく反応できるようになります。

  1. [ビルド] をクリックして、フロー全体を表示します。

  2. [Start] ページをクリックします。

  3. 右上の [ルート] の右にある [+] をクリックします。

  4. [インテント] プルダウン メニューから [main.flight_status] を選択します。

  5. [移行] セクションまで下にスクロールします。

  6. [ページ] ラジオボタンが有効になっていることを確認します。

  7. [ページ] プルダウン メニューから [+ 新しいページ] を選択します。

  8. [Page name] ボックスに「Check flight status」と入力します。

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

  10. 必要に応じてルート構成ペインを閉じ、フローペインを再度表示します。

  11. main.flight_status インテントが [Start] ページのルートリストに表示されていることに注目してください。フローペインには、[Start] ページから [Check flight status] ページに続く矢印があります。

  12. [Check flight status] ページをクリックします。

  13. [パラメータ] の右側にある [+] をクリックします。

  14. [表示名] に「pnr_num」と入力します。

  15. [エンティティ タイプ] のプルダウンから [@PNR_Number] を選択します。

  16. まだ有効になっていない場合は、クリックして [必須] を有効にします。

    パラメータは次のようになります。

    [パラメータ] ページで、[表示名]、[エンティティ タイプ]、[必須] チェックボックスがハイライト表示されている

  17. [Initial prompt fulfillment] セクションまで下にスクロールします。

  18. [Agent responses] で、ダイアログの回答を追加し、[Agent dialogue] に「What is your flight booking reference please?」と入力します。

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

  20. 必要に応じて [パラメータ] 構成ペインを閉じて、フローペインを再度表示します。

  21. [Check flight status] ページの [ルート] の右側にある [+] をクリックします。

  22. [条件] セクションまで下にスクロールします。

  23. [パラメータ] に「$page.params.status」と入力します。

  24. [Operand] で [=] が選択されていることを確認します。

  25. [値] に「FINAL」と入力します。

    条件は次のようになります。

    パラメータ、オペランド、値がハイライト表示された [条件] ページ

    注: スクリーンショットの「FINAL」という単語が引用符で囲まれていることに気づきましたか?FINAL の値は、引用符の有無にかかわらず使用できます。つまり、FINAL でも "FINAL" でも構いません。これは、スペースを含まない単語であるためです。複数の単語がある場合は、引用符を使用することをおすすめします。たとえば、「"Flight Status"」などです。

    条件式「$page.params.status = FINAL」は、ユーザーからパラメータが正常に取得されたら、このページでこれ以上行うことはないことを Conversational Agents に伝えます。

  26. [移行] セクションまで下にスクロールします。

  27. [ページ] ラジオボタンが有効になっていることを確認します。

  28. [ページ] プルダウンで [+ 新しいページ] を選択します。

  29. [Page name] に「Confirm flight status」と入力します。

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

[Confirm flight status] ページを設定する

  1. [Confirm flight status] ページをクリックします。

  2. [Edit fulfillment] をクリックします。

  3. [Agent responses] で、ダイアログのレスポンスを追加し、[Agent dialogue] にメッセージを入力します。

    Looking up your flight reference $session.params.pnr_num, we are pleased to confirm that your flight is on time and will depart LAX at 10am for NYC. Please arrive at least 1.5 hours before departure. Would you like to make any changes to your flight? 注: テストでは、フライトのステータスに関するクエリはすべて、この同じ静的メッセージを返します。フライトのステータス情報を動的に検索するには、どのように実装すればよいでしょうか。Conversational Agents が外部 API を呼び出し、PNR 参照を提供して、実際のフライト状況を取得する Webhook 機能を使用します。

    Webhook を使用するには、Webhook チェックボックスをオンにします。ただし、このラボでは会話型デザインのトピックに焦点を当てているため、この内容は対象外です。これは、完全を期すためと、さらなる学習の指針を提供するために記載されています。
  4. [保存] をクリックします。

  5. [ルート] の右にある [+] をクリックします。この画面を表示するには、右側のペインの構成ウィンドウを閉じる必要がある場合があります。

  6. [インテント] プルダウンから [confirmation.yes] を選択します。

  7. [フルフィルメント] セクションまで下にスクロールします。

  8. [Agent responses] で、ダイアログの回答を追加し、[Agent dialogue] に「Our agents will be in touch soon for your request to amend your scheduled flight」と入力します。

  9. [移行] セクションまで下にスクロールします。

  10. [ページ] ラジオボタンが有効になっていることを確認します。

  11. [ページ] プルダウンで [+ 新しいページ] を選択します。

  12. [Page name] に「Anything else?」と入力します。

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

  14. 別のルートを追加します。今回は、[インテント] プルダウンから [confirmation.no] を選択します。

  15. このルートの [Agent responses] でダイアログ レスポンスを追加し、「Great, we look forward to having you fly with us soon.」と入力します。

  16. 作成した同じ [Anything else?] ページに移行先を追加します。

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

[Anything else?] ページを設定する

  1. [Anything else?] ページをクリックします。

  2. クリックして [Entry fulfillment] を開きます。

  3. [Agent responses] で、ダイアログのレスポンスを追加し、[Agent dialogue] に「Have you any further queries for me?」と入力します。

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

  5. [+] をクリックして [Anything else?] ページからルートを追加します。

  6. [インテント] プルダウンから [confirmation.yes] を選択します。

  7. [フルフィルメント] の [Agent responses] に「Please let me know how I can be of service.」と入力します。

  8. [ページ] ラジオボタンが有効になっていることを確認します。

  9. [移行] セクションの [ページ] で [Start ページ] を選択します。

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

  11. 別のルートを追加します。今回は confirmation.no インテントを指定します。

  12. No worries, I'm glad to be of assistance today. Goodbye.」を [フルフィルメント] の [Agent responses] に追加します。

  13. 移行先として [セッションを終了] ページを選択します。

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

タスク 4. 会話型エージェントをテストする

パート 1(ポジティブ テスト)

  1. [Toggle Simulator] をクリックしてテスト シミュレータを開きます。

    予想される結果を含むテストデータを定義しておくのが理想的です。テストデータを整理する方法の一つは、チャットボットの会話で見るように、会話の進行順に整理することです。

  2. 以下のテストデータと同様のテストをエージェントに対して実行します。

    対象 メッセージ
    ユーザー 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.
  3. テストデータでは、有効な PNR 番号 P34K09 を使用する前に、意図的に 1234(短すぎる)と abcdefghijk(長すぎる)を使用していることに注意してください。定義した正規表現により、ユーザーが入力した最初の 2 つの値は無効な PNR 番号とみなされます。そのため、エージェントはパラメータのステータス条件(FINAL)を満たして次のページに移行できるまで、質問を続けます。

    注: テストで間違いがあった場合は、[Test Agent] の右上にあるゴミ箱アイコンを使用して、いつでもテストをリセットできます。
  4. シミュレータ ペインに会話に関するデータが表示されていることに注目してください。たとえば、ページのフロー、一致したインテント、パラメータとその入力値などです。

  5. リセット アイコンをクリックして、現在のテストデータをクリアします。同じテストを繰り返す場合(リサイクル アイコンを使用)を除き、テストを 1 回完了するたびにこれを行うことをおすすめします。

パート 2(ネガティブ テスト)

フローが [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, ...
注: 2 回目にフライト状況の確認をリクエストしたとき、PNR を求められなかったことに気づきましたか?ユーザーが別のレコードを検索したいこのシナリオでは、これは期待される回答ではありません。

何が起きたのでしょうか?Conversational Agents は、先ほど入力した数字を記憶していました。このシナリオで機能させるには、pnr_num パラメータをリセット(無効化)する必要があります。

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

タスク 5. パラメータをリセットする

  1. [Anything else?] ページをクリックします。

  2. [Entry fulfillment] フィールドをクリックして、[Fulfillment configuration] ペインを開きます。

  3. [Parameter presets] セクションまでスクロールします。

  4. [パラメータを追加] をクリックします。

  5. [Parameter presets] の [パラメータ] 名に「pnr_num」と入力します。

  6. [値] に「null」と入力します。

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

  8. テストを再度実行して、すべてのパラメータが null にリセットされていることを確認します。これにより、会話が再開されたときにエージェントが新しい値を再プロンプトします。

    [Anything else?] ページは次のようになります。

    [Anything else?] ページで、ハイライト表示された [Entry fulfillment] フィールドと [Parameter presets] セクションが表示されている

[Anything else?] ページを [Confirm trip] ページに接続する

[Anything else?] ページは、このラボの開始時にインポートしたフライト予約の会話フローで再利用できます。期待される成果は、ユーザーがクエリの最後に会話の継続を希望した場合、会話型エージェントが会話を継続できることです。

  1. [Confirm trip] ページをクリックします。

  2. [confirmation.yes] ルートをクリックします。

  3. [Anything else?] ページに移行先を追加します。

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

  5. check flight status テストを再度実行して、pnr_num パラメータが null にリセットされていることを確認します。これにより、ユーザーが別のフライトを確認したいときに、エージェントが新しい値をリプロンプトします。

    注: 次のテスト シナリオを最初から始めるには、[Toggle Simulator] ペインのリセット アイコンをクリックします。
  6. フライト予約のテストシナリオを最後まで実行して、フライトを予約します。フローの「Anything else?」という部分に達したら、「Yes」と答えて、新しいフライトの予約を開始します。

    注: 機能した点と、機能しなかった点は何でしょうか?エージェントが以前の予約のフライトの詳細を記憶しており、再度尋ねてこないことに気づいたかもしれません。これは正しい動作でしょうか?

    フライトの運行状況を確認するシナリオと同様に、フライト予約のパラメータを null にリセットする必要があります。

  7. [Anything else?] ページをクリックします。

  8. [Entry fulfillment] をクリックします。

  9. pnr_num と同様に、次のパラメータを追加して null に設定します。

    パラメータ
    departure_city null
    destination_city null
    departure_date null
    return_date null
    passenger_name null
  10. [保存] をクリックします。

  11. 情報が正しいかどうかを尋ねる質問に「いいえ」と答えたときに、すべてのパラメータが null にリセットされることを確認するために、テストを再度実行します。

理解度チェック

エージェントをエクスポートする

会話型エージェントをエクスポートして自分のプロジェクトで使用する場合は、次の手順を行います。

  1. 上部にある [エージェント] プルダウンから [すべてのエージェントを表示] を選択します。

  2. その他メニュー(縦に 3 つ並んだ点 その他アイコン)をクリックし、[エクスポート] を選択します。

  3. [ダウンロード] ラジオボタンをクリックします。

  4. [エクスポート] をクリックします。

お疲れさまでした

正規表現を使用して PNR 番号のパラメータ検証を行い、ユーザーが新しい会話フローを開始したときにパラメータを null にリセットする方法を学びました。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 4 月 24 日

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

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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