【NLU祭り 場外編】
コミュニケーションをより身近に、
よりかしこく。LUIS と Azure AI
サービスの使いどころ
LINE Developers Community REV UP 2021
スピーカー
大平 かづみ
• Microsoft MVP (since 2016)
• Infrastructure as Code や GitHub
Actions による自動化が得意
• Cogbot コミュニティや
Hack Everything のコミュニティ
を運営、Azure, GitHub のワーク
ショップを開催
• 女性エンジニアを応援するコミュ
ニティ Code Polaris 立上げ
• Twitter: @dz_
• https://github.com/dzeyelid
• https://zenn.dev/dzeyelid
横浜 篤
• Microsoft MVP (since 2017)
• PaaS / Serverless と DevOps を
テーマに活動
• Cogbot コミュニティや
Hack Everything のコミュニ
ティを運営、Azure, GitHub の
ワークショップを開催
• Twitter: @BEACH_SIDE
• ブログ: BEACHSIDE BLOG
http://blog.beachside.dev
Cogbot コミュニティ
Azure Cognitive Services + Bot Framework
NLU祭り 場外編
クラウドの自然言語理解を知るNLU祭り
今日は【NLU祭り Microsoft Azure 編】と、
チャットボット開発ヒントをお届けします!
手始めに、
LINEプラットフォーム
における開発を確認してみる
LINEプラットフォームにおける開発
主要なサービス 説明
Messaging API LINE上で双方向のコミュニケーションができる。
LINE Front-end
Framework
(LIFF)
LINE上で提供できるウェブアプリケーション。
ユーザーのLINEアカウントの情報を利用できる。LINEログインチャネ
ルに追加できる。
LINEミニアプリ LINE上で提供できるウェブアプリケーション。LIFF上で動く。
友達追加せずとも、サービスメッセージを送ることができる。LINE Pay
を利用できる。
開発及び公開には申請・審査が必要。
このほか、LINE Things、LINE CLOVA Extensions Kit、LINE Pay、ブロックチェーンサー
ビスなど多数の開発要素が提供されている
ふむふむ。
LINE による AIサービス "LINE CLOVA"
• LINEが提供するAIサービスの総称
• プロダクト
• Chatbot, OCR, Speech, Voice, Face, Vision, Text Analytics
• これらを組み合わせたソリューションも展開
• LINE AiCall(音声対応AIサービス)
• LINE eKYC(オンライン本人確認サービス)
• 各種CLOVA搭載デバイス
• ほかのLINEサービスとの連携が容易
• 利用したい場合は、問い合わせから
ふむふむ。
LINE CLOVA Chatbot
• 自然言語理解(NLU)+QA取込み+多言語サポート
• 高機能ビルダー
• 商用利用は55,000円/月(エンタープライズは要問合せ)
• チャット回数 上限なし(一定回数以上は従量課金)
• Q&A登録数 上限あり
ふむふむ?
すぐ試すにはちょっとハードルが高いな?
今日ご参加の開発者の皆さま、実は困惑されているのでは…?
Azure Cognitive Services
のご提案
Azure Cognitive Services とは?
AI の民主化を実現するためのツール
API を呼び出すだけで AI のパワーをアプリケーションに組み込むことが実現
Azure AI の全体像
Azure Applied AI Services
Azure Video
Analyzer
Azure Metrics
Advisor
Azure Bot
Service
Azure Form
Recognizer
Azure Cognitive
Search
Azure Immersive
Reader
Azure Cognitive Services
Vision Speech
Language Decision
Azure Machine Learning
Azure Machine Learning
Azure Cognitive Services の一覧
Vision Speech
Language Decision (Search)
Text Analytics
Translator
QnA Maker
Language
Understanding
Computer Vision
Custom Vision
Face
Anomaly Detector
Content Moderator
Personalizer
Speech service Bing Search APIs
• News
• Video
• Web
• Autosuggest
• Custom
• Entity
• Image
• Visual
• Local Business
• Spell check
Language Understanding (LUIS)
会話から “意図” を予測し ”関連性のある情報” を引き出す
Intent (意図) 新幹線の時刻
Entity
日時 現時刻
出発地 東京
目的地 大阪
Intent (意図) 天気予報
Entity
日時 明日
場所 渋谷
明日の渋谷の天気は?
東京から大阪までの新幹線は何時?
LUIS での開発
モデルの作成は、LUIS ポータルでも可能
• Intent と Entity を定義する
• Prebuilt Domains を使って汎用的な Intent を定義可能
• Utterance (質問の会話)を登録して Entity のラベリングする
• 登録後は Training を実行することでモデルが作成される
• 必要に応じて features を追加
• さまざまなパターンのフレーズリスト
LUIS での開発・運用
開発と運用のための機能が充実
• モデルのバージョン管理
• Prediction 用のエンドポイント
• staging 環境と production 環境
• Docker container としてエクスポートも可能
• エンドポイントで実行された発話を学習データとして再利用が可能
• ダッシュボードで利用状況の確認
Azure における
チャットボットの実装
Azure が提供する
チャットボット開発・運用環境
開発 運用
デプロイ
SDK
GUIベースのIDE
Composer
Bot Framework
Bot Service … …
Microsoft Azure
マルチチャンネル
Language
Understanding
QnA Maker …
+
Azure が提供する
チャットボット開発・運用環境
開発 運用
デプロイ
SDK
GUIベースのIDE
Composer
Bot Framework
Bot Service … …
Microsoft Azure
マルチチャンネル
Language
Understanding
QnA Maker …
+
Bot Framework Composer
• GUI でチャットボットの会話を組み立てられる IDE
• Bot Framework SDK がベース
• さまざまなコンポーネント
• ダイアログ、アクション、トリガ
• Azure Bot Service にデプロイできる
• Language Understanding (LU) 連携
• QnA Maker 連携
• 多言語サポート
例えば、
LINE CLOVA Chatbot 同等の
実装するには?
CLOVA Chatbot 同等の実装するには?
CLOBA Chatbot 機能 Azure サービス
自然言語処理(NLU) Language Understanding
QA取込み QnA Maker
多言語サポート Bot Framework Composer の多言語サポート、
Translator
高機能ビルダー Bot Framework Composer
• 料金は、無料プランと規模や利用量による従量課金
• 無料で試せる
デモ:
Bot Framework Composer で
LU + QnA Maker 連携
デモカンペ
1. Language Understanding(LU)と QnA Maker を作っておく。
2. Composer で Empty (JavaScript) で新規作成しておく。
3. 言語設定と defaultLocale を日本語にしておく。
4. ウェルカムメッセージ変更、Unknown でオウム返し書く。
5. LU、QnA Maker へ接続、トリガ設定する。
6. Composer 上で動作を確認する。
デモ:
デプロイしてLINEと接続
デモカンペ
1. デプロイ先のリソースを作っておく。
2. LINE プロバイダーと Messaging API チャネルを作っておく。
3. デプロイする。
4. Bot Service のLINEチャネルを設定する。
5. LINEで確認する。
LINEで作成したボットを利用できる
コードで自由にカスタマイズ
コードでより柔軟に最適化、拡張
• Bot Framework Composer はコードで拡張できる
• Extend your Composer bot with code
• How to create and share component packages for Composer
• Create a custom action / Create a custom trigger
• Bot Framework SDK でフルスクラッチも可能
• v4 リリース
• C#, JavaScript, Java, Python
コードによる
Bot Framework Composer の拡張手順
• SDKでコンポーネント(処理)を作成する
• BotComponent クラスを用いて読込む
• 定義ファイルは exported ディレクトリへ
• Composer で読み込むためのスキーマ定義(.schema)※必須
• declarative ファイル各種(.dialog, .lg, .lu, .qna)
• UI定義ファイル(.uischema)
• これらをパッケージとして公開、プロジェクトで読込む
デモ:
コードによるカスタマイズ
GitHub packages (プライベートレジストリ)で公開したカスタムアク
ションを取り込む
デモカンペ
1. .npmrc で GitHub packages のレジストリを設定しておく。
2. コードを見せる。
3. パッケージを読み込む。
4. ダイアログを配置する。
5. 起動し、Output の出力を確認する。
料金参考
Azure Cognitive Services とボット関連
料金参考(Cognitive Services)
Azure サービス 説明
Language Understanding 10,000予測トランザクション/月の無料プラン、
または168円/1,000トランザクション
QnA Maker 3ドキュメント/月は無料、または1,120円/月
QnA Maker (App Service) 開発用の無料、またはパフォーマンスに応じた
有料の固定プラン
QnA Maker (Cognitive
Search)
開発用の無料プラン、またはパフォーマンスに
応じた有料の固定プラン
Translator 200 万文字/月は無料、以降従量課金など
• 2021年9月時点
• 無料プランの利用には各種の制限があるので公式ドキュメントにて詳細を確認すること。
料金参考(ボット関連)
Azure サービス 説明
Bot Framework Composer 無料
Azure Bot Service LINE を含むStandardチャネルの場合、無料
App Service
(Azure Web app / Function)
開発用の無料プラン、またはパフォーマンス
に応じた有料の固定プラン
• 2021年9月時点
• 無料プランの利用には各種の制限があるので公式ドキュメントにて詳細を確認すること。
Azure 各種サービスとの
親和性、拡張性
Azure プラットフォームの豊富な機能
Cosmos DB
(NoSQL)
Functions
(FaaS)
Machine Learning Static Web Apps
Search
Application
Insights
Web Apps
Storage account
… … … …
ご視聴くださり、ありがとうございました!

【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