Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

王林
リリース: 2023-04-11 18:34:04
転載
1828 人が閲覧しました

翻訳者 | 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 ツール (ソフトウェア開発キット) を使用して、チャットボットを作成、テスト、展開できます。

  • # コグニティブ サービスとの統合は、機械学習ツールを使用して一般的なタスクを解決するサービスを指します。コグニティブ サービスは、チャットボットとユーザー間の対話プロセスを確実に改善します。
  • マルチプラットフォームとは、元のコードを変更せずにチャットボットを複数のチャネルに接続できる機能を指します。
  • 開発プロセスを促進し、すぐに開始できるオープン ソースのサンプルが豊富にあります (GitHub には既製のコード サンプルが多数あります)。
  • 開発者は、新しい機能を追加することで、Azure プラットフォーム上のチャットボット インフラストラクチャを拡張できます。たとえば、さらにチャネルを追加し、各チャネルをテストに使用できます。 Cosmos DB サービスを使用して、会話状態とユーザーが入力した情報を保存できます。チャットボットをトレーニングするには、言語理解 (LUIS) を追加できます。機械学習アルゴリズムを使用して、ユーザーとのコミュニケーションを改善します。ただし、LUIS は無料ではなく、すべてのクライアントが追加の資金の割り当てを望んでいるわけではありません。

Azure Bot Services におけるチャットボットの分析

Azure 上で作成されたチャットボットの機能構造は次のように表現できます。

チャットボットに接続されている可能性のあるチャネルのリストが右側に表示されます。このリストは、新しいプラットフォームに合わせて継続的に更新されます。その下部には、Azure プラットフォームで利用できる Microsoft Cognitive Services があります。これらのサービスを使用すると、音声リクエスト、顔の表情、ジェスチャーなどを通じてチャットボットとの通信が可能になります。 Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

Bot Builder SDK は、Azure でチャットボットを開発するために使用されます。この製品はパブリックドメインであり、その主な利点は開発者からの継続的なサポートです。 GitHub の別のフォークでは、サービスに関する最新情報を取得したり、開発者に質問したりできます。

チャットボットの作成

コードを記述する前に、Azure Bot Service でチャットボットを作成する前に考慮すべきニュアンスを分析します。 # #################################
  • 機能を破壊するアップデート。 Microsoft Corporation は常に製品を更新しています。新しい更新により、以前は機能していたコードの一部が壊れることがよくあります。したがって、新しい Bot Builder SDK バージョンのパッチ リストを必ず理解してください。チャットボットの開発に使用される他のマニュアルは意味がなくなる可能性があります。
  • 明白な解決策ではありません。 Bot Builder SDK を使用するときは、常に実験にオープンであり、これまでとは異なることを積極的に実行する必要があります。
  • 多用途性。ソース コードを変更せずに、同じチャットボットを異なるチャネル (Telegram、Skype、Slack など) にアップロードできます。チャットボットを開発するときは、プラットフォームごとに微妙な違いがあり、アプリケーションの動作ロジックを作成するときに開発者が異なるアプローチを取る必要があることに留意する必要があります。

(1) チャットボットは人々の質問を正しく理解できますか?

チャットボットとの通信はユーザー インターフェイスを通じて行われます。ユーザー インターフェイス を使用すると、開発者はチャットボットが理解できる言語でチャットボットと通信できます。この目的のために、Microsoft Azure は特定の階層に従うダイアログ システムを使用します。チャットボットとの会話を確立する方法:

プロンプト – チャットボットは、プロンプトと回答を通じてユーザーと対話します。たとえば、チャットボット情報はデジタル プロンプトの形式で提供されます。プロンプトは、ユーザーがプロンプトに正しく答えたかどうかをチェックします。成功すると、チャットボットとの会話が続行されます。ユーザーから不正確な回答を受け取った場合は、有効なデータを入力するよう求められます。 Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

