
セクション:[なし]
説明/参照:
テストレット2
ケーススタディ
バックグラウンド
Best For You Organics Companyは、複数の場所を持つグローバルなレストランフランチャイズです。同社は、ユーザーエクスペリエンスとベンダー統合を強化したいと考えています。同社は、自動化されたモバイル注文および配送サービスを実装することを計画しています。
Best For You Organicsは、URLhttps://www.bestforyouorganics.comでAzureWebアプリをホストしています。ユーザーはWebアプリを使用して、レストランの場所、メニュー項目、栄養情報、および会社情報を参照できます。
同社は、クロスプラットフォームのモバイルアプリを開発して展開しました。
要件
チャットボット
ボットビルダーSDKと言語理解インテリジェンスサービス(LUIS)を使用してチャットボットを開発する必要があります。チャットボットは、ユーザーが集荷または配達のために食べ物を注文できるようにする必要があります。
チャットボットは次の要件を満たしている必要があります。
*ボットフレームワークコネクタを使用して、チャットボットが安全であることを確認します。
*ユーザーがテキストと音声を使用してチャットボットと対話できるように、自然言語処理と音声認識を使用します。処理はサーバーベースである必要があります。
*地元のレストランでのプロモーションについてユーザーに警告します。
*ユーザーが自分の声を使用して配達または集荷を注文できるようにします。
*アクションボタンを含むグラフィカルインターフェイスを表示して、サインイン時にユーザーに挨拶します。
*チャットボットグリーティングインターフェイスは、次の例のフォーマットと一致する必要があります。

ベンダーAPI
ベンダーは、Azure API ManagementがホストするAPIを使用して、レストランの在庫と配信サービスの更新を受け取り、提供します。各ベンダーは、独自のサブスクリプションを使用して各APIにアクセスします。
APIは次の条件を満たす必要があります。
* APIの使用量は、ベンダーごとに1時間あたり5,000コールと50,000キロバイトの帯域幅を超えてはなりません。
*ベンダーが通話数または帯域幅制限に近づいている場合、APIはベンダーへの電子メール通知をトリガーする必要があります。
* APIは、呼び出しレートを1分あたり100呼び出しに制限することにより、サブスクリプションごとにAPI使用量の急増を防ぐ必要があります。
* Inventory APIは、ASP.NETCoreとNode.jsを使用して作成する必要があります。
* APIを更新して、AzureSQLデータベースオブジェクトへのインターフェイスを提供する必要があります。コードを使用して管理する必要があります。
* Delivery APIは、Azure Webアプリから呼び出されたときに、Azure Active Directory(Azure AD)でOAuth2.0プロトコルを使用して保護する必要があります。DeliveryAPIとWebアプリをAzureADに登録します。WebアプリでOAuth2.0を有効にします。
*配信APIは、単一のトランザクションでProductsテーブル、Vendor Transactionsテーブル、およびBillingテーブルを更新する必要があります。
Best For You Organics Companyのアーキテクチャチームは、Azureへの予想される展開を示す次の図を作成しました。

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