ドメイン言語化

目的:このドキュメントは、Personifyで使用するすべての概念・用語を一意に定義し、 以降の ③境界決定・④UML・⑦実装 においてAIへの指示が一貫して機能することを目的とする。

⚠️ 【実装に合わせた変更点 — 2026-03-21】


1. ユビキタス言語一覧

用語(日本語) 用語(英語/コード上の名称) 定義 混同しやすい用語
ユーザー User このアプリを利用する人。ゲストとログインユーザーの2種別が存在する 「アカウント」とは異なる。ユーザーはアカウントを持つ前段階も含む
ゲスト Guest アカウント登録・ログインをせずにアプリを利用しているユーザー。チャット履歴の保存・カスタムペルソナの作成はできない 「未登録ユーザー」とは呼ばない
ログインユーザー AuthenticatedUser アカウント登録・ログイン済みのユーザー。全機能を利用できる 「会員」「登録ユーザー」とは呼ばない
アカウント Account ログインユーザーが保有する、認証情報・設定・履歴を紐づける単位 「ユーザー」はアプリ利用者全体を指し、「アカウント」はその中のログイン済みの実体を指す
ペルソナ Persona AIが回答する際に纏う人格・役割・キャラクターの定義。システムプロンプト・名前・イラストをセットで持つ 「キャラクター」「エージェント」「ボット」とは呼ばない。コード上では必ず Persona を使う
プリセットペルソナ PresetPersona アプリ側があらかじめ用意したペルソナ。全ユーザーが共通で利用できる カスタムペルソナと区別するため、コード上では PresetPersona を使う
カスタムペルソナ CustomPersona ログインユーザーが任意の設定で作成したペルソナ。作成者のアカウントにのみ紐づく プリセットペルソナとコードレベルで明確に分離する
チャット Chat ユーザーがペルソナとの一連のやり取り全体。ペルソナはSettingsページで事前に選択(最低1体・最大3体)。未設定時はプリセットから2体を自動選択。会話履歴はクライアントメモリのみで管理(DB保存なし・リロードでリセット) 「会話」「スレッド」「セッション」とは呼ばない
ターン ~~Turn~~ 廃止。元々はチャット内の1回の質問→回答サイクルを表していたが、DB保存廃止に伴いコード上の概念としては使用しない。会話履歴はZustandの conversationHistoryChatMessage[])でフラットに管理
質問 Question ユーザーが入力するテキスト。クライアントメモリ上で { role: 'user', content: string } として保持 「メッセージ」「プロンプト」とは呼ばない
回答 Answer 1つのペルソナが Question に対して返すテキスト。クライアントメモリ上で { role: 'assistant', content: string } として保持 「レスポンス」「メッセージ」「リプライ」とは呼ばない
会話履歴 conversationHistory ペルソナごとの会話メッセージの配列。Zustandの Map<string, ChatMessage[]> で管理。ページリロードでリセットされる。DBには保存しない 「ログ」「チャット履歴」とは呼ばない。旧概念の ChatHistory はDB保存前提だったため廃止
レート制限 RateLimit 1ユーザーあたりの単位時間内のチャット実行回数の上限。APIコスト増大を防ぐためサーバーサイドで管理する 「利用制限」とは呼ばない

2. 概念の関係性