【必見】新進気鋭のAIスタートアップTrippy COOのsaipさんに聞くAIアプリ開発秘話
日本企業のAI活用促進を目的とした、先進事例のインタビューシリーズ第二回。
今回は、AIキャラクターと自然なコミュニケーションを楽しむことができるアプリ「Oz-オズ-」の開発者で株式会社Trippy COOのsaipさんに、開発秘話や、saipさんが実践するAI活用術、そしてAIキャラクターが切り拓く未来像についてお話を伺いました。
⸺ saipさんのこれまでの経歴について教えてください。
saipさん:
大学在学中くらいから、スタートアップみたいな感じで、色々なことをやってきました。大手企業に就職した経験はあまりなくて。
当時も、エンジニアとしてバリバリ開発をしていたというよりは、どちらかというとコンテンツ制作の仕事をしていました。ですから、本格的に開発やエンジニアリングを始めたのは、本当にここ1〜2年くらいのことなんです。
独立したのは2年くらい前で、ちょうどAIが登場し始めた頃でした。独立当初はAIとは関係なく事業を始めたのですが、やっぱりLLMやディフュージョンモデルといった技術が面白いなと思うようになって。
それで、どんどん自分でAIを触っていくうちに、「これってこんなこともできそう、あんなこともできそう」と、色々なアイデアが湧いてきたんです。
そうして色々試していく中で、どうしても「自分のアイデアをプロダクトとして形にしたい」という気持ちが強くなっていきました。
もちろん、LLMなどを使えばAPIやWeb APIである程度は実現できるのですが、それでもフロントエンドやユーザーインターフェースを作る必要はあります。そこで、「よし、コードを書こう!」と決意して、コーディングを始めたんです。
実は、小中学校の頃からパソコンオタクだったので、簡単なHTMLやCSSくらいは触っていました。HTTPやサーバーについても少し勉強したことがありました。
ですから、基礎的な知識は持っていたのですが、本格的なWebアプリを作っていくとなると、ReactやNext.jsといった技術を習得する必要があると感じました。フロントエンドとサーバーサイドをきちんと分けて処理できるように、勉強を始めたんです。
その頃には、ChatGPTも登場し、GPT-4が出て性能がかなり向上していました。そこで、ChatGPTとの対話ベースでコードを書き進めていくようになりました。
もちろん、マージなどの作業は自分で行う必要もありましたが、疑問点があればChatGPTに聞けばすぐに回答が得られる状況だったので、かなり助けられました。
当時はAIの精度もまだまだだったので、開発はカオスな状態でしたね(笑)。でも、今年に入ってからはClaude 3やSonnetが登場したり、Geminiにも1.5が登場したりして、状況は大きく変わりました。
長いコンテキストを入力しても綺麗なコードを書いてくれるようになったおかげで、LLMの性能向上と共に、自分も綺麗なコードを書けるようになってきたと実感しています。本当にAIの恩恵を受けていると感じますね。
⸺ 現在は、Oz-オズ- の開発に集中されているとのことですが、他にも何か開発されたサービスはありますか?
Oz-オズ-以外にも、色々なサービスを一人で開発しています。
1年半~2年前、まだOz-オズ-を作っていない頃はLINEボット開発がメインでした。もしかしたら、見ていただいたことがあるかもしれませんが、「けものフレンズ」とコラボした「AI アライさん」をリリースしたこともあります。
その頃は、LINEのUI開発が不要で、LINEのAPIを使えばよかったので、割とゴリ押しで作れました。
その後も、いくつかIPコラボをしたり、「ViViD MATE(ビビッドメイト)」という、LINEだけで遊べる美少女ゲームみたいなのを開発したりもしました。
開発していく中で「可愛いキャラクターをもっと全面に出したい」「ゲーミフィケーション要素をもっと取り入れたい」と思うようになり、今はNext.jsで開発しています。
他にも「スグレポ」という、Twitter検索結果をレポートにまとめてくれるツールも作りました。個人的にはすごく気に入っているんですが、なかなか流行らなかったですね(笑)。
個人的にはGrokよりも性能が良いと思っているんですけどね。Twitterの内容を元に、すごく的確に回答してくれるんです。
toBの受託開発も少しやっています。
⸺ 「Oz-オズ-」とはどのようなサービスですか?
saipさん:
Oz-オズ-は、AIを搭載したキャラクターと自然なコミュニケーションを楽しむことができるアプリです。
そもそもOz-オズ-を作る前にも、ビビッドメイトなど、AIによって人格を与えられたキャラクターを制作していました。実はAIが登場する前から、キャラクターIPビジネスをやりたいという思いがあったんです。
過去にはVTuber事業にも挑戦したことがあるのですが、どうしても「その人」に依存してしまう部分があって、なかなか難しい面があると感じていました。
なかなか答えが見つからないでいた時に、生成AIが登場したんです。生成AIを使えば、全く新しいIPを作れると思いました。
キャラクターが自律的に動いたり、ユーザーに合わせてパーソナライズされたり、24時間いつでもアクセスできるキャラクターを生み出せると思ったんです。
今、キャラクターAIの事例はたくさんありますが、特に日本で展開するとなると、AIに人格や魂を乗せるという部分に関して、海外とは異なる価値観があるのではないかと感じています。
だからこそ、キャラクターを大事にし、ユーザーのことを一番に考えたサービスを作りたいという強い思いがありました。
Oz-オズ-にはたくさんのキャラクターがいて、今もどんどん追加しています。ユーザーさんとのコミュニケーションを大事にして、フィードバックを参考にしながら、日々改善を続けています。
Oz-オズ-で大切にしているのは、AIありきではなく、あくまでゲームや体験として楽しんでいただくことです。
AIが搭載されていることを意識させずに、まるで本当に人と話しているかのように、心地よい会話や楽しい体験を提供したいと思っています。それを実現するために、AIを駆使して開発を進めています。
キャラクターの魅力を伝えるために、漫画などのコンテンツも制作して、キャラクターの世界観をより深く表現しています。キャラクター性というのは、Ozにおいて特に大切にしている部分の一つです。
⸺ AIキャラクターとの自然な会話を実現するために、どのような工夫をされていますか?
saipさん:
もちろんプロンプトは最重要だと思っていて、かなりしっかり作り込んでいます。
特に最近、コンテキスト長が長くなってきて、コストも下がったり、GPT-4oのトークナイザーが日本語に最適化されたりしていますよね。
なので、コンテキストを長くして、そこにいかにキャラクターの傾向を、コンテキスト上でちゃんと語り切って、回答させるっていうのはすごく大事だと思っています。
few-shot みたいな手法も使っています。口調だったり、「こう言われたら、こう返すよね」みたいな想定を、ちゃんと道筋を作ってあげて。そうすると、AIは思った通りの回答を返してくれるようになります。
研究所: ちなみに、基盤モデルは何を使われているんですか?
saipさん:
GPT-4oをメインに使っていて、Claudeをフォールバックとしています。Azureも使っていますね。
研究所: フォールバックというのは?
saipさん:
GPT-4oでコンテンツ生成をして、もしダメだったらClaudeに処理を任せるということです。
エラーが出ないように、極力対策しています。CloudflareのAI Gatewayというツールを使ってフォールバックしています。
もちろん、ユーザーが変な入力をしてきた時の対策もしています。これは、toC向けのチャットサービスにはつきものだと思うんですが。Azureのコンテンツフィルターや、静的なNGワード設定である程度は対応しています。
ただ、素のLLMって可愛くないんですよ。「あなたは女の子です」って言うだけじゃ全然ダメで。LLMっぽさが残ってしまったり、なんか気持ちよくない会話になってしまうんです。堅苦しい感じになっちゃうんですよね。
だから、こう聞かれた時に、こう返してほしいっていうのを、プロンプトで細かく指示しています。ファインチューニングみたいな感じですね。
ユーザーがこうインプットしたら、本当はこう返してほしい。だから、そのためにプロンプトで指針を示すんです。
ひたすらユーザーの入力と出力を見て、想定して、改善していく。そうやって、最終的には気持ちいい会話を引き出すためのプロンプトを作っています。
⸺ AIツールはOz-オズ-の開発にどのように役立っていますか?
saipさん:
開発は、今、私一人でやっているのですが、具体的にどんなツールを使っているかというと、今はVS CodeでGitHub Copilotを使っています。サジェスト機能で、インラインでコードを書かせたりしていますね。
あとは、Web UIで、ちょっと前まではClaudeを使っていたんですが、今はほぼGeminiです。対話形式でコードを書いてもらっています。Geminiの「AI Studio」を使っています。
AI Studioに、コンテキストやチャット履歴をひたすら貯めていく感じですね。ただ、AI Studioって自動保存機能があまり良くなくて…。よく内容が消えてしまうんです(笑)。
不便ですね。プロンプトを保存しておかないと、なぜか消えちゃいますよね。それで何度も、大事な内容をなくしてしまって…。
研究所: AI Studioでは、どのようにコンテキストを管理しているんですか?
saipさん:
都度都度使っているイメージです。コーディングの補助だと、そんなに長いコンテキストは必要ないので。
ファイルの内容を全部コピペして、データベースとの通信が必要ならスキーマ情報も入れて。必要に応じて使っています。コードをかなり入れている感じですね。コードの内容をAIに理解させて、回答させている感じです。
研究所:ファイルの量としては、どれくらいになるんですか?
saipさん:
開発フェーズにもよりますが、例えばフロントエンドとバックエンドのコード両方が必要だったら、両方入れます。
あとは、コードをどれだけ綺麗に書けているか、関数やモジュール化ができているかにもよりますね。
コメントもある程度書いておくと、AIがコンテキストを理解しやすくなるみたいです。AIに理解させるために、あえてコメントを入れたりもします。
JSDocでコメントを書いてもらうことが多いですね。「JSDocで書いて」って指示するんです。
【取材協力】
株式会社Trippy:https://tr1ppy.com
Oz-オズ-:https://0z.chat/ja/
株式会社Trippy COO saipさん
株式会社Trippyでは、AIを活用した革新的なエンターテイメント体験を提供しています。 協業・コラボレーションにご興味のある方はメールまたはお問い合わせフォームよりお問い合わせください。アニメ、漫画、ゲーム、タレント等との協業・コラボレーション実績はWebサイト (https://tr1ppy.com) をご覧ください。
◎ 株式会社Trippy お問合せフォーム