Google Assiatant対応AI BotをActions on Google作る
今年はGoogleからAlloアプリが登場し、さらにGoogle AssistantというAIを中心としたサービス展開が行われることが表明されました。もちろんGoogleはそれをプラットフォームとして広く使えるようにするだろうと言われていましたが、遂にActions on Googleという名前でGoogle Assistantと連携可能なBotを作るための環境が公開されました。
Google Assistantは、Alloアプリ内で@googleという名前のアカウントとして登場しています。また、Google Homeもその裏にはGoogle Assistantがいます。Google Assistantが@googleアカウントやGoogle Homeへのユーザからの問い合わせを理解して、適切なアクションを行い、その結果を返すことになります。そのアクションを自由に作ることができる仕組みが、Actions on Googleです。
Actions on Googleでは、会話アクションとダイレクトアクションの2つがあって、会話アクションはSDKを使ってアクションを実装する方法と、API.AIを利用してアクションを実装する方法の2つが現在提供されています。API.AIを利用することで、簡単に会話アクションを試しに作ってみることができます。Google Homeのシミュレータもあるので、アクションが実際にどう呼び出されるか、実体験することも可能です。
ここでは、API.AIを使った会話アクションを作るGetting Startedに書かれている内容を紹介したいと思います。
どのようなアクションを作るか
テキストにすると、以下のような会話内容になります。
ラッキーナンバーと好きな色を聞いて、くだらない(?)名前を作って答える、というシンプルな会話型のアクションです。
API.AIエージェントの作成
最初に、API.AIに新規にエージェントを作成します。
- 新しいエージェントを作成するための画面を開きます。
- 以下のように入力します。
- Agent name: “SillyNameMaker” と入力。
- Agent Type: Private を選択。
- Description: “Use this action to come up with your silly name!” と入力。
- Add Sample Data: 空欄のままでOK。
- Language: “English” を選択。
- Default Time Zone: “(GMT+9:00) Asia/Tokyo” を選択。
- “SAVE” ボタンを押します。
新規に SillyNameMaker というエージェントが作られます。
Default Welcome Intentの編集
作成された SillyNameMaker エージェトには、予め Default Welcome Intent が作られています。このインテントは、ユーザがアクションを呼び出した際の WELCOME イベントによって最初に起動されます。このインテントが適切に歓迎をユーザに伝えることで、Googleからの応答ではないことを明確にすることが求められます。
歓迎のメッセージを変更してみましょう。
左のメニューから “Intents” をクリックして、Default Welcome Intent を選択します。
次に、Text Response の右にあるゴミ箱ボタンを押して、事前に登録されている内容を全て削除します。
そして、ADD MESSAGE CONTENT ボタンを押して Text Response を選択し、”Hi! Welcome to Silly Name Maker! Let’s get started. What is your lucky number?” と入力します。
その後、SAVE ボタンを押します。
愚かな名前を作成するインテントの追加
このエージェントがユーザに挨拶を送った後、別のインテントが起動されます。ここでは、馬鹿げた名前を作成するインテントを新規に追加します。
まず、左の Intents メニューの右にある追加(+)ボタンを押します。
そして、インテントの名前として “make_name” と入力し、SAVE ボタンを押します。
User says Phaseの定義
新しく追加した make_name インテントが起動されるきっかけとなる、User says phase を定義します。User says フィールドに、以下の2つを入力します。
- 23
- My lucky number is 23
注意点として、上記の2つを入力する際に、ENTER キーを押さずに、TAB キーで次の行に移動させてください。ENTER キーを押してしまうと、自動的に Action が作られてしまいます。
アクションの定義
次に、make_name インテントが起動した際のアクションを定義します。
- Action エリアの “Enter action name …” の部分に、”make_name” と入力する。
- 以下の2つのパラメータを入力する。
- Number - Required: チェックを入れる、Parameter name: “number”、Entity: “@sys.number”、Value: “$number”
- Color - Required: チェックを入れる、Parameter name: “color”、Entity: “@sys.color”、Value: “$color”
Number パラメータを入力した後は、Color パラメータを入力するために、”+ New paraeter” をクリックします。
そして、それぞれの “Define prompts” をクリックして、ユーザへの質問文を入力します。
- Number: “What is your lucky number?”
- Color: “What is your favorite color?”
返事の定義
Number と Color の入力がユーザから行われた後は、入力された値を使って文章を返します。Text Response に “Alright, your silly name is $color $number. I hope you like it! See you next time!” と入力し、SAVE ボタンを押します。
デプロイ
ここまでくれば、あとはもう少しで動作確認することができるようになります。動作確認は、Google Home のシミュレータになります。もちろん、音声入力して、結果がやはり音声出力されますので、まさに Google Home 感覚です。
まず、左のメニューから Integrations をクリックして、Actions on Google のスライダーをクリックして有効にします。
すると、自動的にダイアログが表示されます。以下の内容で入力し、AUTHORIZE ボタンを押します。認証ウィンドウが表示された時は、同意しましょう。ボタンが AUTHORIZE から PREVIEW に変わりますので、PREVIEW ボタンを押します。
- Invocation name for testing: “Silly Name Maker” と入力。
- Google Project ID: 空欄のままでOK。
- TTS voice: 好きな声を選択。
- Welcome Intent: “make_name” を選択。
- Sign in required for welcome intent: チェックは入れない。
- Additional triggering intents: 空欄のままでOK。
上手くいけば、Google Home Web Simulator で確認することができたことを示すメッセージが表示されます。CLOSE ボタンを押してダイアログを閉じます。
その後、もう一度左のメニューの Intents から make_name インテントを選択します。そして、下の方にある Actions on Google 項目を展開して、End conversation にチェックを入れて、SAVE ボタンを押しておきます。
テスト
お待たせいたしました。Google Home Web Simulator で動作確認してみましょう。まずは、Google Home Web Simulatorを開きます。
START ボタンを押してください。
マイクのボタンを押して音声入力をしてもいいですし、テキストで入力しても構いません。まず、アクションを起動するために、”talk to silly name maker” と入力しましょう。
ラッキーナンバーを聞いてきますので、適当に数値で答えます。その後、好きな色も聞かれますので、適当に答えましょう。
“Alright, your silly name is Green 41. I hope you like it! See you next time!” というように、無事に “Green 41” という名前を授かることができました。
最後に
今回は、API.AI の機能を使って、プログラミングすることなく、会話形式のアクションを Google Assistant 向けに作るチュートリアルを紹介してみました。Actions on Google では、会話形式のアクションを SDK を使って作ることもできますし、食べ物の注文やIoT機器の操作、音楽やニュース、旅行の予約などを行うための Direct Action も将来開発することができるようになるようです。
もちろん、開発したアクションを実際に一般公開して Google Home から実際に利用できるようにするためには、Googleの審査が必要になります。しかし、シミュレータで試すだけであれば上記のように手軽にできますので、ぜひ時間を見つけて試してみてください。