ウォーターフォール – ウォーターフォールは、一連の連続したタスク/質問を通じてユーザーから情報を収集する方法です。ウォーターフォール ダイアログの各ステップは、非同期関数として実装されます。各段階で、チャットボットはユーザーにデータの入力を求め、応答を待って、結果を次のステップに渡します。最初の関数の結果はパラメータとして次の関数に渡され、問題のループ全体が渡されるまで同様に渡されます。

  • # コンポーネント - コンポーネントは、大きなダイアログ ボックスを、より小さく管理しやすい部分に分割する方法です。コンポーネントを使用すると、開発者は再利用可能なダイアログ ボックスを作成し、後でさまざまな独立したシナリオで使用できます。たとえば、これを使用して、ユーザーに番地名、住所、郵便番号を順番に尋ねるダイアログ ボックスを作成できます。
  • 最後の行には、チャットボットのカスタム リクエストを作成するために許可されているメソッドが表示されます:
  • テキスト クエリ (テキスト)

##数値クエリ (数量)

  • 日付/時刻リクエスト (日時)
  • リクエストの確認 (確認)
  • #リクエストの選択 (選択)
  • ##添付リクエスト (添付)
  • 本質的に、クエリは段階的なダイアログです。最初の段階では、チャットボットは入力データを要求します。; 2 番目の段階では、チャットボットは入力データを要求します。有効な値をユーザーに返すか、無効な値を受け取った場合はデータ クエリ ループを再開します。
  • (2) コントローラーとテンプレート

以下を参照## コード#Daniil Mikhov によって作成された「後で通知する」チャットボットの例。このチャットボットの主なタスクは、将来実行する必要があるアクションを通知することです。

チャットボットを作成するために、Mikhov は、Visual Studio によって提供される空のテンプレートを使用しました。これには、BotController と NotifyController といういくつかの種類のコントローラーが含まれています。

BotController はチャットボットのメッセージを受信し、チャットボット フレームワークに渡します。 Chatbot には、Azure プラットフォームへのアプリケーションのデプロイを容易にするためのいくつかのデプロイ テンプレートも含まれています。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

Notify コントローラーは、ユーザーにメッセージを送信するタイミングを決定します。この問題については後で詳しく説明します。

(3) 関数を開始し、ToDoDialog タブにデータを入力します。

##Go to Startup.cs タブをクリックして、その内容を表示します。ここでは、登録されたエラー ハンドラー AdaptorWithErrorHandler を確認できます。プログラムでエラーが発生した場合、アプリケーションはエラーに対応する必要があります。 ConversationState の登録に注意してください - これを使用して、どのユーザーと通信しているのか、会話のどの段階にあるのかをチャットボットに知らせます。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

ToDoDialog.cs タブの内容を見てみましょう。 Mikhov は、上で説明したウォーターフォール ダイアログ ボックス内の一連のステップである、waterfallSteps を宣言します。 WaterfallSteps では、ユーザーとチャットボット間の会話を構築するために各ステップでどの非同期関数が使用されるかを指定します。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

以下に、チャットボットが使用する入力プロンプトの種類を示します。ここでのコンテンツは非常に標準的なものです。チャットボットは人々にイベントに関するいくつかの質問をし、スケジュールのリマインダーを提供します。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

次に、チャットボットを実行し、Bot Framework Emulator インターフェイスを使用してその動作をテストします。

(4) チャットボット フレームワーク シミュレーターを最初に起動してテストします

#このアプリケーションを実行すると、チャットボットがユーザーのメッセージを待機するURLへのリンクが表示されます。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

テストを開始する前に、チャットボット フレームワーク シミュレーターで次のリンクを指定します:

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

最初のコミュニケーション ステップで、チャットボットはユーザーに、通知する必要があるイベントの名前を入力するように求めます。これを行うには、次のコード を呼び出します。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

Now 、いつ チャットボットが呼び出されると、次のテキストが返されます: イベントの説明を入力してください。リマインダーを受け取りたいイベント (牛乳を買うなど) を宣言した後、2 番目のステップでコードを呼び出します。ここで、チャットボットは 3 つのリマインダー時間オプションのいずれかを提供します。 :

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

