見出し画像

業務システムを、チャットインターフェースで作り直すとマジでカオスだけど楽しい! #UPSIDER春のTech祭り 

UPSIDER でエンジニアリングマネージャーをしているMiki(@m_miki0108)です。

私がUPSIDERに入社してからほぼ2年になりました。参画した時は、2年もいたら正直飽きてるだろうなと思ってたんですが、ところがどっこい、まるでそんなことはありませんでした! 日々新しい発見と挑戦でやりたいことが多くて楽しい悲鳴をあげています。この気持ちをどうにかして伝えたいと思い、この記事を書いています。

少しでも面白そうだなと思ってくれたらぜひ最後まで読んでいただけると嬉しいです。そしてその流れでぜひカジュアル面談へどうぞ!

前回の記事では、決済基盤を支えるプロセッサーチームとCXチームのメンバーが、独自の決済基盤を持つ強みと開発の面白さ、そしてユーザーの利便性や体験を損なわずにどう安全性を担保しているのか、そして不正利用対策にどう取り組んでいるのかを座談会形式でお話ししました。

またご覧になってない方はぜひチェックしてください!


私たちがやっていること

AIを駆使してチャット体験を良くしていこう!というミッションで開発をしています。

具体的には、私たちは現在SlackアプリによるチャットBotのようなもの、「○○して!」とアプリに話しかけるだけで、今までWEBブラウザから私たち UPSIDER の画面ログインしてメニューを探して・・・とやっていたことがAIで完結できる世界です。なおSlack以外のチャットアプリとの連携も開発を進めているのでご期待ください!

もちろん全てがAIとのチャットで代替可能になるわけではありませんが、AIがこれまでの作業を代替してくれることで従業員の方々の日々の業務が少しでも楽になったり、AIとの会話にちょっと和んだりできるプロダクトになればいいなと思っています。
それではまず、AIを駆使した開発ってどんな風なんだろう?という話を、このチームの立ち上げの時の内容も交えながらさせてください。

システムと人の間にAIが介入してくるカオス

人とシステムの間にAIが介入してきたことで、今まで人がなんとかしてきたこともAIがサポートしてくれるようになりました。それは近年のChatGPTなどを始めとするAI技術の進化から体感している人も多いかと思います。
私たちの開発もそれによって大きく変化しています。良い意味でカオスな方向に!
人がどんなところに時間をかけているのか、苦労しているのかをユーザの操作を実際に体験をしてみて、「どうしたら自動化できるんだろう?」というUXを考えます。その中で、システム的に難しいところをAIにサポートしてもらいながら、なんだったら人でカバーしてもらうことも検討するという、とてもクリエイティビティに富んだプロジェクトが走っています。

最初、VPoPの森(@diceK66)に業務システムでやってることをチャットとAIでやろうと言われた時、正直あんまりイメージが湧きませんでした。森と「何を言っとるんやあんた」と問い詰める議論をする中で出てきた「業務システムにログインして操作をすることをしなくて良い世界」というものに対して、構想としては面白いけど難しそう・・・というのが正直な感想でした。

「はて、うまくいくんだろうか・・・」と半信半疑のまま始まったのが、まずはAIがユーザに話しかけられた時にどういう依頼なのかを分類し、それに対する回答だけ返信してくれるQA Botみたいなものです。
まぁ正確に判定してくれる時もあればそうでない時もある、じゃあ「どの依頼でしょうか?」と選択肢と共にサジェストしてくれるのはどうだろうとか、AIがうまく解釈できなかったところどうカバーするかを柔軟に変化させていきました。

例えば「カードを使えなくしたい」という依頼はこれだけだと正確にどういう依頼かは分かりにくいですよね

そして一部のユーザに実際に使ってもらってどんな依頼が多いのかなと見たところ、圧倒的に「取引決済への証憑添付」が多かったことが分かりました。そこで始まったのがAIによる証憑自動紐付機能のプロジェクトです!そしてこちらは先月にファーストリリースされてその後もアップデートを重ねています。

こちらは「証憑の添付をお願いします!」といった文章を添付ファイルとともにアプリに話しかけるだけで各々のファイルに紐づく決済を自動で探して添付してくれる機能です。

このように、ファイルを添付してメンションするだけでとっても簡単!

リリースするまでに体験した、チャット+AIという開発の大変さ、面白さについてをたくさんあるうちのいくつかご紹介します!

