3ヶ月でチャットボットサービスをゼロからリリースするための戦略

こんにちは、ecbeingの太田です。

AI系の製品開発や研究を中心に行っています。

はじめに

最近、私が開発責任者として立ち上げたチームで、「AIデジタルスタッフ」というサービスをリリースしました。

このサービスは、ChatGPTを基盤としたチャットボットサービスです。我々のチームでは「前人未踏のAI開発で世界をリードする!」という壮大なビジョンを掲げています。プロダクトの開発にとどまらず、大規模言語モデルや画像生成AIなども研究しています。

この記事では、AIデジタルスタッフを「3ヶ月でゼロからリリースする」という挑戦的な目標を達成するために実施した、いくつかの戦略をご紹介します。

スモールスタート・スモールリリース

初回リリースは最低限の機能とし(スモールスタート)、初回以降のリリースでは1回のリリースの単位を小さくするようにしました(スモールリリース)。

スモールリリースの例

例として、チャットボット上に「いいねボタン」(👍・👎)を表示して、チャットボットの回答をフィードバックできる機能(通称:いいね機能)のリリースがありました。

▲いいねボタンのイメージ画像▲

この「いいね機能」を作るにあたっては、様々な改修が必要でした。 従来であれば、以下に列挙するような改修が全て終わってからリリースを行っていたのですが「スモールリリース」を掲げていたので、1つ1つリリースを分けて実施しました。

  1. フィードバック情報を記録するテーブルを追加する
    この時点では、データベース上にテーブルを追加するだけで、見た目上特に変わる部分はありません。

  2. フロントエンド上で「いいねボタン」マークを表示する
    この時点では、フロントエンドでボタンが表示され、押すとデータベースに情報が記録されます。しかし、記録された情報はデータベースに直接アクセスしないと確認できません。

  3. 押された「いいねボタン」の情報を確認する画面を作る
    ここまでリリースしてはじめて、押されたいいねの情報をウェブ上で確認できるようになります。

スモールスタート・スモールリリースのメリット

リリース範囲を小さくすることで、様々なメリットが生まれました。

  • 開発サイクルのスピードアップ
    1回のリリース範囲が限られているので、完成した新たな機能や修正点を、素早くリリースすることが可能になりました。

  • リスク管理
    リリースに際して何らかの問題が発生した場合、影響範囲が最小限かつ、切り戻すことが容易になりました。

  • 健全性
    リリースの作業時間が短くなることで、リリース作業に根付いていた負のイメージが払拭できました。

    • 旧来:リリース→多くの準備をして、長時間作業しなければならない→怖い
    • 現在:リリース→限られた機能を短時間でリリースする→作った機能がリリースされるのが楽しみ

CI/CD環境の整備・効率化

当プロジェクトでは「Terraform」を用いてインフラ構築を効率化し、「Azure Pipelines」を用いてデプロイの自動化も行いました。
「Terraform」「Pipelines」については、私が以前に書いた記事をご参照ください。


今回は新たな試みとして、Terraformの「モジュール化」を実施しました。上記の記事を書いた段階では、モジュール化の機能は無かったのですが、Terraformのアップデートに伴って追加されました。この記事で詳細な実装は割愛しますが、以下のようなイメージです。

▲モジュール化を行うことで、コードの見通しがよくなった▲

新たなインフラ構成の追加や、既存の構成を修正する場合の修正範囲が極めて小さくなり、作業時間の短縮・修正漏れといったメリットをもたらしました。モジュール化自体は大変でしたが、それ以上のメリットをもたらすことができました。

インフラ変更時の修正差分が少なすぎて、コードレビューしていただいた際に「修正これだけでいいの??」と言われてしまうくらいシンプルになりました(笑)

Azure OpenAI Service の調査・情報共有

今年に入って登場したばかりの「Azure OpenAI Service」をいち早く利用するために、積極的に情報収集を行いました。

ChatGPTに関する様々な勉強会、X(旧Twitter)やQiitaなどのSNSでの情報収集、そして自らも毎日ChatGPTを使い倒すことで、ChatGPTをシステムに組み込む術を身に着けていきました。

その一環として、Azure OpenAI Serviceについて以下の記事でAzure OpenAI ServiceをC#で使う方法について紹介しています。
blog.ecbeing.tech
また、会社のSlackや勉強会で積極的にChatGPTの情報発信・交換を行うことで、ChatGPTに取り組んでいくムーブメントを作ることができました。そして新たに得たナレッジをチャットボットに輸入することで、未知のAzure OpenAI Serviceを使ったサービスのリリースをいち早く行うことに繋がりました。

AIとの協働・業務効率化

ChatGPTはOpenAI社が提供しているサービスですが、OpenAI社は他にも「Whisper」という文字起こしのAIサービスを提供しています。これまでの文字起こしと比べて、比較にならないほど精度の高い文字起こしができるのが特徴です。

今回の開発では限られた時間・リソースの中で作業効率化をするため、このWhisperに目をつけました。具体的には、様々な会話を文字起こしして、ChatGPTで構造化・校正することでドキュメントを錬成しました。

例えば、口頭での作業手順を文字起こししておいて、ChatGPTで文章をまとめることでドキュメント作成を自動化(もちろんドキュメント内容のレビューは必要です)。会議の内容を文字起こししておいて、議事録の自動生成など。最近ではこのようなサービスがいくつも登場してきましたが、いち早くWhisperとChatGPTを組み合わせることでAIを活用し、業務を効率化していました。

最後に

以上が、我々が新サービス開発で特に力を入れたポイントです。これらの工夫により、開発プロセスが格段にスムーズになり、結果としてリリースをいち早く行うことに繋がりました。是非、皆さんのプロジェクトにも参考にしていただければと思います。

この記事が「いいね!」と思った方は是非ブックマーク、読者登録をよろしくお願いします👍

お知らせ

ecbeingでは世界をリードするAIサービス開発をしたい仲間を募集しています!
careers.ecbeing.tech