stepContext の使用に注意してください。ダイアログ ボックスに関するすべての情報が保存され、中間値が記録されます。可能なリマインダー時間のリストを実装するには、ChoicePrompt が使用されます。この方法では、ユーザーに 3 つのオプションと、可能なリマインダー時間 (2 分、5 分、または翌日の同じ時間) が提供されます。もっとたくさんの選択肢がありましたが、選ばれたのは 3 つだけでした。

選択を使用して新しい選択時間を表すと、次のようになります:

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

#チャットボット フレームワーク シミュレーターでは、このコードは次のようにレンダリングされます:

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

Parse を使用して結果を解析できます。留意していただきたいのですが、解析はデータを収集して構造化する自動化されたプロセスです。次にチャットボットは、選択したリマインダー時刻を確認するかどうかをユーザーに尋ね、確認プロンプトを使用して同意を確認します。 ##視覚的に見ると、このメソッドは次のようになります:

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

最後のステップは、以前のstepContext から情報を入力し、conversationReference を追加する必要がある SavedNotificationModel を生成します。これがないと、チャットボットはユーザーとの会話を再開したり、どのユーザーが問題に具体的に対処したかを判断したりできません。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

Mikhov辞書メソッドをこれらのイベントの一時リポジトリとして使用します。採用すると、チャットボットはその一意のインスタンス ID を特定の各ダイアログに割り当てます。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

これはチャットボット ダイアログで終わります。ダイアログ ボックスの終了を示すテキストをユーザーに表示し、対応するリマインダー要求「ありがとうございます。通知は正常に保存されました」を作成できます。

Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

(5) チャットボットはどのように時間移動するのか For チャットボットを時間内に見つけるために、

MikhovAzure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

は、notifyController メソッド NotifyTimeCheck() を作成しました。このアプローチにより、アプリケーションを体系的にポーリングすることができ、特定のイベントが発生しようとしている場合、チャットボットが辞書からイベントを取得し、ユーザーに通知を送信します。

通知を受け取るには、BotAdapter の ContinueConversationAsync() メソッドが呼び出され、ConversationReference が渡されます。 ContinueConversationAsync() の最初のパラメーターは常にチャットボット サービスの appId (アプリケーション ID) である必要があります。そうでない場合、機能しません。

さらに、チャットボットは、特定の時刻になったら、特定のユーザーにイベントを通知する必要があることを通知する必要もあります。開発者は、時間トリガー (TimerTrigger) によってトリガーされる Azure 関数 (BotTimerFunction) を使用できます。 Azure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順

関数は毎分、このエンドポイントにリクエストを送信し、指定されたイベントのチェックを開始します。正しい時間枠に達すると、チャットボットはスケジュールされたイベントが間もなく発生することをユーザーに通知します。

現在、WhatsApp、Facebook Messenger、Telegram などのコミュニケーション ツールは、コミュニケーション プラットフォームであるだけでなく、ビジネス プラットフォームでもあります。チャットボットは、企業がオンラインで商品やサービスを効果的に販売および宣伝するのに役立ちます。日々のプロセスを自動化し、必要な製品情報を顧客にタイムリーに提供し、リクエストを受信して​​処理する – 適切に構成されたチャットボットのこれらすべての機能は、ユーザーを顧客に変えるのに役立ちます。したがって、開発者としては、このツールが現在どれほど人気が​​あるのか​​、そしてそのようなアプリケーションを作成してその結果として人気のあるエキスパートになれることがどれほど素晴らしいのかを覚えておく必要があります。

元のタイトル: Azure Bot を使用してチャットボットを作成する方法サービス: ステップバイステップの説明 #,著者: Daniil Mikhov # ##################################

以上がAzure Bot Services を使用してチャットボットを作成する方法のステップバイステップの手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート