本專案與專業占星老師深度協作,結合了高精度的天文計算與先進的 RAG (檢索增強生成) 技術,將專家的感性經驗與經典文獻轉化為理性的「數位知識大腦」,提供具備學理依據的深度命盤解析。
在開發此專案前,我們觀察到占星領域的兩個極端與執業者的困境:
工具專業但門檻高: 現有軟體數據精準,但報告多為片段的條列式文字,使用者需深厚基礎才能串聯。
AI 流行但缺乏準確性: 通用型 LLM 容易產生「幻覺」,常混淆宮位定義或編造占星法則,缺乏學術嚴謹性。
數據與解讀脫鉤: 傳統工具難以同時兼顧「精美視覺化」與「脈絡化的深度分析」。
執業者負擔重: 專業占星師在諮詢時需翻閱大量典籍,重複性的基礎解析耗費過多精力。
本專案作為占星師執業的輔助工具,實現了從數據到智慧分析的一條龍服務:
消滅 AI 幻覺: 透過 RAG 技術,強制 AI 回答前檢索經老師認可、驗證過的專業占星文獻,確保解析符合學理。
專家知識數位化: 將厚重的占星 PDF 與老師個人研究筆記轉化為結構化知識,實現知識傳承。
視覺與數據並行: 將複雜的 Swiss Ephemeris 數據轉化為直觀的 SVG 動態星盤,優化視覺體驗。
自動化前置作業: 系統可先生成基於專業文獻的「基礎報告」,作為占星師諮詢時的參考底稿。
RAG 增強型 AI 解析: 採用 Gemini 2.5 Flash,實現「先翻書、後回答」的邏輯。
高精度天文計算: 接入 Swiss Ephemeris (瑞士星曆表),支援行星、相位、多種宮位系統精確計算。
自動化資料攝取: 內建 setup_rag.py,全自動完成 PDF 下載、RapidOCR 文字識別、向量索引建置。
專家協作知識庫: 不同於網路碎片,知識庫僅收錄權威典籍(如黃銘老師占星資料等)。
Language: Python 3.12 (Backend) / TypeScript (Frontend)
Frontend: React, Vite, Tailwind CSS, @astrodraw/astrochart
Backend: FastAPI, LangChain, UV (高效包管理)
AI/ML: Google Gemini 2.5 Flash, Gemini Embedding 001
Database: Qdrant (Vector Database - Local Mode)
本專案採用解耦架構,確保天文計算的高效性與 AI 回答的準確性:
知識攝取層 (Ingestion Layer):
PDF ➔ RapidOCR ➔ RecursiveCharacterTextSplitter ➔ Gemini Embedding ➔ Qdrant。
計算與渲染層 (Calculation Layer):
輸入時空數據 ➔ pyswisseph 計算座標 ➔ FastAPI ➔ React 渲染 SVG 星盤。
RAG 檢索層 (Retrieval Layer):
提取星盤特徵 ➔ 在 Qdrant 搜尋最相關的專業學理文本。
增強生成層 (Generation Layer):
星盤數據 + 文獻碎片背景 ➔ Gemini 2.5 Flash ➔ 生成個性化深度報告。
GitHub Repo: