生年月日・出生時刻・出生地・氏名などの入力から 53 種類の占術を決定論的に計算し、 Google Gemini API で鑑定文を生成して、画像つきの 1 枚 HTML レポートにまとめる Python パッケージと Kaggle Notebook です。計算部分は LLM を使わず、再現性があります。
- 計算エンジン
fortunelib/(四柱推命・西洋占星術・紫微斗数・易・数秘術・姓名判断 ほか) - 鑑定文生成パイプライン(Stage A 個別占術 → Stage B クラスタ中間レポート → Stage C 軸サマリーと最終統合 → Stage D 読み物版 3 トーン)
- 画像デッキ(タロット・ルーン・おみくじ・干支など、データセット同梱)と実行時チャート描画
- Kaggle Notebook(8 セル)と CPU だけで動くセルフテスト一式
- 入力は CSV 1 枚(複数人可・相性占い用の相手情報つき)
占いは娯楽・自己省察のための参考情報です。 生成される鑑定文は医療・法律・投資などの 専門的助言ではなく、結果の正確性や将来の出来事を保証するものではありません。
| 対象 | ライセンス |
|---|---|
| Python コード・Notebook・テスト・スクリプト | GNU AGPL-3.0 |
| 画像デッキ(本プロジェクト作成分)・冒頭動画・プロンプト・自作データ | CC BY 4.0 |
| 第三者データ(KANJIDIC2 CC BY-SA 4.0、Unihan、口語訳聖書、フォント OFL 1.1、パブリックドメインのタロット画像 ほか) | THIRD_PARTY_NOTICES.md |
コードが AGPL なのは、依存ライブラリ pyswisseph(Swiss Ephemeris)が AGPL-3.0 であるためです。
商標について: 「ジーンキーズ/Gene Keys」「ヒューマンデザイン」「動物占い」「六星占術」などは 各権利者の商標または登録商標です。本プロジェクトはこれらの権利者と提携・承認関係になく、 名称は占術の種類を示す目的でのみ使っています。計算・解釈はすべて本プロジェクト独自の実装です。
| グループ | 占術 |
|---|---|
| G1 生年月日系(14) | 星座占い・干支・九星気学・数秘術(生年月日)・タントラ数秘術・アンカ・シャーストラ・血液型占い・動物占い・六星占術・ウェトン・プリンボン(ジャワ)・パワーストーン・おみくじ・ジーンキーズ |
| G2 氏名系(4) | 姓名判断・数秘術(氏名)・数秘術・カバラ・カルデア数秘術 |
| G3 命盤系(8) | 四柱推命・西洋占星術・ネイタル占星術・トランジット分析・ヴェーダ占星術・紫微斗数・算命学・ヒューマンデザイン |
| G4 卜占・カード系(13) | 易・六爻・梅花易数・奇門遁甲・タロット・タロット・ド・マルセイユ・レノルマン・キッパー・オラクル・エンジェル・カルトマンシー・現代タロット・占星術・ルーン |
| G5 相性(2) | シナストリー・パリミチャム |
| G6 象徴・古代占術(12) | キリスト教的黙想(聖句)・クリスタル・ヒーリング・水晶玉占い・ペンデュラム・タリスマン・伝統的アフリカ占い・肝占・メソポタミア天体オーメン・デルポイの託宣・鳥占・籤占(アストラガロイ)・御縁のある神さま Top10 |
定義は fortune_dataset/fortunelib/registry.py(slug・プロンプト ID・必要入力)にあります。
血液型占いは血液型、氏名系は氏名、相性 2 種は相手の情報が CSV にあるときだけ実行されます。
people.csv ──▶ Stage A 個別占術 52 件(計算 → プロンプト → Gemini Flash-Lite 2 レーン)
Stage B クラスタ中間レポート 11 本(method 軸 5 + culture 軸 6)
Stage C 軸サマリー 2 本 → 最終統合レポート → 御縁のある神さま Top10
Stage D 読み物版(標準/やさしい/スピリチュアルの 3 トーン)
──▶ output/<person_id>/ Markdown・JSON・画像を埋め込んだ 1 枚 HTML
モデル割当は fortune_dataset/data/model_plan.json が唯一の正本です(レーン・fallback・
打ち切り秒数)。詳しくは docs/architecture.md。
公開済みの Dataset と Notebook をそのまま使えます(Kaggle のアカウントがあれば開けます)。
| Kaggle | URL | 中身 |
|---|---|---|
| Dataset | https://www.kaggle.com/datasets/yamadasabro/fortune-dataset | このリポジトリの配布物(v1.0.0 の fortune_dataset_kaggle_v1.0.0.zip を展開したもの。コード・データ・画像・冒頭動画) |
| Notebook | https://www.kaggle.com/code/yamadasabro/fortunetellingsimulator | 上の Dataset で実際に完走した実行例(コード・出力の HTML・ログが見られます) |
いちばん簡単なのは、Notebook を Copy & Edit で自分のアカウントに複製し、Add-ons → Secrets に
GOOGLE_API_KEY を登録して(Secret は複製されません)、セルを上から順に実行する方法です。
自分で用意する場合は次の手順です。
- このリポジトリを ZIP にして Kaggle Dataset として追加するか、上の公開 Dataset を Notebook に Add Input する
fortune_dataset/kaggle/fortune_notebook.ipynbを Notebook として取り込む(アクセラレータ None)- Add-ons → Secrets に
GOOGLE_API_KEY(Gemini API キー)を登録する。必要な Secret はこれだけ - セルを Cell 0(ブートストラップ)→ Cell 0.1(セルフテスト)→ Cell 1(CSV 入力+Stage A)→ Cell N2(Stage B/C/D と HTML) の順に実行する
- 成果物は
/kaggle/working/output/<person_id>/に出力される(<person_id>_report.htmlほか)
手順の詳細と入力 CSV の列は docs/kaggle_setup.md。
git clone https://github.com/jack4andmanastalk-byte/FortuneTelling.git
cd FortuneTelling
bash verify/env_setup.sh # 依存ライブラリの導入(sxtwl, pyswisseph, iztro-py, ... )
cd fortune_dataset && python3 -m pytest -q tests && cd ..
python3 tools/demo_local_html.py --out demo_out # API を使わないダミー文章で HTML の形を確認実際に Gemini を呼ぶローカル実行は環境変数 GOOGLE_API_KEY を設定して
fortunelib.mts.run_person_mts を使います(Notebook の Cell 1/N2 がその参考実装です)。
API キーをコードやログに書かないでください。
| パス | 内容 |
|---|---|
fortune_dataset/fortunelib/ |
占術の計算・プロンプト組み立て・MTS パイプライン・トーン変換・HTML レポート |
fortune_dataset/data/ |
占術データ・プロンプト(prompts.json)・モデル割当(model_plan.json)・版印(dataset_version.json)・画像対応表(image_mapping.json) |
fortune_dataset/kaggle/ |
Notebook(fortune_notebook.ipynb)とそのセル源・build_notebook.py・入力サンプル people_sample.csv |
fortune_dataset/assets/ |
画像デッキ(images/)・サブセットフォント(fonts/)・冒頭動画(video/) |
fortune_dataset/tests/ |
pytest 一式(Kaggle のセルフテストでも同じものを実行) |
tools/ |
配布 ZIP の生成と検査・Notebook 再生成・辞書とフォントのビルド・ローカルデモ・文章検査 |
verify/ |
依存導入スクリプト・画像チェックサム・画像突合監査・実行結果の検証ツール |
docs/ |
設計・Kaggle 手順・データの出どころ・画像 |
版・件数(占術数・テスト数・デッキ数・Notebook セル数)の正本は fortune_dataset/data/dataset_version.json です。
変更後は CONTRIBUTING.md の検証(pytest・compileall・Notebook の同期確認・配布 ZIP の検査)を すべて通してください。変更履歴は CHANGELOG.md。
Swiss Ephemeris(pyswisseph)、sxtwl、lunar-python、iztro、divicast、kinqimen、timezonefinder、 Noto フォント、KANJIDIC2(EDRDG)、Unicode Unihan、パブリックドメインのタロット画像を公開している 各プロジェクトに感謝します。詳細は THIRD_PARTY_NOTICES.md。