English summary | 繁體中文說明見下方
An open-source, privacy-first astrology consultation tool that combines Bazi (八字), Zi Wei Dou Shu (紫微斗數), and Western Astrology — running all three systems deterministically and using AI only to interpret, never to generate, chart data.
- Free & non-commercial — no account required
- Privacy-first — all user data stays in your browser (IndexedDB); nothing is uploaded
- Hallucination-resistant — deterministic algorithms calculate charts; the AI model never touches the numbers
- Live demo: https://zhiming-tawny.vercel.app
- Community: Threads post · 90K+ views
Built with Next.js · TypeScript · NVIDIA NIM · Vercel AI SDK
結合 紫微斗數、生辰八字、西洋占星 三套系統,以確定性演算法排盤,再由 AI 命理師用白話為你交叉解讀。 一個免費、非商業的個人命理研究小工具——你的資料只留在自己的裝置裡,不會上傳到任何伺服器。
知命把三套獨立的命理系統當成三個彼此獨立的「訊號源」:
| 系統 | 排盤引擎(確定性演算法) | 解讀重點 |
|---|---|---|
| 生辰八字 | lunar-typescript |
日主強弱、五行喜忌、十神格局 |
| 紫微斗數 | iztro |
命宮十二宮、主星廟旺、四化 |
| 西洋占星 | circular-natal-horoscope-js |
日月升、行星宮位、相位 |
三盤分別算出後,再做跨系統一致性比對:三套都指向同一結論時把握度最高(★★★★★),分歧時誠實標示為「同一件事的不同切面」,絕不硬湊一致。
- 排盤一律走確定性演算法,AI 絕不生成命盤。 AI 只負責「解讀」既有命盤,數字由引擎算好,模型不得自行更改或重算。
- 使用者資料只存在本地。 出生資料、對話紀錄全部存在瀏覽器的 IndexedDB,永不上雲、永不寫進伺服器日誌。送到 AI 端的只有「命盤結構」,姓名等個資不會離開你的裝置。
- 多輪對話記憶、每日重置。 每天一場諮詢(上限 10 輪對話),對話過程保有完整記憶;隔天開啟新的一場,記憶重新開始。
- AI 是命理師,不是預言機。 定位為生涯規劃的決策支持工具:只談傾向與機率,不恐嚇、不下絕對斷言、不診斷、不薦股、不給法律定論。
- 達使用上限可下載「今日運勢小卡」PNG 作為留念。
[Next.js App Router 前端]
│ 使用者只在本地建立命盤、聊天紀錄存 IndexedDB
▼
[/api/calculate] ── 確定性排盤(無狀態,不記錄出生資料)
│
▼
[/api/chat] ── 組系統提示(知識庫 + 命盤)→ 串流呼叫 NVIDIA NIM
│
▼
[NVIDIA NIM] ── 開源/免費模型,OpenAI 相容端點
- 框架:Next.js 16(App Router、Turbopack)+ React 19 + TypeScript
- 樣式:Tailwind v4(CSS
@theme,子夜星盤色盤,無外部字型) - AI:Vercel AI SDK v6 +
@ai-sdk/openai-compatible,串接 NVIDIA NIM 開源模型(預設nvidia/nemotron-3-super-120b-a12b,可在介面切換) - 本地儲存:IndexedDB(
idb-keyval)+ Zustand;支援 JSON 備份匯出/匯入 - 視覺化:Recharts(五行雷達圖)、
html-to-image(小卡 PNG)
⚠️ 本專案使用的 Next.js 為較新版本,撰寫程式前請先讀node_modules/next/dist/docs/內對應指南,勿直接套用舊版寫法。
# 1. 安裝相依套件
npm install
# 2. 設定環境變數(NVIDIA NIM 金鑰)
# 在專案根目錄建立 .env.local(此檔已被 .gitignore,切勿提交):
echo 'NVIDIA_NIM_API_KEY=你的_NIM_API_KEY' > .env.local
# 3. 啟動開發伺服器
npm run dev # http://localhost:3000
# 4. 其他指令
npm run build # 正式建置
npm run lint # ESLint
npm test # Vitest(排盤黃金測試等)| 變數 | 用途 | 位置 |
|---|---|---|
NVIDIA_NIM_API_KEY |
NVIDIA NIM API 金鑰(伺服器端使用,不會送到前端) | .env.local(本機)/ Vercel 專案環境變數(線上) |
# 以最新版 CLI 部署(全域舊版 CLI 可能因端點版本過舊而失敗)
npx -y vercel@latest deploy --prod --yes --token "$VERCEL_TOKEN"- 串流路由使用
runtime = "nodejs",區域於vercel.json設定{"regions":["hnd1"]}(東京,離台灣最近)。 - 部署後確認 Deployment 歷史只有 1 個 Ready、0 個 Failed。
知命不設帳號、不蒐集個資。你輸入的出生資料與所有對話只保存在你自己的瀏覽器裡;清除瀏覽器資料即等同刪除。送往 AI 模型的內容僅含「命盤結構」,不含姓名等可識別個資。命理結果僅供自我探索與生涯規劃參考,非預言、非醫療/法律/投資建議。
LUCE Agentic|創辦人 Sean Weng