わすれっぽいきみえ

みらいのじぶんにやさしくしてやる

Dialogflowアプリjimikoの改善

kimikimi714.hatenablog.com

去年この記事を書いてから、さらにいくらか改善をした。

そもそもバグがあったので直してもらう

4月の上旬に夫が急にGo言語触りたいと言い出して「じゃあサンプルコード上げてるから使っていいよ」とjimikoのコードと記事のリンクを渡した。そしたらGoの書き方を確認しつつバグ修正とリファクターしてくれたので取り込んだ。

github.com

どうせ家でしか使わんしと思って雑にPR見てマージ。しかしこのやり取り端的に言って気持ち悪いなと思って

激しく動揺した。

Slack Botとしても動くようにしていたので、その変更をmasterに取り込む

リファクターしてもらったし他にもやっておきたかったことをやる気になったので、前からあったブランチに変更を取り込みつつmasterブランチでSlack向けのコードも使えるようにした。

github.com

この時のコメントのやり取りも「いや目の前にいるんだし普通に会話すればよくね?」と心の中では思ってたけど、なんか自然とコメント返しててもう駄目だなと思った。普通にって言っても会話の内容もどうなんだ。家庭内でコードレビューしてるの、何が仕事と違うんだろう。

GitHub Actionsを使えるようにする

Circle CIとかJenkinsとか使わなくても私程度の用途であればGitHub Actionsで十分じゃない?と思って使えるようにした。

github.com

使ったActionsは以下。

github.com

結構簡単に動いたので助かった。以下の画像のような感じで動作したActionsの結果一覧を見ることができる。

f:id:kimikimi714:20200422180341p:plain

実はこのPR#3の方を#2より先に取り込んでいて、PR#2でコードにlintがちゃんとかかるか試していた。その時の結果の一部が以下。

f:id:kimikimi714:20200422180421p:plain

ref: Merge branch 'master' of ssh://github.com/kimikimi714/jimiko-dialogflow into slack-adapter · kimikimi714/jimiko@b7c3369 · GitHub *1

でもこの結果だと

make lint 実行したときよりも reviewdog で指摘されるのが少ないのはなんでだろうな。

Slackでも動かせるようにしていた分をmasterに取り込む by kimikimi714 · Pull Request #2 · kimikimi714/jimiko · GitHub

自分で書いたコメントのように出てくる結果が少なすぎたので、ymlファイルに必要な設定が追記できてないことには気が付いていた。が、ここは正しい設定にするよりまず動く設定を入れることを重視してマージ。

さらにリファクターとテストの追加

はじめからテスト書けよ(自戒)。

github.com

テストもCIできるようになった。masterにマージされたらdeployまでいってもいいかもしれんが、家庭でちょっと使う程度のことにそこまでのボリューム持たせてもなーとも思ってやってないし、環境変数どうやって登録するよとかも調べないといけなくなる。まぁproductionレベルにしたいわけじゃないので面倒。

じみこが終了できるようにする

前の作りだとテストアプリを終了させないとじみこも終了しないようになっていた。Google Homeに「OK Google. 止めて」でも止められはするがせっかくなので、Dialogflowでアプリを終了させるためのインテントを追加した。

追加したインテントにどんな言葉を投げたら終了するか書き出して

f:id:kimikimi714:20200504203404p:plain

終了前の返事と「Set this intent as end of conversation」にチェックを入れて保存する。

f:id:kimikimi714:20200504203423p:plain

最後に左メニューの「Integrations」から「Google Assistant」を選んで「Add Intent」で今回追加したインテントを追加すれば、じみこがこの終了用インテントを使うようになる。

f:id:kimikimi714:20200504203439p:plain
以前「かいもの」インテントと名付けたものは「在庫確認」インテントに修正した

特定のアイテムがあるかないか返事させる

gtuggirls.connpass.com

これが開催されるとのことだったので申し込んで、前から考えてた改善に取り組んだ。
成果物は以下。

github.com

リモートもくもく会にははじめて参加したけど、結構楽しかった。たまにはこういうのもいい。

今はGitHub Actionsが走ることでSlackに以下のように通知される。

f:id:kimikimi714:20200504191929p:plain

Messageがnullになってるところは今後修正予定。コミットメッセージかコミットへのリンクを貼ろうかと思っている。

リモートもくもく会の最後のLTでGoogle Homeがちゃんと返事するところまでやったけど、音声を上げないと信じてもらえなさそうなので、Twitterにしゃべってるところを上げておく。

今後のじみこ

本当は特定アイテムがあるかないかじゃなくて、買ってきたら買い物リストに追加するようにしたかった。けど現時点ではやり方がやっとわかった程度で5/4中にはできなかったので、おいおいやろうかなと思う。あと今のやり方だとテストアプリとしてしか使えないので、アルファ版として家庭だけで使うようとしてリリースしようと思う。リリースするにはまだ機能が少ないんだよな。

じみこのキャラクターも定まってないし。

そういえば自分のGitHubリポジトリをじわじわ育てるのはdotfiles以外だとはじめてかもしれない。

*1:もしかすると何件か溜まったらGitHub側が結果を削除するかもしれない。