見出し画像

ChatGPTでユーザーの想像を超える予定登録体験を TimeTree「予定スキャン機能」開発インタビュー

TimeTreeではOCR(Optical Character Recognition)機能とChatGPT APIを活用することで、画像データから予定を登録できる「予定スキャン機能」のベータ版を、2023年8月1日から提供開始しました。

新しい技術を活用することで、これまでになかった利便性を生み出したこの機能について、開発を担当した3人のメンバーに、リリースまでの経緯や開発中の試行錯誤、今後の展望を聞きました。

話を聴いたメンバー
Anju CPO(最高プロダクト責任者)
2011年にヤフー株式会社に入社、広告商品企画業務に従事した後、2013年にカカオジャパンに出向しサービス企画業務を担当。2015年にJUBILEE WORKS(現 株式会社TimeTree)に入社し、TimeTreeのプロダクトマネージメント及びマーケティングを担当。現在はCPO(Chief Product Officer)としてプロダクトの成長戦略の策定・実行を担っている。

Noi iOSエンジニア
2009年にJR北海道に入社し、電車の整備業務を担当。その後、家族の転勤を機に北海道を離れiOSエンジニアとしてのキャリアを開始。無線モジュールやIoT製品の企画・開発を手掛ける福岡の会社でiOSアプリ開発の経験を積み、2023年にTimeTreeに入社。現在はプロダクトDivisionに所属している。

Max バックエンドエンジニア
ドイツ出身。埼玉大学留学中にTimeTreeで働く友人からの誘いをきっかけに、ドイツに帰国するまでの間、アルバイトとしてTimeTreeに参加。TimeTreeでの仕事の楽しさが忘れられず、帰国後日本語をさらに勉強して正社員の募集に再応募し、2022年にTimeTreeに入社。現在はプロダクトDivisionのバックエンドエンジニアとして、TimeTreeのサーバーサイドのプログラミングに携わっている。



ChatGPTでユーザーにとって一番重要な「コア価値」の強化を実現


──まずは今回実装した「予定スキャン機能」がどのようなものなのか教えてください。

Anju
一言で言うと、画像から自動的に予定が登録できる機能です。今までは、例えば学校で配られたプリントの場合、記載されたイベントの予定を手動でカレンダーに登録する必要がありました。ただ、特に子どもが進学した時は大量のプリントを持って帰ってきたりするので、予定を一つ一つ登録していくと手間がかかるんですよね。

そこでChatGPTを使ってより簡単に予定を登録できるようにしたのが「予定スキャン機能」です。プリントの写真からOCR機能で読み取ったテキストをChatGPTに処理させることで、予定のタイトルや日時などを抽出します。写真を撮ったらあとは保存ボタンを押すだけで予定の登録を実現できる機能になっています。


──それぞれが予定スキャン機能の開発にどのように関わったのか教えてください。

Anju
企画の立ち上げからプロダクトマネージャーとして入っていました。企画段階では、ChatGPTを使ってどのように利便性を提供できるかを検討したり、リリース前の段階ではAPIの使用料を鑑みて使用対象ユーザーの範囲を決めたりといったことを担当しました。

Noi
私はTimeTreeのiOSアプリでOCRの実装と、ChatGPTでどういうリクエストをすれば目的のデータが得られるかを定めるプロンプトの作成を担当しました。

Max
私はバックエンドエンジニアとして、ユーザーが撮影した画像から読み取った情報を、サーバーで処理する部分の実装を担当しました。


──このプロジェクトが立ち上がったきっかけを教えてください。

Anju
2023年3月に、ChatGPTを使って何ができるかを話し合う意見交換会が社内でありました。その中で何個か出たアイディアのうちの一つが、今回実装したOCRとChatGPTを使って画像データから予定を読み込むスキャン機能だったんです。以前からこういう機能を追加したいとは思っていたもののなかなか実現できず、ChatGPTを使えばスピーディーにリリースできると感じて動き出しました。


