初対面のうらぴこさんいまの会社に入った当時、うらぴこさんは、インドネシア人です。純真無垢な僕は、一瞬信じてしまった。本名を知るのは、もう少し先の話だった。入社してしばらく経って、GitHubを眺めていたら、うらぴこさんのアイコンに見覚えがあることに気がついた。そこで今回、記事にするにあたって、いつどこで見たことがあるのか、うらぴこさんのリポジトリとブログを漁ってみたところ、以下の記事が怪しそうだった。diary実際にいつこの記事を見たのかは定かではないが、2010年といえば、ぼくはAndroid開発を始めて2年めくらい。Webサービスにログインする方法を色々さがしていた時にたどり着いたのかもしれない。世の中にはこうやって自分で調べて記事にしている人がいるんだなぁと、こなみかんを感じたような気がする。おしまいこうやって、巡り巡って同僚になったりするんだなぁと人生を感じるます。うらぴこさんForever。@koyachiさんの予定です。僕は普段、Prottと呼ばれるプロトタイピングツールの開発に携わっていて、今年はチーム内でデザインスプリントやユーザーテストも経験することができました。そんな経験を生かして、最近流行りのAIアシスタントをプロトタイピングできる環境を作ってみました。今回は、このブログでも以前とりあげたDialogflow(旧API.AI)を使って、AIアシスタントアプリをプロトタイピングしてみます。DialogflowでAgentを作成するDialogflowはGoogleアカウントでサインアップすることができます。アカウントを作ったらさっそく始めましょう。Agentの作成まずはDialogflowでAgentを作成しましょう。AgentとはDialogflowで作ることが出来る自然言語処理のモジュールです。languageをJapaneseに設定しました。saysに何かキーワードを入れて保存してみましょう。Intentは、Agentが起動された時に最初に応答するIntentです。このタイミングで、対応する機能の説明を出力して次に自分で作成するIntentへ繋げるのが一般的な流れのようです。Intentをスキップして応答することもできます。Intentを作るさて、いよいよここからが本番です。あなたの試したいアイデアをIntentで表現してみましょう。簡単なプロトタイプであれば、特定のキーワードに対して固定のメッセージを応答するだけで作れてしまいます。難しく考えなくても、プロトタイピングは検証するユーザーに実際に使っている場面を想起してもらえればいいんです。(「オズの魔法使い」テストのように実装を前提としない手法も存在します。Dialogflowは入力メッセージを学習して、Intentと紐付けることができるので、定義していない類似のメッセージであっても応答を返してくれます。手間をかけなくても、テストしてもらうユーザーに自然な体験を提供できそうですね。Androidアプリをさくっと作るさて、Dialogflowの設定はひとまず置いておいて、今度は呼び出す側のアプリを作ります。Messengerとのサービス連携に加えて、SDKを使ったアプリケーションへの組み込みにも対応しています。SDKを使って簡単なAndroidアプリを作ります。(自分にとってAndroidで作るのが一番速そうだからです。)というわけで数時間使って作成したアプリがこちらです。ChatUIのライブラリを使って、AIエージェント風のアプリを作成しました。gradle.propertiesに定義している、CLIENT_ACCESS_TOKENにトークンを設定します。Dialogflowのコンソールに戻って、トークンを取得しましょう。トークンを設定したらビルドして実行します。動いていますね・・・!超かしこそうなAIアシスタント(のプロトタイプ)があっという間に作れてしまいました。おわりに冒頭に挙げたデザインスプリントでは短い時間(1日とか)でプロトタイプを作ってユーザーインタビューを実施するという事もあります。そんな時に、時間をかけずに出来るだけ実際に使っている場面を想像させることができるこのような手法は役に立つことがあるやもしれません。今回は、Dialogflowの最も基本的な機能だけを使いましたが、EntityやWebhookを使えば、実際に使ってもらえる高度なサービスを作ることも可能です。使いこなしていきたいですね。Alexa、LINEのClovaなど、AIアシスタントを搭載したスマートスピーカーと呼ばれる製品が日本に投入された年でした。現状は、文脈の理解に限界があることや、利用できる機能を使う側が事前に把握しておく必要がある点など、一般の方がイメージするAIアシスタント(アイアンマンのJarvisみたいな)になるには、まだまだ越えるべきハードルが様々存在する分野だと思っています。今の製品でも一旦使える環境を作ってしまえばかなり便利に使えることは確かです。Homeが売られているのを目の当たりにして、これはひょっとすると本当に普及してしまうのかもしれない、と思ってしまいました。今後も発展が楽しみな分野です。