以前書いた記事 IDCFクラウドのビリングAPIをpythonで利用する方法に手を加えて
Googlehomeに、”今月の料金は?”とか”2016年10月の請求額は?”と聞いたら、
その月の請求金額をしゃべらせるようにしたいと思います。
利用するもの
- Actions on google
- dialogflow
- flask
- ngrok(ローカル環境で試すため)
プロジェクト作成
actions on googleにアクセスし、新しいプロジェクトを作成します。
Project Nameを入力し、Country/regionは「Japan」を選択し、【CREATE PROJECT】をクリックします。
【CREATE ACTIONS ON DIALOGFLOW】をクリックします。
アクセスを許可します。
【AUTHORIZE】をクリックします。
アクセスを許可します。
DEFAULT LANGUAGEを「Japanese — ja」に変更し、【SAVE】をクリックします。
【Intents】をクリックし、【Default Welcome Intent】をクリックします。
少し下にスクロールし、「Response」のDefaultタブのText Responseの1番目に
”IDCFクラウド料金確認です。”と入力し、【SAVE】をクリックします。
【Entities】をクリックし、【CREATE ENTITY】をクリックします。
Entity Nameに「command」と入力します。
Click here to edit entry行をクリックします。
Enter Reference Valueに【料金】と入力します。
Enter Synonymに、下記のような値を入力します。
- 料金
- 支払い
- いくら
- 請求金額
- 請求
- 請求額
- 金額
例えば、今月の支払いはいくら?と今月の請求金額はいくら? は同じ意味として捉える必要があるため
請求金額といわれた場合でも料金のことであると認識させるために設定します。
ここで記載した以外の言葉も料金と同じ意味とする場合には、Synonymに追記すればOKです。
今月の料金なんぼ? はこの設定だとうまく認識されないかもしれません。
”なんぼ”も料金と同じ意味として捉え対場合には、Synonymに”なんぼ”を追加します。
【SAVE】をクリックします。
【Intents】をクリックし、【CREATE INTENT】をクリックします。
IntentNameに、適当な名前(今回はつたない英語でbillingsayとしました)をつけます。
User saysに【今月の料金は?】と入力し、Enterを押します。
すると自動的に、ENTITYが解析されます。
User saysに、別な言葉も入力します。
- 2016年10月の請求金額は?
- 先月の料金は?
- 先月はなんぼ?
先ほど”なんぼ”を追加したため、自動的に@sys.date-periodと@commandと判定されます。
なんぼを追加していない場合には、下記のようになり、”なんぼ”が認識できていないことがわかります。
認識ができなかったときには、判定させたい品詞をマウスで選択し、表示されたEntityを選択し認識させます。
これで、”先月”が日付、”なんぼ”は料金であると認識してくれます。
右ペインでテストしてみます。
Try it nowと書かれているテキストボックスへ、”今月の金額は?”と入力し、Enterキーを押します。
下記画像のように、command 料金 date-periodに今月(これを書いている月は11月)の日付が表示されていればきちんと認識してくれています。
SHOW JSONをクリックすると、JSONが表示されるのでこの内容を利用してプログラム側で処理を書いていきます。
ちょっと長くなったの、次ページへわけます。