チャット上という制約の中での開発

あくまでチャット上の体験を重視しているため、チャット側(当社だとSlackアプリを開発していますが、今後はMS Teamsにも力を入れていきます!)の仕様やUIに大きく依存します。そのため、Slackの仕様上これは難しいということや、別のチャットツールだとUXがどうしても異なりすぎて同じような機能の実装が難しいという課題が出てきます。
例えば、わかりやすい例として、普段の業務でSlackを使う人ならスレッド内で会話することがよくあるかと思います。でも皆さんがよく利用するチャットツールではスレッドという概念がないものもありますよね?トークという概念で会話がずっと流れていくスタイルのLINE等が良い例だと思いますが、こういった大きな仕様上の差分をどうしても埋めつつ、機能的にはほぼ同等のものを開発していく必要があります。

チャットツールの仕様上で難しいことに直面したら、ではどういう体験だったら違和感なく受け入れてもらえるんだろう?と柔軟に思考を広げていく必要があります。逆にチャットツールが柔軟すぎると下手に凝ってしまいユーザがとっつきにくくなるという問題も。
例えばSlackを普段使い慣れている私にとってはMS Teamsはなかなか機能が多すぎて迷子になりました。機能が多くてすごいですね・・・。

TeamsでただPostしようとしただけなのに

AIをテストする・・はて?

開発をしながら感じたことは「これどうやってテストしたらええんや・・・」と言うことです。
もともと人がどんな風に仕事するか?というのは正規化、標準化されてないことが多く、システムでそれを完璧にカバーするのは無理な話です。「インプットがこれで、アウトプットはAIがこれをしてくれるかもしれないし、うまく出来ないかもしれません!」なんてテスターの人が聞いたら困っちゃいますよね。私が新人QAエンジニアだったらテストケースが作りにくくて寝込んじゃいます。

なので、ただここはシステム的にできなければならない部分と、AI技術によってうまく行ったりいかなかったりな部分を切り分けて、前者はQAチームにテストしてもらい、後者は実際のユーザのデータに近いものを模してどれくらい想定通り動くかというテストをしています。

泥臭くデータを見て軌道修正の繰り返し

リリースするにあたって、実際のデータでちゃんとまともに動いてくれるのだろうか?という懸念がありました。

証憑自動紐付け機能では、実際にUPSIDERの従業員が決済に証憑として添付した様々な領収書や請求書 —— 写真だったり手書きだったりを色々試してみました。

この機能ではOCR(紙や写真に書かれた文字を読み取る技術)で金額や支払日などを読み取っています。精度が低い項目があったら実際の画像データを確認してOCRが読み取った文字データの補正処理を地道に繰り返していくことで精度を上げていきました。まだまだ改善の余地はあるので、使ってみてもらいながら検証を繰り返していく予定です!
時には、そもそも手書きで書かれた領収書の日付が間違っていたりするなど、そもそも元々間違っているケースもあり・・・明らかに誤りなら候補として正しそうな値でも紐付け先がないかチェックするような処理もしています。こういう人のミスをカバーするのがAIのお仕事ですね!

なぜOCRが支払日の年を誤検知したのか調べたらそもそも手書きの領収書が間違ってることに気づく私たち

どうでしょうか、AIを駆使したチャット体験・・・と聞くとなんだかよく分からないなと思っていた人も、なんだか意外と面白そうだなと思っていただけましたでしょうか?
AIが何でも全て解決してくれる、チャットで何もかも仕事が進む・・・というのはなかなか難しそうです。なので意外と地道なことをしていて、良い体験にしていく余地がたくさんあるというのは感じていただけたかと思います!

一緒に開発しませんか?

ここまで読んでくださってありがとうございます。つい先日に新機能リリースしたばかりなのですが、本編でも述べたように改善含めてまだまだやりたいことはあります。本当にエンジニアが足らない状態です!
この記事を読んで面白そうだなと思った貴方、よろしければぜひカジュアル面談からお話ししましょう。お待ちしております!

次回予告

次回は4月3日(水) 11時配信です。「おかしいくらいの速度でマルチプロダクトを作るときに、エンジニアががんばってること」をテーマに、UPSIDERがどのような開発体制でプロダクトラインアップを拡充しているのかについて深ぼってお話します!!お楽しみに!!


この記事が参加している募集

仕事について話そう

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