Skip to content

spajam2024 第4回予選 九州r大会でチーム”Nova5"が作成したアプリケーションのソースコードを公開する。

Notifications You must be signed in to change notification settings

kyushu-silicon-valley/spajam_app_public

Repository files navigation

AIのとも

スライド

このリポジトリについて

Spajam2024 第4回九州予選にてチーム「Nova5」が企画・開発したアプリケーション「AIのとも」のソースコードを公開するリポジトリです。

ハッカソンの開発テーマは「とも」

開発時にコミット履歴やコードの一部にAPIキーが含まれたため念の為新規リポジトリでの公開としています(現在使用したAPIキーは全て無効化してあります)。

アプリケーション概要

テーマの「とも」を「友達」の「友」と解釈し企画を考案しました。

現実で友人関係を気づくのが苦手な人・SNS疲れになってしまった人・社会人になり友人と疎遠になった人。そのような方に、今までにない、新しい形の友達を提案するアプリです。

特徴は大きく2つで

  1. 複数のAIとだけ会話をすることができる
  2. AIの性格や特徴を自分で設定することができる

です。

デモ動画

RPReplay_Final1726373026.1.mp4

資料

当日発表スライド

このスライドの作成はirusiruを利用して作成した雛形を加筆修正したものです。

一部素材にはcanvaunDrawを利用しています。

技術構成

  • flutter
  • supabase : DB, 認証, 画像ストレージとして使用
  • openAI API : AIの返答生成に使用

機能

  • AIとのグループチャット
  • AIの作成と管理画面
  • 自動翻訳を用いた多言語対応
  • ダークモード対応

ER図

erDiagram
    USERS ||--o{ ROOMS : "作成する"
    USERS ||--o{ AI_INFOS : "管理する"
    ROOMS ||--|{ ROOM_AI_RELATIONS : "AIを持つ"
    AI_INFOS |o--|{ ROOM_AI_RELATIONS : "参加する"
    ROOMS ||--o{ CHATS : "含む"
    USERS ||--o{ CHATS : "送信する"
    AI_INFOS ||--o{ CHATS : "送信する"

    USERS {
        string id PK "UUID"
        string name "ユーザー名"
        boolean is_admin "管理者フラグ"
        timestamp created_at
        timestamp updated_at
    }

    AI_INFOS {
        string id PK "UUID"
        string name "AI名"
        text prompt "AI設定プロンプト"
        string admin_id FK "管理者ユーザーID"
        timestamp created_at
        timestamp updated_at
    }

    ROOMS {
        string id PK "UUID"
        string name "ルーム名"
        string user_id FK "オーナーユーザーID"
        timestamp created_at
        timestamp updated_at
    }

    ROOM_AI_RELATIONS {
        string id PK "UUID"
        string room_id FK
        string ai_id FK
        timestamp created_at
    }

    CHATS {
        string id PK "UUID"
        string sender_type "送信者タイプ(USERまたはAI)"
        string sender_id FK "送信者ID"
        string room_id FK
        text content "メッセージ内容"
        timestamp created_at
    }
Loading

実行方法

  1. .envの作成 プロジェクトルートに.envを作成(.env.sampleにあるキーを準備)

  2. translator_keyの作成 プロジェクトルートにtranslator_keyというファイルを作成し以下の内容にする。

{
    "deepl" : "ここにDeepLのAPIキーを記入する"
}
  1. プロジェクトルートのディレクトリにてmake initを実行する makeが使えない方は以下のコマンドを順に実行
flutter clean
flutter pub get
dart run auto_translator
flutter gen-l10n
dart run build_runner build --delete-conflicting-outputs
  1. 実行する 以下のどちらでも実行できます。 make dev またはflutter run

About

spajam2024 第4回予選 九州r大会でチーム”Nova5"が作成したアプリケーションのソースコードを公開する。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published