翻訳者 | Li Rui
査読者 | Sun Shujuan
メッセンジャー、ネットワーク サービス、その他のソフトウェアはロボット (ボット) と切り離せないものです。ソフトウェア開発およびアプリケーションにおいて、ボットは、ユーザーの要求に応じて作成されたアクションを自動的に実行する (または事前に設定されたスクリプトに従って実行する) ように設計されたアプリケーションです。この記事では、NIX United の開発者である Daniil Mikhov が、Microsoft Azure Bot Services を使用してチャットボットを作成する例を紹介します。この記事は、このサービスを使用してチャットボットを開発したい開発者に役立ちます。 Azure Bot Services を使用する理由
Azure Bot Services でチャットボットを開発する利点は、Microsoft の製品に対する高レベルのサポートです。同社の専門家は技術コミュニティと積極的にコミュニケーションをとり、サービスの脆弱性を迅速に特定して修正します。さらに、Microsoft はメッセンジャーの API の一部で動作するカスタム JSON ファイルを作成する機能を提供しており、開発者がチャットボットを作成する際に多くの可能性を提供しています。Azure Bot Services の他の利点を覚えておくことも重要です:
Azure Bot Services開発者はオープンソース SDK ツール (ソフトウェア開発キット) を使用して、チャットボットを作成、テスト、展開できます。
Azure Bot Services におけるチャットボットの分析
Azure 上で作成されたチャットボットの機能構造は次のように表現できます。
チャットボットに接続されている可能性のあるチャネルのリストが右側に表示されます。このリストは、新しいプラットフォームに合わせて継続的に更新されます。その下部には、Azure プラットフォームで利用できる Microsoft Cognitive Services があります。これらのサービスを使用すると、音声リクエスト、顔の表情、ジェスチャーなどを通じてチャットボットとの通信が可能になります。
Bot Builder SDK は、Azure でチャットボットを開発するために使用されます。この製品はパブリックドメインであり、その主な利点は開発者からの継続的なサポートです。 GitHub の別のフォークでは、サービスに関する最新情報を取得したり、開発者に質問したりできます。
チャットボットの作成
コードを記述する前に、Azure Bot Service でチャットボットを作成する前に考慮すべきニュアンスを分析します。 # #################################(1) チャットボットは人々の質問を正しく理解できますか?
チャットボットとの通信はユーザー インターフェイスを通じて行われます。ユーザー インターフェイス を使用すると、開発者はチャットボットが理解できる言語でチャットボットと通信できます。この目的のために、Microsoft Azure は特定の階層に従うダイアログ システムを使用します。チャットボットとの会話を確立する方法:
プロンプト – チャットボットは、プロンプトと回答を通じてユーザーと対話します。たとえば、チャットボット情報はデジタル プロンプトの形式で提供されます。プロンプトは、ユーザーがプロンプトに正しく答えたかどうかをチェックします。成功すると、チャットボットとの会話が続行されます。ユーザーから不正確な回答を受け取った場合は、有効なデータを入力するよう求められます。
ウォーターフォール – ウォーターフォールは、一連の連続したタスク/質問を通じてユーザーから情報を収集する方法です。ウォーターフォール ダイアログの各ステップは、非同期関数として実装されます。各段階で、チャットボットはユーザーにデータの入力を求め、応答を待って、結果を次のステップに渡します。最初の関数の結果はパラメータとして次の関数に渡され、問題のループ全体が渡されるまで同様に渡されます。
##数値クエリ (数量)
以下を参照## コード#Daniil Mikhov によって作成された「後で通知する」チャットボットの例。このチャットボットの主なタスクは、将来実行する必要があるアクションを通知することです。
チャットボットを作成するために、Mikhov は、Visual Studio によって提供される空のテンプレートを使用しました。これには、BotController と NotifyController といういくつかの種類のコントローラーが含まれています。
BotController はチャットボットのメッセージを受信し、チャットボット フレームワークに渡します。 Chatbot には、Azure プラットフォームへのアプリケーションのデプロイを容易にするためのいくつかのデプロイ テンプレートも含まれています。
Notify コントローラーは、ユーザーにメッセージを送信するタイミングを決定します。この問題については後で詳しく説明します。
(3) 関数を開始し、ToDoDialog タブにデータを入力します。
##Go to Startup.cs タブをクリックして、その内容を表示します。ここでは、登録されたエラー ハンドラー AdaptorWithErrorHandler を確認できます。プログラムでエラーが発生した場合、アプリケーションはエラーに対応する必要があります。 ConversationState の登録に注意してください - これを使用して、どのユーザーと通信しているのか、会話のどの段階にあるのかをチャットボットに知らせます。
ToDoDialog.cs タブの内容を見てみましょう。 Mikhov は、上で説明したウォーターフォール ダイアログ ボックス内の一連のステップである、waterfallSteps を宣言します。 WaterfallSteps では、ユーザーとチャットボット間の会話を構築するために各ステップでどの非同期関数が使用されるかを指定します。
以下に、チャットボットが使用する入力プロンプトの種類を示します。ここでのコンテンツは非常に標準的なものです。チャットボットは人々にイベントに関するいくつかの質問をし、スケジュールのリマインダーを提供します。
次に、チャットボットを実行し、Bot Framework Emulator インターフェイスを使用してその動作をテストします。
(4) チャットボット フレームワーク シミュレーターを最初に起動してテストします
#このアプリケーションを実行すると、チャットボットがユーザーのメッセージを待機するURLへのリンクが表示されます。
テストを開始する前に、チャットボット フレームワーク シミュレーターで次のリンクを指定します:
最初のコミュニケーション ステップで、チャットボットはユーザーに、通知する必要があるイベントの名前を入力するように求めます。これを行うには、次のコード を呼び出します。
Now 、いつ チャットボットが呼び出されると、次のテキストが返されます: イベントの説明を入力してください。リマインダーを受け取りたいイベント (牛乳を買うなど) を宣言した後、2 番目のステップでコードを呼び出します。ここで、チャットボットは 3 つのリマインダー時間オプションのいずれかを提供します。 :
stepContext の使用に注意してください。ダイアログ ボックスに関するすべての情報が保存され、中間値が記録されます。可能なリマインダー時間のリストを実装するには、ChoicePrompt が使用されます。この方法では、ユーザーに 3 つのオプションと、可能なリマインダー時間 (2 分、5 分、または翌日の同じ時間) が提供されます。もっとたくさんの選択肢がありましたが、選ばれたのは 3 つだけでした。
選択を使用して新しい選択時間を表すと、次のようになります:
#チャットボット フレームワーク シミュレーターでは、このコードは次のようにレンダリングされます:
Parse を使用して結果を解析できます。留意していただきたいのですが、解析はデータを収集して構造化する自動化されたプロセスです。次にチャットボットは、選択したリマインダー時刻を確認するかどうかをユーザーに尋ね、確認プロンプトを使用して同意を確認します。 ##視覚的に見ると、このメソッドは次のようになります:
最後のステップは、以前のstepContext から情報を入力し、conversationReference を追加する必要がある SavedNotificationModel を生成します。これがないと、チャットボットはユーザーとの会話を再開したり、どのユーザーが問題に具体的に対処したかを判断したりできません。
Mikhov辞書メソッドをこれらのイベントの一時リポジトリとして使用します。採用すると、チャットボットはその一意のインスタンス ID を特定の各ダイアログに割り当てます。
これはチャットボット ダイアログで終わります。ダイアログ ボックスの終了を示すテキストをユーザーに表示し、対応するリマインダー要求「ありがとうございます。通知は正常に保存されました」を作成できます。
(5) チャットボットはどのように時間移動するのか For チャットボットを時間内に見つけるために、
Mikhov
は、notifyController メソッド NotifyTimeCheck() を作成しました。このアプローチにより、アプリケーションを体系的にポーリングすることができ、特定のイベントが発生しようとしている場合、チャットボットが辞書からイベントを取得し、ユーザーに通知を送信します。
通知を受け取るには、BotAdapter の ContinueConversationAsync() メソッドが呼び出され、ConversationReference が渡されます。 ContinueConversationAsync() の最初のパラメーターは常にチャットボット サービスの appId (アプリケーション ID) である必要があります。そうでない場合、機能しません。
さらに、チャットボットは、特定の時刻になったら、特定のユーザーにイベントを通知する必要があることを通知する必要もあります。開発者は、時間トリガー (TimerTrigger) によってトリガーされる Azure 関数 (BotTimerFunction) を使用できます。
関数は毎分、このエンドポイントにリクエストを送信し、指定されたイベントのチェックを開始します。正しい時間枠に達すると、チャットボットはスケジュールされたイベントが間もなく発生することをユーザーに通知します。
現在、WhatsApp、Facebook Messenger、Telegram などのコミュニケーション ツールは、コミュニケーション プラットフォームであるだけでなく、ビジネス プラットフォームでもあります。チャットボットは、企業がオンラインで商品やサービスを効果的に販売および宣伝するのに役立ちます。日々のプロセスを自動化し、必要な製品情報を顧客にタイムリーに提供し、リクエストを受信して処理する – 適切に構成されたチャットボットのこれらすべての機能は、ユーザーを顧客に変えるのに役立ちます。したがって、開発者としては、このツールが現在どれほど人気があるのか、そしてそのようなアプリケーションを作成してその結果として人気のあるエキスパートになれることがどれほど素晴らしいのかを覚えておく必要があります。
元のタイトル: Azure Bot を使用してチャットボットを作成する方法サービス: ステップバイステップの説明 #,著者: Daniil Mikhov # ##################################
以上がAzure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。