Help us understand the problem. What is going on with this article?

IBM Watson ConversationのChatBotクライアントをXamarinで作ってみた

More than 3 years have passed since last update.

本記事は、初心者さん・学生さん大歓迎! Xamarin その1 Advent Calendar 2017 の19日目の記事です。

先日、IBM Cloud ライトプランが、発表されました。
無料、無期限、クレジットカード登録なしで42種類ものプラットフォームサービスやAPIを使うことができ、もちろんWatson APIも無料で使うことができます。

その中でも、Watson APIの一つであるConversationを使うと、自然言語を意図分類しながら回答するAIチャットボットが、わりと簡単に作成できます。

そんなConversationですが、IBM CloudのWeb管理コンソールから、作ったBotのデモンストレーションを行うことができます。

スクリーンショット 2017-12-19 13.46.58.png

でもお客さんに見せる時、管理コンソールは、、、っとかありますよね。
LINEやSlack連携なども可能ですが、Developer Accountの取得、設定など、多少手間がかかります。(それでも簡単ですが)
そんな時に簡易的にデモを行えるツール(アプリ)が欲しいなーと思い、作ることにしました。

IBMCloudの管理画面からサービス資格情報
  -> 一覧からConversationサービスを選択
    -> 資格情報の表示を押下すると表示される、UserName,Password
をアプリで入力することで、接続できます。
LINEや他のChatサービス連携とは違い、Developer Accountの取得や、管理ポータルでの設定は不要です。

本当はXamarinについての質問を返すAIチャットボットを作って、Xamarin.Formsクライアントからデモを行う、というのをやりたかったのですが、間に合わなかったので、それは別の機会に。

作ったもの

まずは動画をご覧ください。

conversationclient.gif

Conversationのチュートリアルとして用意されている、車のAIチャットボットに繋いでみました。

「play music」 と入力すると、音楽のジャンルはなんだ?と聞き返されます。
「Jazz」と入力すると、Jazzの音楽を起動してくれます。
「Thanks」と入力すると、言われ慣れていないのか「何言ってるかわかんない」と言われますw(覚えさせていないだけ)
こんな感じで、ボットのデモを行うことができるアプリです。

フレームワーク、ライブラリ

作り方

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をお楽しみください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away