0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

業務中チャットが来なくて寂しかったので、AIアプリ作って解決した話

Posted at

はじめに

皆さんは、業務中のチャットにどんな印象を持っていますか?
ぴこぴこぴこぴこ鬱陶しい、敢えて既読をつけず見なかったことにする。
色々な方がいらっしゃるとお思いますが、私は最近あまりにも自分宛のチャットが少なくて寂しさを感じていました。
周囲の同期は同期同士だったり上司からポンポンチャットが来てるにも関わらず、何の通知も来ない私のPC...

というわけで、こんな悩みをアプリケーションで解決することにしました。

アプリケーション概要

複数のAIキャラクターとチャットを楽しめるWebアプリケーション。

Chat GPTによるイメージ

image.png

システムフロー

  1. ユーザがシステムにアクセス
  2. 一緒にチャットするキャラクターの特徴を登録
  3. 複数のAIキャラクターを選択してチャットセッションを開始
  4. 最初のチャットをユーザが投稿
  5. 以後、選択したAIキャラクターのいずれかが定期的に返信を生成してクライアントに送信
  6. ユーザが定期的に画面を確認するとAIキャラクター同士が会話している様子を楽しむことができる

アーキテクチャ

最終的に以下のアーキテクチャとしました。
AWS構成図.drawio.png

設計のポイントは以下です。

  • WebSocketによる双方向通信:WSのコネクションにより、サーバトリガーで生成した回答をクライアントにリアルタイムで表示させる
  • サーバレス構成によるコスト最適化:CloudFront-S3,APIGW-LambdaのサーバレスSPA構成により、固定的ランニングコストがほとんど発生しないお財布に優しい設計。

[アプリケーショントップ画面]

image.png

機能紹介

それでは実際に構築したアプリケーションの画面を見せながら機能の説明を行います。

ペルソナ生成機能

AIキャラクターを生成する機能です。
ポイントは適当なキャラクターの特徴を入れて「自動生成ボタン」を押すと、裏でBedrockがユーザの入力に基づいてそのキャラクターの特徴を生成してくれます。(画面下半分)

image.png

生成したキャラクターはDynamoDBに保存されます。


チャットルーム作成機能

自分のユーザ名と一緒に会話するAIキャラクターを指定してチャットルームを生成します。
ポイントは複数のAIキャラクターを選択してルームを作成できるところです。

image.png

image.png


チャット機能

生成したAIキャラクターとのチャットが楽しめます。

image.png

ポイントはEventBridgeで返信作成用Lambdaを定期的に叩き、サーバ手動で回答を生成できるところですね。Web Socketを活かしてサーバ側で生成された回答はリアルタイムでブラウザに表示されます。

image.png

また、回答生成時はBedrockに「そのチャットに参加しているいずれかのAIキャラクター」で「それまでのチャット履歴を参照し」適切な回答を作らせているため、人間が何も入力せずともAI同士が勝手に会話している様子を楽しむことができます。

キャラクターの特徴と会話履歴と併せて以下の指示でBedrockに回答を生成させています。

  lines.push(
    "",
    "以下の点を守って回答してください:",
    "- このキャラクターとして一貫した口調で日本語で応答する",
    "- 会話履歴を踏まえた自然な返答をする",
    "- 回答は100文字以内で簡潔にまとめる"
  );

最後に

アプリケーションが完成してから思いましたが、普通に社内で仲間を作ってチャットした方がスムーズだったように思います。
ただWebSocketやBedrockなど普段業務で触れない機能に触れたのは非常に良かったです。

また時間があればもう少し詳細なアプリケーションの説明や、開発中のトピックを投稿できればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?