【ビール女子麦子さん】 IBM WatsonとLINEでbotを作ってみた 

#１．きっかけ
私はクラフトビールが大好きなのですが、いろいろなビールに出会っても、種類が多すぎて覚えておけないということに悩みを感じていました。そこで、AI的なものにビールの情報を覚えさせて、Botを経由していつでも情報を引き出すことができるようにしたいと考えました。
![botimage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/aba0f542-c1c9-4ec7-3fea-54792d2d43a9.png)

#２．作るもの
「ビール女子🍺麦子さん」というビールに特化したチャットボット。
・入力インタフェースは**Line**（**Line Messaging API**を利用）
・頭脳は**IBM Watson Assistant**
・**Node-RED**
![ime-ji.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/90618c2a-03f4-a534-fbb1-f230f19f28bd.png)


#３．参考にした資料＆作り方
以下の資料に従って環境の構築を行いました。
基本的には、この記事の手順に従えばOKなのですが、はまった点だけ書き出しておきます。

**LINE x Watson AIボット入門**
https://qiita.com/bird_tomita/items/4c307f05b6de384b0170

##（１）Workspaceの作成方法
参考にしたサイトの「Workspaceの作成」のところで、以前は「Create a Workspace」というボタンがあったようですが、現在は「Create a Skill」に変わっています。以下の手順でサンプルのjsonファイルを読み込みました。

①[Skills]タブを選択
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/d83b977a-e021-c615-8a5c-6476303f7ea7.png)

②[Create skii]ボタンをクリック
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/85de32c7-8d3e-f778-57fa-94eaf8774832.png)

③[Import skill]タブの[Choose JSON File]からサンプルjsonファイルをインポート
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/8750629a-43ae-45ca-0fbd-34e47d147c9e.png)


##（２）WatsonAssistantのWorkspaceID等の確認方法
参考にしたサイトの「Watson Assistant認証情報の確認」のところで、Workspace ID、Username、Passwordが必要になります。念のためIBMCloudからWatsonAssistantを起動するところも含めて、手順を記しておきます。

①IBMCloudの左メニューから[リソースリスト]をクリック
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/50cf45d5-d281-887f-7da4-e710a25728b8.png)

②リソースリストから[Watson Assistant]をクリック
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/19cd638e-d30f-7058-b4eb-672d5c8efd1f.png)

③[ツールの起動]をクリック
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/04973638-45fa-2ebe-ee7a-857134df193a.png)

④[Skills]タブを選択
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/f56154fe-1961-cbf2-4136-eca8da485d11.png)

⑤対象のスキルの右上の点々から「View API Details]をクリック
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/4bda4799-d76a-3a0e-d721-93283455f33f.png)

⑥このWorkspace ID、Username、Passwordを利用します。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/ee60d704-52f0-e0c2-8216-6700574e8b58.png)

##（３）Node-REDのHttp requestの設定
手順通り設定してデプロイしたつもりでしたが、うまくLINE側回答が表示できないということが発生しました。よくよくみると、**Node-REDのHttp requestの「認証を使用」が「オン」**になってしまっていました。これを**「オフ」**にすると、正常に回答が表示されるようになりました。

![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/0e72b328-4296-bd18-8858-d7fb48ad05e3.png)

よくわからないのは、それ以降もこの部分を変えたつもりはないのですが、何かのタイミングで「オン」に戻ってしまい、回答が表示されなくなるという事象が発生しています。また、原因がわかったら追記します。

<追記>
認証なしなのはちょっとよろしくない気がするので、以下のように設定変更しました。
・認証を使用にチェック
・Bearer認証
・Lineのアクセストークン（※）
※LineDevelopersのチャンネル基本設定のアクセストークン欄で参照できます

#５．できあがり
こんな感じになりました！

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">つくってみたー！！中身はWatson Assistant(Watson Conversation)です。会話のスキル作るの楽しい！！<br>これからビールの知識を増やして立派なビール女子に育てます😃 <a href="https://t.co/nZfuqH4IfC">pic.twitter.com/nZfuqH4IfC</a></p>&mdash; はぁこ🌸ビール女子麦子開発中 (@paco_itengineer) <a href="https://twitter.com/paco_itengineer/status/1119612368240005120?ref_src=twsrc%5Etfw">April 20, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

よかったら使ってみてくださいね！

ビール女子🍺麦子さん　
　　↓↓↓↓↓
<a href="http://nav.cx/aLo5a15"><img src="https://scdn.line-apps.com/n/line_add_friends/btn/ja.png" alt="友だち追加" height="36" border="0"></a>

※現在開発中につき、予告なくサービスを停止したり、クーポンの配布テストなどを行う可能性がある点をご了承ください。

 

#６．今後について
その後、麦子さんをGoogle Home Mini（Google Assistant)対応させたり、Watson Visual Recognitionを使って画像認識をする機能を追加したりしています。

また、時間を見て、そのことについても記事にしてみようと思います。