NTTドコモR&Dの技術ブログです。

一年目社員が自担当のサービスに新機能リリースしてみた

はじめに

NTTドコモサービスイノベーション部の上田です。 先日、私が所属するチームで提供しているサービスSUNABAでは、LINE連携という新機能をリリースしました。 この記事では、お客様のご要望に基づく仕様の策定から新機能のリリースまでの大変さや面白さを、実際に仕事を担当した1年目社員の目線からお伝え出来たらと思います。

docs.sunaba.docomo.ne.jp

SUNABAとは?

SUNABAでは、主にチャットボットのシナリオの開発・実行をする環境、またその利用方法をまとめたドキュメントサイトを提供しています。 SUNABAでは、ユーザーからの問いかけに合わせたボットの発話を作成できます。 下の写真の例でいうと、ユーザーへの「今日の天気は晴れですか?」のような問いかけや、「晴れ」というユーザーの発話に対しての回答「晴れですか!お出かけ日和ですね。」のような応答を作成できます。

チャットボットの対話の例

上の例はシンプルなものですが、SUNABAではシナリオベースの対話エンジンと機械学習による意図解釈を組み合わせた対話ボットを作ることもできます。 ドコモのmydaizなどでも利用されている技術なので、興味がある方はぜひSUNABAを試していただけたらと思います。

www.mydaiz.jp

どのような機能を、なぜリリースしたか

今回リリースした機能はSUNABAで作成したボットを、LINEに連携する機能です。

docs.sunaba.docomo.ne.jp

リリースのきっかけは、5月末あたりにあったお客様との打ち合わせで「SUNABAで作ったチャットボットをLINE上で動作確認したい」という要望があったことです。 私のドコモ社員としての初めての仕事として、LINE連携機能を作成することになりました。

私の担当した仕事

リリースの工程は、

  1. 仕様策定(7月)
  2. API作成(8月)
  3. SUNABAボットエディタ画面とAPIの連携(9月)
  4. 商用リリース作業(12~2月)

でした。

仕様策定(7月)

まず、LINE連携機能に必要な要件を以下のように洗い出しました。

  • API Gateway・Lambda・DynamoDBの構成で作れそうだということ
  • LINE Developersと連携する必要がありそうなこと

それを満たすよう、チームで議論を重ね、仕様を決定しました。 特にAWSについてはは全くの初学者だったため、そのときタイムリーに出席していた一年目社員向けのAWS研修で勉強した知識を用いながら構成を考え、先輩にレビューいただきました。

LINE連携構成図

API作成(8月)

  • API Gateway・DynamoDBの設定→私
  • Lambdaのコード作成部分→チーム内でプログラムやシナリオを担当しているメンバー

と分担をして作業を実施しました。

また、依頼をいただいたお客様と打ち合わせをしてデモをお見せし、仕様についても認識が合うか確認しました。

SUNABAボットエディタ画面とAPIの連携(9月)

SUNABAのボットエディタを作成してくださっている会社の方に仕様を共有し、組み込みを依頼しました。 画面の仕様も、ユーザーの導線や他機能のボタンとの兼ね合いも考えて私から提案しました。

商用リリース作業(12~2月)

作成いただいたページの動作検証、社内申請などを経て、2月に商用リリースしました。

また、商用リリースにあわせて、LINE連携の利用方法案内のページも作成しました。

docs.sunaba.docomo.ne.jp

新機能リリースを体験して感じたこと

チームのサポートがあたたかい

ほぼすべての作業が初めてだった私がこのペースでリリースまでたどり着けたのは、よい形でチームからサポートを受けられたからだと思っています。 私の部はリモートワークを基本的な働き方としていますが、Slackで質問を投げるとSUNABA担当のチームの先輩方はもちろん、他のチームもチャットで返答をくださり、チャットで解決しない範囲は通話も交えながら助けていただきました。 業務も忙しい中ヘルプを拾ってくださってありがたいと、常日頃思っています。

また、API作成の時期にはデータ分析の研修があり、そちらの勉強で忙しく時間がとれない状況でした。 そこで先輩にも相談して、チームメンバーにLambda部分をお願いすることになりました。 このようにサポートいただくという選択肢もある環境は心強いです。