▲ChatGPT活用に関する社内Notionページ。工数の10%までは自由に使える「自律プロジェクト」の一環として活用検討が進められました

Noi
私はプロジェクトに途中から合流したので当時TimeTreeにはまだいませんでしたが、他にはどんな案が出てました?

Anju
他には予定を音声入力する機能や、一日の予定をプッシュ通知でお知らせする時のメッセージを予定内容に合わせて出し分ける案などが出ていましたね。


──ChatGPTを使うといろんなことができますよね。たくさんあるアイディアの中から、実装する内容はどのように決めていったのですか?

Anju
まずはユーザー視点の利便性を大切にしたいと考えました。ChatGPTのような新しいテクノロジーは使い道が広い分、なんでもできそうな感覚に陥りがちです。そんな中で”Nice to have”よりも“Must to have”な機能を実装していきたいと考えたんです。

そこで、まずはTimeTreeでユーザーが一番価値を感じてくださっている部分、つまり「コア価値」を強化する機能に絞って実験的に進めていくことにしました。今までなかった新機能を追加するというより、TimeTreeにすでにある機能の補助となるようなものを導入しようという発想ですね。TimeTreeだったら「予定の作成」がコア価値になるので、それを簡単にするアイディアを採用することにしました。

また、ChatGPTは入力したものを理解する能力と、それを解釈して自分で何かを作るという二つの使い道があります。TimeTreeの機能として導入する場合、入力したものを理解する機能を活用したほうがより貢献度が高そうだったので、まずは「予定情報の理解」で利用することにしたんです。

▲AnjuがまとめたTimeTreeのユーザー体験の流れとChatGPT活用のポイント


試行錯誤の中、プロトタイプのWOW体験が開発を進める推進力に


──ChatGPTを活用した機能の開発が決まってから、どのような試行錯誤がありましたか?

Anju
開発にあたり、最初に行ったのはフィジビリティーチェックでした。そもそも画像から予定を作成することが本当にできるのか、その確認から始めました。

Max
「学校でもらってきたプリントはありませんか」と社内に呼びかけましたよね。そうやって集めた学校行事のプリントを使ってテキスト抽出のテストをしていました。


──検証は最初から上手くいったんですか?

Anju
いや、そんなことはなかったです。予定のフォーマットもいろいろあって、カレンダーみたいな表形式の画像だと精度が低かったんです。ChatGPTは自然言語の解釈が得意なため、予約確認メールや学校のプリントであれば精度が上がることがわかってきたので、これなら実現できると判断しました。

▲初期の検証では「フィジビリティ―はなし」という結果に
▲自然言語で書かれたものに絞ったところ、検証結果は一気に良くなりました


Noi
フィジビリティーのチェックは、機能開発の前にGoogleドライブのOCR機能で読み取ったテキストをChatGPTに投げる形でやっていたんですよね。

Anju
そうですね。ただ、開発の早い段階で実際に動くプロトタイプもできていて、その時点でテキスト抽出や予定化の精度は担保できていたんです。プロトタイプを通して「すごい」と驚く体験ができたので、この機能はいけそうだぞという感触を得ていました。

手動で予定を登録する場合、予定のタイトルを考えたり日時の入力をしたりということに実は手間がかかっていて、それが省かれるとかなり楽になるんだなと自分の体感で気づけたんです。いわゆるWOW体験というやつですね。これが開発を進める推進力になりました。


──Noiは開発の途中で入社してプロジェクトに参加したんでしたよね?

Noi
はい。私がTimeTreeに入社したのが6月でした。以前から趣味でChatGPTをはじめとした生成AIを触っていたので、プロジェクトに参加することになったんです。

Anju
生成AIに関してはNoiが知見を持っていたので、お任せした方がスムーズだろうなと思ってお願いしました。


──入社直後にいきなり挑戦的な実装を託されたわけですね。今回業務で実装を担当してみてどうでしたか?

