本記事は、初心者さん・学生さん大歓迎! Xamarin その1 Advent Calendar 2017 の19日目の記事です。
先日、IBM Cloud ライトプランが、発表されました。
無料、無期限、クレジットカード登録なしで42種類ものプラットフォームサービスやAPIを使うことができ、もちろんWatson APIも無料で使うことができます。
その中でも、Watson APIの一つであるConversationを使うと、自然言語を意図分類しながら回答するAIチャットボットが、わりと簡単に作成できます。
そんなConversationですが、IBM CloudのWeb管理コンソールから、作ったBotのデモンストレーションを行うことができます。
でもお客さんに見せる時、管理コンソールは、、、っとかありますよね。
LINEやSlack連携なども可能ですが、Developer Accountの取得、設定など、多少手間がかかります。(それでも簡単ですが)
そんな時に簡易的にデモを行えるツール(アプリ)が欲しいなーと思い、作ることにしました。
IBMCloudの管理画面からサービス資格情報
-> 一覧からConversationサービスを選択
-> 資格情報の表示を押下すると表示される、UserName,Password
をアプリで入力することで、接続できます。
LINEや他のChatサービス連携とは違い、Developer Accountの取得や、管理ポータルでの設定は不要です。
本当はXamarinについての質問を返すAIチャットボットを作って、Xamarin.Formsクライアントからデモを行う、というのをやりたかったのですが、間に合わなかったので、それは別の機会に。
作ったもの
まずは動画をご覧ください。
Conversationのチュートリアルとして用意されている、車のAIチャットボットに繋いでみました。
「play music」 と入力すると、音楽のジャンルはなんだ?と聞き返されます。
「Jazz」と入力すると、Jazzの音楽を起動してくれます。
「Thanks」と入力すると、言われ慣れていないのか「何言ってるかわかんない」と言われますw(覚えさせていないだけ)
こんな感じで、ボットのデモを行うことができるアプリです。
フレームワーク、ライブラリ
- Xamarin.Forms (.NET Standard2.0)
- Watson Developer Cloud .NET Standard SDK
- Prism.Forms
- ReactiveProperty
作り方
Watson Developer Cloudが .NET Standard 1.6〜に対応しているため、
Xamarin.Forms でPCLを .NET Standardに変更しました。せっかくなので、2.0対応しました。
あとは WatsonDeveloerCloud Conversation API をラップしたModelクラスを作成し、ViewModelを介して画面を更新しています。
ソースも公開しています。
まだUIも味気なく、ログイン機能もないですが、資格情報をご自身のUserName,Passwordに変更することで、実際にお試しいただけます。
近々、ログイン機能やUIの刷新を行ったのち、ストアにリリースできればいいなと思っております。
技術的内容が薄めですみませんが、以上となります!
なお、所属する会社のアドベンドカレンダーにXamarin Profierでメモリリーク解析を書きましたので、よろしければご覧ください。
明日はJXUG主催 田淵さんの「何がNativeで何がEmbeddingなの?って初心者向けの話を書きます。」です。
引き続き初心者さん・学生さん大歓迎! Xamarin その1 Advent Calendar 2017をお楽しみください。