ギガノトカップ

俺2

https://github.com/kuroda50/ai_my.git

Flask

GitHub

Python

Flutter

Dart

俺と理想の俺2が会話するアプリ

33ui1778ito

oto

shuma

豊田蒼天

推しアイデア

自分の入力した内容から俺と理想の俺2が生成され、それらがアプリのカフェ内で入力した内容をもとに会話を自動生成する。

作った背景

俺についてもっと知りたい。俺のことが好きだから!

推し技術

・ragを使用! ・コンプレックスから思想、設定、会話例の3つを生成しキャラを立たせている! ・カフェのUIをゲームエンジン(flame)を使用しわかりやすくした!

プロジェクト詳細

リンク

デモ動画:https://www.youtube.com/watch?v=TifVS4A6DL8

機能

プロフィールを追加、キャラ作成

image

俺2、3をコンプレックスから作成

image

カフェでのイベントを元にした、aiの会話

image

技術スタック

Backend (Python Flask)

  • フレームワーク: Flask + Flask-CORS
  • AI API: OpenAI GPT-4o
  • ベクトル検索: OpenAI Vector Store
  • 環境管理: python-dotenv

Frontend (Flutter)

  • フレームワーク: Flutter 3.8.1+
  • ゲームエンジン: Flame 1.19.0
  • ナビゲーション: go_router 15.2.3
  • HTTP通信: http 0.13.6
  • ローカルストレージ: shared_preferences 2.2.2

image

キャラクター生成フロー

  1. プロフィール入力: 簡易選択フィールドとスライダーでの直感的な入力
  2. コンプレックス入力: 9つの質問による詳細なコンプレックス分析
  3. AI処理: OpenAI GPT-4による個性豊かなキャラクター設定生成
  4. Vector Store: キャラクター情報の構造化保存

自動会話システム

  1. 近接検知: キャラクター間の距離を常時監視
  2. 自動接近: 最近接ペアの自動検出と接近動作
  3. 会話トリガー: 一定距離内での自動会話開始
  4. 文脈生成: 保存されたイベント情報を基にした会話テーマ設定

カフェ環境

  • 物理演算: キャラクターの衝突回避と境界制約
  • 視覚効果: 接近インジケーター、移動パス表示、状態アイコン

API エンドポイント

POST /generate_character

キャラクターの作成とAIキャラクター設定生成

リクエスト例:

{ "q1_answer": "人前で話すときに緊張する", "q2_answer": "失敗を恐れてしまう", "q3_answer": "完璧主義すぎるところがある" }

レスポンス例:

{ "character_settings": "生成されたキャラクター設定", "conversation_data": "サンプル会話データ", "vector_store_id": "vs_12345...", "status": "success" }

POST /ai_chat

キャラクター間のAI会話生成

リクエスト例:

{ "vector_store_ids": ["vs_id_1", "vs_id_2"], "event_data": { "who": "友達", "what": "新しいカフェを発見", "when": "昨日", "where": "駅前", "why": "美味しいコーヒーが飲みたくて", "how": "偶然通りかかって" }, "character_data": [] }

33ui1778ito

@b55189c14e5394d4