<commit_before># Bot Framework & LUIS で作る Microsoft Teams 連携ボット ハンズオン
Microsoft Teams と連携する Bot 開発をするための学習用レポジトリです。


## ハンズオンガイド

### ハンズオンの目標
今回のハンズオンでは、2時間を目安に初級課題の完了を目標とします。

初級課題を終えることにより、Bot Framework を使った Microsoft Teams と連携する Bot を構築することができます。初級課題を終えて時間に余裕のある方は、中級課題として LUIS の設定を行い Bot から 接続させるための API の立ち上げを行い、Bot と連携を行えるようにします。

各課題のリンク先のブログにはサンプルコードがありますので、たとえ時間内に終わらなかったとしても、後からじっくりと取り組むことができます。


### ハンズオンの準備
以下のページを参照して Visual Studio, Bot Framework, Bot Emulator による開発環境をセットアップします。

[一問一答 Bot の開発 (Getting Started)](https://secretarybotja.wordpress.com/2017/02/12/%E4%B8%80%E5%95%8F%E4%B8%80%E7%AD%94-bot-%E3%81%AE%E9%96%8B%E7%99%BA-getting-started/)

### 初級課題
Bot Builder SDK でローカルに作成していた Bot を Azure Web Apps にアップロードします。そして、Bot Directory と Channel を使い Bot を Microsoft Teams と連携させます。

Bot の機能としては、チャットインターフェイス上で、ボタンを使ってメインメニューの機能、ホテル・旅行の予約を Bot とのチャットで行う機能を実装します。
1. [作った Bot に Teams 経由で話しかける](https://secretarybotja.wordpress.com/2017/02/18/%E4%BD%9C%E3%81%A3%E3%81%9F-bot-%E3%81%AB-skype-%E7%B5%8C%E7%94%B1%E3%81%A7%E8%A9%B1%E3%81%97%E3%81%8B%E3%81%91%E3%81%A6%E3%81%BF%E3%82%8B/)

2. [Dialog を使った”会話”の実装](https://secretarybotja.wordpress.com/2017/02/18/dialog-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BC%9A%E8%A9%B1%E3%81%AE%E5%AE%9F%E8%A3%85/)

3. [複数の話題を扱えるBotを作る](https://secretarybotja.wordpress.com/2017/02/19/%E8%A4%87%E6%95%B0%E3%81%AE%E8%A9%B1%E9%A1%8C%E3%82%92%E6%89%B1%E3%81%88%E3%82%8Bbot%E3%82%92%E4%BD%9C%E3%82%8B/)


### 中級課題

はじめに、Microsoft Cogonitive Services の LUIS (Language Understanding Intelligent Service) を利用して、自然言語で Bot とやり取りできる API の準備を行います。

以下の URL に記載されている内容を参考に LUIS のセットアップを行い、入力した自然言語での問いかけへの分析が JSON と LUIS から帰ってくることを確認します。

4. [LUISを利用できるようにする](/LUIS/LUIS.md)

次に、上記手順を実施の上、TeamsBotプロジェクトを使ってBot開発をしてください。`LuisService.cs`に App ID, App Key を埋め込むと使えるようになります。

### 上級課題

Azure ADと連携の実装や、認証情報を使って Bot から Office 365 に Microsoft Graph API 経由で接続します。

5. [Bot に Azure AD 認証/認可を組み込む](https://secretarybotja.wordpress.com/2017/02/25/bot-%E3%81%AB-azure-ad-%E8%AA%8D%E8%A8%BC%E8%AA%8D%E5%8F%AF%E3%82%92%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%80/)
6. [Bot から Graph API を呼び出す](https://secretarybotja.wordpress.com/2017/02/28/bot-%E3%81%8B%E3%82%89-365-api-%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99/)

Azure の検索サービスである Azure Search と、NoSQL Database サービスのDocumentDB と Bot を連携させ Bot に検索機能を実装します。<commit_msg>read me 05/23 11:43<commit_after># Bot Framework & LUIS で作る Microsoft Teams 連携ボット ハンズオン
Microsoft Teams と連携する Bot 開発をするための学習用レポジトリです。


## ハンズオンガイド

### ハンズオンの目標
今回のハンズオンでは、2時間を目安に初級課題の完了を目標とします。

初級課題を終えることにより、Bot Framework を使った Microsoft Teams と連携する Bot を構築することができます。初級課題を終えて時間に余裕のある方は、中級課題として LUIS の設定を行い Bot から 接続させるための API の立ち上げを行い、Bot と連携を行えるようにします。

各課題のリンク先のブログにはサンプルコードがありますので、たとえ時間内に終わらなかったとしても、後からじっくりと取り組むことができます。


### ハンズオンの準備
以下のページを参照して Visual Studio, Bot Framework, Bot Emulator による開発環境をセットアップします。

[一問一答 Bot の開発 (Getting Started)](https://secretarybotja.wordpress.com/2017/02/12/%E4%B8%80%E5%95%8F%E4%B8%80%E7%AD%94-bot-%E3%81%AE%E9%96%8B%E7%99%BA-getting-started/)

2017/05/23追記：Microsoft Teams と連携を試していただく際に、会社の Office 365 の Microsoft Teams では外部アプリの利用が止められている可能性があります。設定は[はじめよう Microsoft Teams 第2回](https://blogs.msdn.microsoft.com/lync_support_team_blog_japan/2016/11/25/start-microsoft-teams-2/)の *“[Microsoft Teams で外部アプリを利用できるようになります] と [外部アプリのサイドローディングを利用できるようになります]”* を確認してください。（設定変更にはOffice 365 の全体管理者が必要です。現時点で変更が難しい場合は、10分ほどで取得が可能ですので、[Office 365 無料使用版](https://products.office.com/ja-jp/business/office-365-enterprise-e3-business-software)の取得をお勧めいたします。abc.onmicrosoft.com の “abc”は、Hacdaysbot20170523など適当なものにすることをお勧めいたします。）



### 初級課題
Bot Builder SDK でローカルに作成していた Bot を Azure Web Apps にアップロードします。そして、Bot Directory と Channel を使い Bot を Microsoft Teams と連携させます。

Bot の機能としては、チャットインターフェイス上で、ボタンを使ってメインメニューの機能、ホテル・旅行の予約を Bot とのチャットで行う機能を実装します。
1. [作った Bot に Teams 経由で話しかける](https://secretarybotja.wordpress.com/2017/02/18/%E4%BD%9C%E3%81%A3%E3%81%9F-bot-%E3%81%AB-skype-%E7%B5%8C%E7%94%B1%E3%81%A7%E8%A9%B1%E3%81%97%E3%81%8B%E3%81%91%E3%81%A6%E3%81%BF%E3%82%8B/)

2. [Dialog を使った”会話”の実装](https://secretarybotja.wordpress.com/2017/02/18/dialog-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E4%BC%9A%E8%A9%B1%E3%81%AE%E5%AE%9F%E8%A3%85/)

3. [複数の話題を扱えるBotを作る](https://secretarybotja.wordpress.com/2017/02/19/%E8%A4%87%E6%95%B0%E3%81%AE%E8%A9%B1%E9%A1%8C%E3%82%92%E6%89%B1%E3%81%88%E3%82%8Bbot%E3%82%92%E4%BD%9C%E3%82%8B/)


### 中級課題

はじめに、Microsoft Cogonitive Services の LUIS (Language Understanding Intelligent Service) を利用して、自然言語で Bot とやり取りできる API の準備を行います。

以下の URL に記載されている内容を参考に LUIS のセットアップを行い、入力した自然言語での問いかけへの分析が JSON と LUIS から帰ってくることを確認します。

4. [LUISを利用できるようにする](/LUIS/LUIS.md)

次に、上記手順を実施の上、TeamsBotプロジェクトを使ってBot開発をしてください。`LuisService.cs`に App ID, App Key を埋め込むと使えるようになります。

### 上級課題

Azure ADと連携の実装や、認証情報を使って Bot から Office 365 に Microsoft Graph API 経由で接続します。

5. [Bot に Azure AD 認証/認可を組み込む](https://secretarybotja.wordpress.com/2017/02/25/bot-%E3%81%AB-azure-ad-%E8%AA%8D%E8%A8%BC%E8%AA%8D%E5%8F%AF%E3%82%92%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%80/)
6. [Bot から Graph API を呼び出す](https://secretarybotja.wordpress.com/2017/02/28/bot-%E3%81%8B%E3%82%89-365-api-%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99/)

Azure の検索サービスである Azure Search と、NoSQL Database サービスのDocumentDB と Bot を連携させ Bot に検索機能を実装します。
{'fraction_non_alphanumeric': 0.14894426478980408, 'fraction_numerical': 0.11204108807304547, 'mean_word_length': 7.988034188034188, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '997064', 'n_tokens_mistral': 3836, 'n_tokens_neox': 3486, 'n_words': 328}