事例研究4 - ベスト・フォー・ユー・オーガニックス
背景
Best for You Organics Companyは、複数の店舗を展開するグローバルなレストランフランチャイズ企業です。同社は、ユーザーエクスペリエンスとベンダーとの連携強化を目指しており、モバイル端末による自動注文・配達サービスの導入を計画しています。
Best For You Organicsは、https://www.bestforyouorganics.com のURLでAzureウェブアプリをホストしています。
ユーザーはウェブアプリを使って、レストランの所在地、メニュー、栄養情報、会社情報などを閲覧できます。同社はクロスプラットフォーム対応のモバイルアプリを開発・展開しました。
要件
Bot Builder SDKと言語理解インテリジェンスサービス(LUIS)を使用して、チャットボットを開発する必要があります。このチャットボットは、ユーザーがテイクアウトまたはデリバリーで食品を注文できる機能を提供する必要があります。
チャットボットは以下の要件を満たす必要があります。
* チャットボットのエンドポイントには、Bot Frameworkコネクタからのみアクセスできることを確認してください。
* 自然言語処理と音声認識を使用して、ユーザーが
テキストと音声を使用するチャットボット。処理はサーバー側で行う必要がある。
* 地元のレストランのプロモーション情報をユーザーに通知します。
* ユーザーが音声を使って配達または店頭受け取りの注文ができるようにする。
* サインイン時に、アクションボタンを含むグラフィカルインターフェースを表示してユーザーに挨拶します。
* チャットボットの挨拶インターフェースは、以下の例のフォーマットに一致する必要があります。

ベンダーAPI
ベンダーは、Azure API ManagementでホストされているAPIを使用して、レストランの在庫状況や配送サービスに関する最新情報を受信および提供します。各ベンダーは、それぞれのAPIにアクセスするために独自のサブスクリプションを使用します。
APIは以下の条件を満たす必要があります。
* APIの使用は、ベンダーごとに1時間あたり5,000回の呼び出しと50,000キロバイトの帯域幅を超えてはなりません。
ベンダーが呼び出し回数または帯域幅の制限に近づくと、APIはメールをトリガーする必要があります。
ベンダーへの通知。
* APIは、呼び出しレートを100に制限することにより、サブスクリプションごとにAPI使用の急増を防ぐ必要があります。
1分あたりの通話数。
* 在庫管理APIは、ASP.NET CoreとNode.jsを使用して記述する必要があります。
* API を更新して Azure SQL Database へのインターフェイスを提供する必要があります。データベース オブジェクト
コードを使用して管理する必要がある。
* 配信APIは、Azure Active Directoryを使用したOAuth 2.0プロトコルによって保護する必要があります。
Azure Web アプリから呼び出される場合、(Azure AD) を使用します。配信 API と Web アプリを Azure AD に登録します。Web アプリで OAuth 2.0 を有効にします。
* 配送APIは、製品テーブル、ベンダー取引テーブル、および請求を更新する必要があります
単一のトランザクションでテーブルを処理。
Best For You Organics社のアーキテクチャチームは、Azureへの想定されるデプロイメントを示す以下の図を作成しました。

配信API
デリバリーAPIが断続的に以下の例外をスローします。

チャットボットの挨拶
チャットボットの挨拶にユーザー名が表示されません。チャットボットをローカル環境でデバッグする必要があります。
言語処理
ユーザーからは、顧客がイタリア語の名前を使った料理を注文しようとした際に、ボットがそれを理解できないという報告が寄せられている。
アプリファイルの関連部分を以下に示します。行番号は参考のために記載されており、各行番号には、該当するファイルを示す2文字の接頭辞が付いています。
Startup.cs

ユーザーがログインした際に挨拶するように、チャットボットを更新する必要があります。
使用できるリッチカード形式はどれですか?正解はそれぞれ完全な解答例を示しています。
注:正解ごとに1ポイントが加算されます。
正解:A,D
Scenario: The chatbot greeting interface must match the formatting of the following example:

A message exchange between user and bot can contain one or more rich cards rendered as a list or carousel. The Attachments property of the Activity object contains an array of Attachment objects that represent the rich cards and media attachments within the message.
The Bot Framework currently supports eight types of rich cards:
Thumbnail Card. A card that typically contains a single thumbnail image, one or more buttons, and text.
SignIn Card. A card that enables a bot to request that a user sign-in. It typically contains text and one or more buttons that the user can click to initiate the sign-in process.
Incorrect Answers:
B: Animation Card. A card that can play animated GIFs or short videos.
C Hero Card. A card that typically contains a single large image, one or more buttons, and text.
E: Adaptive Card. A customizable card that can contain any combination of text, speech, images, buttons, and input fields.
Note:
Receipt Card. A card that enables a bot to provide a receipt to the user. It typically contains the list of items to include on the receipt, tax and total information, and other text.
Video Card. A card that can play videos.
References:
https://docs.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-add-rich-card-attachments?view=azure-bot-service-3.0 Question