Noi
ChatGPTが流行りだした頃からこの技術を何かしらアプリで生かせたらなとは思っていたのですが、趣味で実装している時は速度の問題だったり、日本語で指示すると精度にブレがあったりして、期待した結果を得られるまでにひたすら試行錯誤する必要があったんですよね。

その点、今回はOCRに関してiOSの標準機能を使ったのでスムーズな開発ができました。標準機能がなければフレームワークの開発からやらないといけませんでしたが、結果的にOCRやChatGPTという新しい技術を使いながらも、スピード感を持って実装できましたね。

Anju
予定作成はTimeTreeのメインの機能だし、コードの理解から始めなきゃいけなかったはずだから大変でしたよね。

Noi
確かに。ただ、8年運用されてきたコードが綺麗だったのと、わからないことはチームのメンバーに気軽に聞けたので上手くいきました。従来の予定作成機能を邪魔せずに、より便利にする機能を実装するのはいいチャレンジでしたね。Maxはどんなところで苦労しました?

Max
開発全般を通して、レスポンススピードをサービスとして問題ないレベルまで持っていくのが大変でした。ChatGPTのAPIはレスポンスにかなり時間がかかることが多くて、どうにか解決できないかと試行錯誤していましたね。

バックエンド側だけでは改善しきれない場合も多くて、プロンプトを変更したり、インフラ側で通信がタイムアウトになる時間を延ばしてリクエストがエラーにならないようにしたりと、改善を重ねました。

Anju
スピードの担保は未だに課題としている部分で、待ち時間を減らすために試行錯誤しています。プロンプトや実装の仕組みの改善など、これからも根気強くやっていくつもりです。


ポジティブな反響を糧に一層のサービス体験改善や機能拡充を


──予定スキャン機能のベータ版をリリース後、ユーザーからの反応はどうでしたか?

Anju
思っていたより反響が大きくて、率直にうれしかったですね。機能を追加しても反響がないことはよくあることですが、今回の機能はユーザーの想像を超えるような体験を与えられる機能だったからこそ響いたのではないかと思います。ChatGPTという、テクノロジーの発達によって実現できた部分が大きかったです。

また、ChatGPTは文章を作るために使うというイメージがあると思いますが、今回の機能はただ単純に文章を作るだけじゃなくて、OCRと上手く組み合わせて利便性を向上させることを意識しました。そこの部分を評価してくださっている声もいただけて、すごくうれしかったですね。

▲ユーザーの方からの声の一例


──今回はベータ版としてリリースしています。今後、「こんな風に改善していきたい!」といった展望を教えてください。

Anju
今はミニマムな機能だけでリリースしていますが、今後はもっと機能を拡充していきたいと思っています。直近の課題としては、読み取りのスピードや精度の向上です。

それに加えて、今はプリント1枚から一つの予定しか登録できないのですが、複数の予定をまとめて登録できるようにして利便性を向上させたいです。あとは日本語以外の言語にも予定スキャン機能を提供していきたいですね。

Max
一番やりたいことは、予定がスキャンできるまでのスピードを向上させることですね。ユーザーを何秒も待たせたくありませんので。

Noi
OCRはiPhoneの性能が上がるに連れて精度も向上していくはずなので、新しい技術が出てきたらそれに合わせた実装をスピーディーにやっていきたいです。

あとは、今はiOSのみで機能を提供していますが、将来的にはAndroidアプリでも機能を使えるようにアップデートしていく予定ですので、Androidユーザーの方々は少々お待ちください!

──アップデートした機能を多くの方に使っていただきたいですね!ありがとうございました。


TimeTreeではたらくメンバーたち

TimeTreeメンバーズではTimeTreeではたらく多様なメンバーの声を紹介しています。はたらく環境、雰囲気、メンバーたちの考えなどを知りたい方はぜひご覧ください!

TimeTreeの採用情報

TimeTreeのミッションに向かって一緒に挑戦してくれる仲間を探しています。くわしくは応募ページをご覧ください。

この記事が気に入ったらサポートをしてみませんか?