Cosmic Persona は、紫微斗数・ジョーティシュ(インド占星術)・MBTI・ライフコンテキスト(現在の関心や悩み)を統合入力として、Anthropic Claude により多層的なペルソナ分析を生成する日本語Webサービスです。「単発のチャットボットではなく、ドメイン知識を体系化してAIに落とし込む」ことを目的に、ゼロから自前で構築しました。
プロジェクトの背景
- 占術系サービスは「結果が出てくるだけ」で、なぜそう言えるのかの根拠が見えづらい
- MBTI 等の心理測定と占術を組み合わせると示唆が深まるが、それをLLMに正しく扱わせるには大規模で構造化されたプロンプト設計が必要
- 「単発のチャットボット」ではなく、再現性のあるドメイン分析エンジンを作りたい
主要機能
Step 1: ペルソナ生成
生年月日・出生時刻・出生地・MBTI・ライフコンテキストを入力すると、命盤/チャート要素を踏まえた基礎ペルソナを Claude が生成します。出生地は地名検索で緯度経度に変換し、天文計算ライブラリ(ephem 等)でチャートを構築します。
Step 2: 偉人ストリーミング分析
5名の偉人ペルソナ(Carl Jung / Steve Jobs / Marcus Aurelius / Leonardo da Vinci / Oprah Winfrey)から1名を選択すると、その視点による分析がサーバ側 SSE(Server-Sent Events)でストリーミング表示されます。「もしこの偉人が自分のメンターだったら何と言うか」を、その人物の発想様式・価値観・著作スタイルに基づいて生成します。
設計の核:大規模 SYSTEM_PROMPT
- 19セクション・各900〜950tk の構造化プロンプトで、占術ロジック・心理測定知識・偉人の発想様式を圧縮
- 占術別ルールブック(紫微斗数 / ジョーティシュ / 手相 / 姓名判断 / MBTI)を Markdown で構造化し、SYSTEM_PROMPT に組み込み
- Anthropic Prompt Caching を活用してトークンコストを大幅削減
インフラ・運用
- Supabase キャッシュ:入力ハッシュをキーに readings をキャッシュし、Claude の重複呼び出しを抑制
- Rate Limiting:slowapi でエンドポイント単位の濫用防止
- 構造化ログ&トークン計測:JSON ログに入出力トークン数・レイテンシを出力し、コスト監視を可能化
- 法務ドキュメント:利用規約・プライバシーポリシー・免責事項の雛形を整備
技術スタック
- Frontend: Next.js 16 / React 19 / TypeScript / TailwindCSS
- Backend: Python 3.11 / FastAPI / Anthropic SDK / pydantic
- Database: Supabase(PostgreSQL + Row Level Security)
- 天文計算: ephem / lunar-python / geopy
- Infra: Railway(API)+ Vercel(Web)
- Quality: pytest / Vitest / Playwright(E2E)/ Lighthouse CI
応用先
本エンジンの設計はそのまま以下の領域に転用可能です。
- パーソナライズ診断SaaS
- 人材アセスメントツール(採用・配置・育成)
- 教育・コーチング支援AI
- ヘルスケア領域のセルフチェックツール
AIオーケストレーション
プロンプト設計・実装・コードレビューは Claude Code × Codex の相互チェックで進行。とくに大規模 SYSTEM_PROMPT は「出力ぶれ」が品質を直撃するため、出力サンプルを別AIにレビューさせて改善するフローを構築しました。
ご相談いただける範囲
- 占術以外でも「専門ドメイン × LLM」の統合システム設計
- 大規模 SYSTEM_PROMPT 設計(10セクション以上の構造化プロンプト)
- Anthropic Prompt Caching 設計とコスト最適化
- SSE ストリーミング型のチャット・分析サービス
- Supabase(PostgreSQL + RLS)を用いたマルチテナントSaaS