個人開発で 会話AIサービス Eveki を作りました。架空のキャラクター1を再現したAIと自然な会話が楽しめることが特徴のサービスです。今回はその第一号として、お嬢様AIの公開を行いました。まずは実物をお試しください。
サービスの概要
AIとの会話
基本的にはメッセージを入力するだけです。まるで人間のようにお嬢様言葉で会話を行います。今日の予定から人生の意味まで、どんな話題でも返答2し文脈に沿って話を進めることが可能です。会話の内容は下のボタンからTwitterに共有できます。
AIの設定
名前は「真流華レイテ」3で、名字の読み方は『まるが』です。趣味などその他のプロフィールは
本人に聞けば答えてくれるはずです。なお今回はイラストもAIが生成したものを使ってみました。
システム構成
フロントエンド
フレームワーク
フレームワークとして Next.jsとReactを使用しました。言語はTypeScriptを中心に使用しています。Web開発はこれが最初で不慣れなところもあったのですが、とにかく新しい技術を取り入れてみたかったのでこのような形にしました。
Next.jsは公式のチュートリアルで勉強しました。TypeScriptにも触れているので、所々わからない点を調べていけばこれだけでもかなりできることは増えると思います。
使用ライブラリ
データ処理にAxiosを使用しています。経験の浅い自分でもTypescriptと連携させて使えるほどには情報も充実しているのでおすすめです。
またデザイン面ではMUIを採用しました。他にも選択肢はあると思うのですが、元々モバイルアプリ開発に慣れていたのもあり、それに近い感覚や見た目を持つこちらを選びました。Material Iconとの連携も簡単なのでデザインにかける時間を大幅に短縮できると思います。
バックエンド
言語・フレームワーク
Python3で動作させています。今回もっとも力を入れたのは処理の高速化です。
会話というアプリの名目上、入力に対する返信に時間をかけることはできません。そのためモデルの量子化など4できるだけ工夫を施しています。
#量子化の例
import torch
model = torch.quantization.quantize_dynamic(model,
{torch.nn.Linear},
dtype=torch.qint8)
会話の長さや内容にもよりますが、現状ほぼ10秒以内には反応が返ってくるかと思います。
使用ライブラリ
今回はGradioを使用しました。これを使えば簡単に機械学習用のデモやアプリを構築することができます。設定次第では画像など多様なデータを扱うことも可能です。Gradioを用いることでバックエンド側の実装は短時間で完了しました。
これで構築したアプリはそのままiFrameで埋め込みことも可能なので、ブログやポートフォリオに取り入れるのもおすすめです。
See the Pen Gradio-Sample by opopopopop (@izumo092) on CodePen.
今後の展望・課題
デモの追加
まずは最小限でも公開を優先したためデモは現時点では『真流華レイテ』ひとりです。しかし既に準備しているAIもいくつかいるので、そちらも仲間に加えていきたいと思っています。
カスタマイズ機能
最終的にはユーザーが自ら設定や口調をカスタマイズし、自分だけのAIを持てるようにしたいと考えています。そのためにデータベースや認証の導入を進めています。
デプロイ先
現在はVercelをデプロイ先に選んでいますが、上のように計画を広げていく上ではもう少し検討する必要があるかもしれません。解析など他との連携も予定しているのでFirebase Hostingなども考えています。
さいごに
AIは日常生活に普及こそしたものの、人間の作業を肩代わりする存在という側面が強くなってしまい、昔のSF映画の人口知能のような愉快な夢想はかえって難しくなったような気がします。
『真流華レイテ』は株価予測もできませんしイラスト生成もままならないですが、あなたの話を聞くことはできます。このAIがちょっとした楽しみを与えられたら幸いです。
いねやリツイートなど頂けるととても励みになります。もし疑問点や要望などあれば以下のフォームか、SNSのDMなどをお使いください。よろしくお願いいたします。