説明/参照:
テストレット2
ケーススタディ
バックグラウンド
あなたのために最高Organics Companyは複数の場所を持っている世界的なレストランのフランチャイズです。同社はユーザーエクスペリエンスとベンダーの統合を強化したいと考えています。同社は自動化されたモバイル注文および配送サービスを実装する予定です。
Best For You Organicsは、URL https://www.bestforyouorganics.comでAzure Webアプリをホストしています。ユーザーはWebアプリケーションを使用して、レストランの場所、メニュー項目、栄養情報、および会社情報を閲覧できます。同社はクロスプラットフォームのモバイルアプリを開発して展開しました。
必要条件
チャットボット
Bot Builder SDKとLanguage Understanding Intelligence Service(LUIS)を使用してチャットボットを開発する必要があります。チャットボットは、ユーザーが集配または配達のために食べ物を注文することを許可しなければなりません。
チャットボットは以下の要件を満たす必要があります。
Bot Frameworkコネクタを使用して、chatbotが安全であることを確認してください。

ユーザーがチャットボットと対話できるように、自然言語処理と音声認識を使用します。

テキストと音声を使用して処理はサーバーベースでなければなりません。
地元のレストランでのプロモーションについてユーザーに知らせます。

ユーザーが自分の声を使って配達または集荷の注文をすることを可能にします。

アクションボタンを含むグラフィカルインターフェイスを表示して、サインイン時にユーザーに挨拶します。

チャットボットのあいさつインタフェースは、次の例のフォーマットと一致する必要があります。


ベンダーAPI
ベンダーは、Azure API ManagementがホストするAPIを使用して、レストランの在庫および配達サービスに関する更新を受け取り、提供します。各ベンダーは、各APIにアクセスするために独自のサブスクリプションを使用しています。
APIは次の条件を満たす必要があります。
APIの使用量は、1ベンダあたり1時間あたり5000コールおよび50,000キロバイトの帯域幅を超えてはなりません。

ベンダーが通話数または帯域幅の制限に近づいている場合、APIは次の電子メール通知をトリガーする必要があります。

提供事業者。
APIでは、コールレートを1コールあたり100コールに制限することで、サブスクリプションごとのAPI使用率の急上昇を防ぐ必要があります。

分。
インベントリAPIは、ASP.NET CoreとNode.jsを使用して記述する必要があります。

Azure SQL Databaseオブジェクトへのインターフェイスを提供するには、APIを更新する必要があります。

コードを使う
Delivery APIは、Azure Active Directory(Azure)でOAuth 2.0プロトコルを使用して保護する必要があります。

Azure Webアプリから呼び出されたとき。 Delivery APIとWebアプリをAzure ADに登録します。 WebアプリケーションでOAuth 2.0を有効にします。
配信APIは、商品テーブル、仕入先取引テーブル、および請求テーブルを更新する必要があります。

単一トランザクション
Best For You Organics Companyのアーキテクチャーチームは、Azureへの予想される展開を表す次の図を作成しました。

建築
問題
配信API
Delivery APIは断続的に次の例外をスローします。
"System.Data.Entity.Core.EntityCommandExecutionException:コマンド定義の実行中にエラーが発生しました。詳細については、内部の例外を参照してください。
- - > System.Data.SqlClient.SqlException:サーバーから結果を受け取るときにトランスポートレベルのエラーが発生しました。 (プロバイダ:セッションプロバイダ、エラー:19
- 物理的な接続は使用できません)
チャットボットの挨拶
チャットボットのグリーティングにはユーザーの名前は表示されません。チャットボットをローカルでデバッグする必要があります。
言語処理
ユーザーがイタリア語の名前を使った料理を注文しようとすると、ボットが理解に失敗したとユーザーは報告しています。
アプリコード
アプリファイルの関連部分を以下に示します。行番号は参照用としてのみ含まれており、それらが属する特定のファイルを示す2文字の接頭部を含みます。
