Google Dialogflow でメール送信チャットボットを構築する

Google Dialogflow でメール送信チャットボットを構築する

チャットボットは、現代のビジネスにとってますます重要なツールになりつつあります。適切なツールとノウハウを使用して、企業は顧客と実際に会話できるチャット エージェントを作成します。





Google Dialogflow ES は、市場で最も強力で無料のチャットボット構築ツールの 1 つです。しかし、どうすればその潜在能力を最大限に引き出すことができるでしょうか?





今日のメイク動画

ステップ 1: Dialogflow ES エージェントを作成する

このプロセスの最初のステップは、独自の Dialogflow ES エージェントを作成することです。どの Google アカウントでも機能します。まず、 Google Dialogflow EN Web サイト .クリック エージェントの作成 クリックする前に、ログインしてフォームに詳細を入力したら、 作成 . Dialogflow を使用して、 エンターテインメント用のチャットボットを作成する 、自動化、または顧客サービス。このプロジェクトは後者をカバーしています。





  dialogflow es エージェントを作成する

ステップ 2: Dialogflow フォローアップ インテントを追加する

新しいエージェントには、デフォルトのウェルカム インテントとデフォルトのフォールバック インテントしかありません。インテントは、会話の断片または段階です。

Windows10でフラッシュドライブを開く方法

開始するには、既存の Default Welcome Intent に 2 つのフォローアップ インテントを追加する必要があります。にカーソルを合わせます デフォルトのウェルカム インテント 、 クリック フォローアップの意図を追加する 、そしてピック はい ドロップダウンメニューから。ドロップダウン メニューから [いいえ] を選択してプロセスを繰り返し、2 番目のフォローアップ インテントを作成します。



  はいおよびいいえフォローアップの意図

No follow-up インテントは、会話を終了し、ユーザーに別れを告げます。開く フォローアップの意図がない 一連のテキスト応答を追加して、会話を終了します。アクティブ化 このインテントを会話の最後に設定する スライダー。

  ダイアログフロー会話の終了意図

メインのインテント画面に戻り、 はいフォローアップの意図 開きます。





ステップ 3: JSON を使用して豊富な Dialogflow レスポンス リストを作成する

これでこれらのインテントが設定されました。次は、ユーザーがインテントに到達できるようにユーザーに質問を投げかけます。開く デフォルトのウェルカム インテント 消去 それが生成した応答。クリック 回答を追加 そして選択 カスタムペイロード メニューから。

  ウェルカム インテント カスタム ペイロード

以下の JSON コードは、2 つの異なるタイプのリッチ レスポンスを追加します。情報とチップ。





{ 
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Yes"
},
{
"text": "No"
}
]
},
{
"image": {
"src": {
"rawUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/TK_email_icon.svg/1024px-TK_email_icon.svg.png"
}
},
"title": "Tell me about yourself :)",
"subtitle": "Give me some of your personal information. I'll send it to you in an email. That's the deal; absolutely no funny business. Promise! You in?",
"type": "info"
}
]
]
}

ステップ 4: ユーザー名を Dialogflow パラメータとして収集する

次に、別のフォローアップ インテントを追加して、ユーザーからデータを収集します。ステップ 2 で概説したように、ユーザーの名前を尋ねるはいのフォローアップ インテントが既にあるはずです。にカーソルを合わせます はいフォローアップの意図 メイン インテント メニューで、 フォローアップの意図を追加する を選択 カスタム リストから。

  はいを選択します

これにより、トレーニング フレーズなしで新しいフォローアップ インテントが作成されます。 [トレーニング フレーズ] セクションに移動し、ボックスに名前を入力し、Enter キーを押して新しいフレーズとして追加します。これにより、@sys.person エンティティ タイプの新しいパラメーターの作成がトリガーされます。クリックしてください @sys.person エンティティに変更します @sys.名 実在物。

  ダイアログフロー名パラメータ設定

これにより、エージェントが使用できるようにユーザーの入力が保存されます。応答セクションに移動し、応答を追加します $名 その中。これにより、収集した name パラメータが呼び出され、チャットに表示されるようになります。

  ダイアログ フロー名パラメータ レスポンス

ステップ 5: Dialogflow カスタム ペイロードを使用してインテントをトリガーする

追加したばかりのフォローアップ インテント内で、[応答の追加] をクリックし、リストから [カスタム ペイロード] を選択します。以下の JSON コードをこのセクションに追加すると、ユーザーに色の選択を求めるリスト リッチ レスポンスがトリガーされます。

  ダイアログフロー リッチ コンテンツ リスト

この JSON コードの最も重要な部分は、各エントリのイベント セクションです。クリックすると、各リスト項目は、これまでに収集された名前と色のパラメーターを使用して、COLOR というイベントを呼び出します。インテントには、それらをトリガーするイベントを割り当てることができます。

{ 
"richContent": [
[
{
"event": {
"languageCode": "en",
"parameters": {
"name": "$given-name",
"color": "Red"
},
"name": "COLOR"
},
"title": "Red",
"type": "list"
},
{
"type": "divider"
},
{
"event": {
"name": "COLOR",
"languageCode": "en",
"parameters": {
"name": "$given-name",
"color": "Green"
}
},
"type": "list",
"title": "Green"
},
{
"type": "divider"
},
{
"type": "list",
"title": "Blue",
"event": {
"languageCode": "en",
"name": "COLOR",
"parameters": {
"name": "$given-name",
"color": "Blue"
}
}
}
]
]
}

ステップ 6: インテント間で Dialogflow パラメータを移動する

メインの Intents メニューに戻り、 インテントの作成 .新しいインテントに名前を付けて入力します 打つ前にイベントセクションで 入る .

page_fault_in_nonpaged_area windows 10
  イベントによる色の意図

[トレーニング フレーズ] セクションに移動し、フレーズのリストに名前と色を追加して、新しいパラメーターの作成をトリガーします。変更 @sys.person パラメータ エンティティへの @sys.名 色のエンティティがに設定されていることを確認してください @sys.color .

  カラートレーニングとパラメータ

$given-name と $color を使用していくつかの応答を追加し、ユーザーの入力をチャット ウィンドウに表示できるようになりました。

  パラメーターを使用したカラー インテント レスポンス

最後に、に戻ります コンテキスト ページ上部のセクションを開き、一意の名前で出力を追加します。これにより、このインテントから次のインテントにパラメーターが渡されます。

  色の意図の出力コンテキスト

ステップ 7: ユーザーの国と電話番号を Dialogflow パラメータとして収集する

メインのインテント メニューに戻り、 色の意図 作成したばかりで、 フォローアップの意図を追加する .新しいインテントのコンテキスト セクションを確認します。入力セクションと出力セクションの両方に、最後の手順で作成した Color コンテキストが含まれていることを確認してください。現在のインテントに別の出力コンテキストを追加します。

  ダイアログフローの色の国フォローアップの意図

に行く トレーニング フレーズ セクションを開き、ヒットする前に国の名前をリストに追加します 入る .これにより、新しいパラメータが作成されます。パラメータのエンティティ タイプを @sys.geo-国 パラメータを応答セクションに追加する前。

  国のトレーニングとパラメーター

メインの Intents メニューに戻り、作成したインテントの新しいフォローアップ インテントを作成します。今行った手順を繰り返しますが、電話番号を使用します トレーニング フレーズ セクション。生成されたパラメータに @sys.電話番号 エンティティ タイプ。

  電話番号のトレーニングとパラメーター

メインのインテント メニューに戻り、作成したばかりのインテントに対して 2 つの新しいフォローアップ インテントを作成します。はいおよびいいえのフォローアップの意図。 No follow-up インテントを設定して、会話を終了できます。

  電話番号 はい いいえ フォローアップ

はいフォローアップ インテントには、作成した以前のインテントからのすべてのコンテキストが必要です。

gifを壁紙ウィンドウとして設定する10
  入力コンテキストのフォローアップ

最後に、メインの [インテント] メニューに戻り、作成したばかりの [はい] フォローアップ インテントに対して新しいフォローアップ インテントを作成します。 [トレーニング フレーズ] セクションにメール アドレスを追加し、生成されたパラメーターに @sys.email エンティティ タイプとして。

  ダイアログフローのメール パラメータ

に行く 反応 セクション、クリック 回答を追加 を選択 カスタムペイロード リストから。次の JSON コードは、SENDEMAIL というイベントを呼び出すリスト型のリッチ レスポンスを追加します。これまでに要求したすべてのユーザー パラメーターは、このインテントに送信されます。

{ 
"richContent": [
[
{
"title": "Send Email",
"event": {
"parameters": {
"name": "#Color-followup.name",
"country": "#Color-country-followup.country",
"email": "$email",
"color": "#Color-followup.color",
"phone": "#Color-country-phonenum-followup.phone-number"
},
"name": "SENDEMAIL",
"languageCode": "en"
},
"type": "list"
}
]
]
}

ステップ 8: Dialogflow Node.js インライン エディタを使用してメールを送信する

クリック インテントの作成 メインのインテント メニュー。追加 メールを送る イベント セクションとヒット 入る .これに続いて、収集したすべてのパラメータを アクションとパラメータ セクション。

  メールイベントとパラメーター

に行く フルフィルメント ページの下部にあるセクションをクリックし、ラベルの付いたスライダーをアクティブにします このインテントの Webhook 呼び出しを有効にする .これにより、このインテントにカスタム コードを追加できます。

  ダイアログフローのインテントフルフィルメント

選択する フルフィルメント ページの左側にあるメイン メニューから、スライダーをアクティブにして、 インライン エディタ .これを行うには、請求先アカウントを Google プロジェクトに追加する必要がある場合があります。

  dialogflow アクティブ インライン エディタ

クリックしてください パッケージ.json タブをクリックして、ファイルの一番下までスクロールします。依存関係セクションを次のコードに置き換えて、Nodemailer API をプロジェクトに追加します。

"dependencies": { 
"actions-on-google": "^2.2.0",
"firebase-admin": "^5.13.1",
"firebase-functions": "^2.0.2",
"dialogflow": "^0.6.0",
"nodemailer": "^4.4.2",
"dialogflow-fulfillment": "^0.5.0"
}

index.js ファイルに戻り、既存のコードを次の場所にあるサンプルに置き換えます。 この CodePen プロジェクト クリックする前に 配備 . Gmail の資格情報を自分のアカウントのものに置き換える必要があります。これにはアプリ パスワードを使用する必要があります。完了すると、会話が成功したときに、チャットボットが収集したすべての詳細をユーザーにメールで送信します。あなたはできる Node.js の詳細 便利なガイドでそれを使用する方法。

Web サイトで Dialogflow ES を使用する

新しいチャットボットはユーザー情報を収集してメールを送信できますが、Dialogflow ES はさらに多くのことができます。ほぼすべての API をこのサービスに接続でき、Dialogflow API を使用して、独自の Web サイトでチャットボットを制御できます。