「決め」の作業が大変

今回のリリースでは、大きく2つの決めの作業がありました。 一つ目は仕様策定、二つ目はSUNABAボットエディタ画面です。 両方の場面で、メリットデメリットを伴う案が複数ある中、どれを選択するかの決めの作業が出てきました。 大学の研究は、(私の場合ですが)比較的時間の余裕がある中で、その場でできる最良を決めればよい、という場面が多かったです。 ただ、社会人は今までよりも仕事のスピード感も早く、その中で他のタスクをこなしながら、既存の機能との整合性・料金・お客様の利便性なども考慮して決定を下す必要があり、決断に苦労しました。

世の中のチャットボットの需要を知れて面白い

サービスイノベーション部はR&Dイノベーション本部配下の部で、新しい技術を生み出すのが主な仕事です。 そのような中でお客様にサービスを提供している私のチームは珍しい存在ですが、私はこのチームに所属できて良かったと思っています。

私は大学ではロボットやアバターと、人とのコミュニケーションについて研究をしていたのですが、まだ世の中にはロボットやアバターは浸透していないと感じていました。 そこで「せっかく会社で仕事をするなら、世の中で利用されているヒューマンコンピュータインタラクション分野に携わりたい」と考え、自然言語処理のチームを希望しました。 そのような希望をもっていた私にとっては、

  • SUNABAの提供を通じて、世の中のチャットボットの需要を知れる
  • チャットボットの延長でアバター利用の需要も出てきている様子も見ることができ、開発にも携われる

という今のチームでの仕事は、就職前に想像していたよりも自身の興味に沿ったもので、正直驚いている部分も大きいです。 今回のLINE連携リリースも、実際にLINEボットの需要が多いため開発依頼があったという背景があったのですが、今後もお客様との打ち合わせを通じて世の中の需要を学べそうで楽しみです。 まだまだ与えられた仕事をこなすので精一杯な状況ですが、 この環境での学びも活かし、自身の発案で何かしらの開発ができたら、と思っています。

今後やりたいこと

今回LINE連携機能の開発一連を通じて、AWSなどの技術面の知識や、新機能開発の手順を学び、かつ社外とのやりとりなども含めよい経験ができました。 また、先日こちらの機能が完成した旨お客様にも打ち合わせでお伝えすることができました。 お客様に喜んでいただいた様子を見られて、努力の甲斐があったと実感しました。

今後は

  • チームメンバーに助けられるだけでなく助ける側にもなる
  • 大学時代に学んだアバターやロボット関連の知見と、今のチームの自然言語処理関連の技術を組み合わせた開発がしたい

という野望がかなうよう、今回の経験も生かして頑張ります!

(オマケ)SUNABAでLINEボットつくってみた

頑張ってリリースした機能を使って、LINEボットを作ってみようかと思います。 今回はSUNABAのチュートリアルやテンプレートを参考に、LINEボットの機能を作成してみます。

こちらがチュートリアルのページで、AIMLやGUIでのボットの作り方を確認できます。

SUNABAのチュートリアル
ちなみにGUIのチュートリアルのページ・動画は私が監修して新しいものも作っていっているので、再生回数が伸びると私が喜びます(宣伝)。

docs.sunaba.docomo.ne.jp

テンプレートは、SUNABAのボットエディタを登録するといろんなボットがずらっとでてきます。

SUNABAのテンプレート例

ぜひ下のリンクから登録して確認してみてください(再び宣伝)。 boteditor.sunaba.docomo.ne.jp

今回私は「じゃんけんシナリオ」のテンプレートを使ってLINEボットを作成してみようと思います。

まずテンプレートを選択するとこのようにシナリオがすでに作成されているので、

じゃんけんシナリオ
システム発話ボックス(赤いボックス)の内容をLINEで利用するため、LINEタブに書き写します。

システム発話ボックス

あとはドキュメントページに載っている通りに作業をすると、 以下のようにLINEボットが完成します!

じゃんけんLINEボット

ぜひみなさんも、SUNABAを活用してチャットボットやLINEボットを作成してみてください!