fff77dac3f
Add liuyao/bazi/combined flows with shared calc and AI infrastructure, 64-gua learn routes, and update Ubuntu PM2 deployment docs for port 3130. Co-authored-by: Cursor <cursoragent@cursor.com>
11 KiB
11 KiB
知命阁(zhimingge)产品说明文档
1. 项目概述
知命阁(zhimingge) 是一个融合《周易》原文学习与 AI 智能解读的 Web 应用。项目合并了原「AI 算卦(divination)」应用与「周易 64 卦详解(zhouyi)」内容库,统一在一个 Next.js 应用中运行。
核心能力
| 模块 | 路由 | 说明 |
|---|---|---|
| 易经学习 | /learn |
64 卦原文阅读(繁体精简版 / 简体图文版) |
| 六爻算卦 | /liuyao |
纯六爻起卦 + AI 解读 |
| 生辰八字 | /bazi |
四柱排盘 + AI 命理解读 |
| 综合测算 | /combined |
天时 + 地利 + 人和(六爻可选) |
技术栈
- 框架:Next.js 15(App Router、Server Actions、RSC)
- UI:React 18、Tailwind CSS、shadcn/ui
- AI:Vercel AI SDK + OpenAI 兼容接口
- 内容:本地 Markdown(
content/zhouyi/) - 运维:PM2 + Ubuntu(
/opt/zhimingge)
2. 已确认的产品决策
| 项 | 决策 |
|---|---|
| 项目名称 | zhimingge(知命阁) |
| 代码仓库 | https://git.bz121.com/dekun/zhimingge.git |
| 模式三六爻 | 可选,用户可只做天时地利人和,也可附加六爻 |
| 八字精度 | 四柱、十神、大运、流年、神煞 全部包含 |
| 地域粒度 | 省 / 市 / 县(区) 三级,用于真太阳时与地利分析 |
| AI 模型 | huihui_ai/gemma-4-abliterated:e4b |
| AI 接口 | https://op.bz121.com/v1 |
| 部署方式 | Ubuntu + root + PM2,目录 /opt/zhimingge |
3. 目录结构
zhimingge/
├── app/ # Next.js 应用
│ ├── page.tsx # 首页 / 功能入口
│ ├── layout.tsx
│ ├── liuyao/ # 六爻算卦(规划)
│ ├── bazi/ # 生辰八字(规划)
│ ├── combined/ # 综合测算(规划)
│ ├── learn/ # 易经学习(规划)
│ │ ├── page.tsx # 64 卦总览
│ │ └── [guaMark]/page.tsx # 单卦详情
│ └── actions/ # Server Actions(规划)
│ ├── liuyao.ts
│ ├── bazi.ts
│ └── combined.ts
├── components/
│ ├── modes/ # 各模式 UI(规划)
│ ├── learn/ # 学习模块(规划)
│ └── shared/ # 共用组件
├── content/
│ └── zhouyi/
│ ├── docs/ # 繁体精简版(AI 解读主用)
│ │ ├── index.md
│ │ ├── 01.乾为天/index.md
│ │ └── ...(64 卦)
│ └── other/ # 简体图文版(学习页主用)
│ ├── index.md
│ └── ...(64 卦)
├── lib/
│ ├── calc/ # 八字、真太阳时、节气(规划)
│ │ ├── bazi.ts
│ │ └── time.ts
│ ├── content/
│ │ └── zhouyi.ts # 本地卦辞读取
│ ├── data/
│ │ ├── gua-index.json # 64 卦索引矩阵
│ │ ├── gua-list.json # 64 卦名称
│ │ ├── regions.json # 省市区 + 经度(规划)
│ │ └── today.json # 预设问题
│ ├── prompts/ # AI 提示词模板(规划)
│ └── constant.ts
├── docs/
│ ├── SPEC.md # 本文档
│ └── DEPLOY.md # 部署文档
├── public/
├── ecosystem.config.cjs # PM2 配置
├── .env.example # 环境变量示例
├── next.config.js
└── package.json
4. 功能模块详细说明
4.1 易经学习(/learn)
目的:提供 64 卦完整原文阅读,不调 AI。
| 页面 | 内容来源 | 说明 |
|---|---|---|
/learn |
content/zhouyi/docs/index.md |
64 卦总览表 |
/learn/[guaMark] |
content/zhouyi/docs/{guaMark}/index.md |
单卦繁体详解 |
/learn/other |
content/zhouyi/other/index.md |
简体图文版入口 |
/learn/other/[guaMark] |
content/zhouyi/other/{guaMark}/index.md |
单卦简体详解 |
内容包含(因版本而异):
- 卦辞、爻辞、白话解释
- 邵雍河洛理数、傅佩荣解卦
- 台湾张铭仁解卦(AI 六爻解读的主要素材来源)
- 简体版额外:互卦/错卦/综卦、断易天机、哲学含义
交互:学习页底部可跳转「以此卦起卦」→ /liuyao。
4.2 六爻算卦(/liuyao)
目的:传统三钱法六爻,结合卦辞 AI 解读。
起卦方式
| 方式 | 说明 |
|---|---|
| 线上 | 应用内 3 枚硬币动画,自动随机 6 次 |
| 线下 | 人工抛铜钱后,手动录入 6 爻结果,再点「测算」 |
爻象规则
| 3 枚正面数 | 名称 | 阴阳 | 变爻 |
|---|---|---|---|
| 3 | 老阳 | 阳 | 是(○) |
| 2 | 少阳 | 阳 | 否 |
| 1 | 少阴 | 阴 | 否 |
| 0 | 老阴 | 阴 | 是(✕) |
输入字段
- 问题(必填)
- 起卦时辰(默认当前时间,可修改)
- 六爻结果(线下模式手动录入)
输出
- 卦名、上下卦、变爻列表
- 链接至
/learn/{guaMark}查看原文 - AI 流式解读(张铭仁注解 + 变卦说明 + 用户问题)
4.3 生辰八字(/bazi)
目的:根据出生信息排盘,AI 命理解读。
输入字段
| 字段 | 必填 | 说明 |
|---|---|---|
| 出生日期 | 是 | 公历,支持农历切换 |
| 出生时间 | 是 | 精确到分钟;未知时辰可选「时辰不详」 |
| 性别 | 是 | 决定大运顺逆 |
| 出生地域 | 是 | 省 / 市 / 县(区)→ 经度 → 真太阳时 |
| 问题 | 是 | 事业、婚姻、健康等 |
排盘输出(完整精度)
| 项目 | 说明 |
|---|---|
| 四柱 | 年柱、月柱、日柱、时柱(天干地支) |
| 十神 | 比肩、劫财、食神、伤官、偏财、正财、七杀、正官、偏印、正印 |
| 藏干 | 地支藏干及十神 |
| 纳音 | 各柱纳音五行 |
| 大运 | 起运年龄、各步大运干支(顺/逆) |
| 流年 | 当前及前后若干年流年干支 |
| 神煞 | 天乙贵人、文昌、驿马、桃花、华盖等常用神煞 |
| 真太阳时 | 根据出生地经度校正后的时辰 |
AI 解读维度
- 命局格局与五行喜忌
- 十神组合含义
- 大运流年趋势
- 神煞吉凶提示
- 针对用户问题的具体建议
4.4 综合测算(/combined)
目的:融合「天时、地利、人和」,六爻可选。
输入字段
| 维度 | 字段 | 说明 |
|---|---|---|
| 人和 | 生辰八字 + 性别 | 同 /bazi 排盘 |
| 地利 | 当前所在省 / 市 / 县 | 经度、方位 |
| 天时 | 测算时刻 | 默认当前时间;含节气、农历日、时辰、日柱 |
| 问事 | 问题 | 具体所求 |
| 卦象 | 可选 | 可接 /liuyao 线上/线下六爻,或本页内起卦 |
解读逻辑
天时(节气、日柱、时辰、农历)
+ 地利(地域经度、方位五行)
+ 人和(八字命局、十神、大运、流年、神煞)
+ 卦象(若用户选择起卦)
→ AI 综合解读
六爻可选行为
- 不起卦:仅基于八字 + 时空做解读
- 起卦:额外带入卦象、变爻及卦辞原文
5. AI 配置
环境变量
OPENAI_API_KEY=你的密钥
OPENAI_BASE_URL=https://op.bz121.com/v1
OPENAI_MODEL=huihui_ai/gemma-4-abliterated:e4b
接口说明
- 使用 OpenAI 兼容 API(
/v1/chat/completions) - 通过
@ai-sdk/openai的createOpenAI({ baseURL })接入 - 所有模式共用同一模型,通过不同 System Prompt 区分角色
Prompt 角色
| 模式 | System 角色 |
|---|---|
| 六爻 | 精通《周易》六爻的 AI 助手 |
| 八字 | 精通子平八字的命理分析师 |
| 综合 | 融合天时地利人和的综合顾问 |
卦辞来源
- 不再从外部 GitHub 拉取
- 统一从
content/zhouyi/docs/{guaMark}/index.md本地读取 - 提取张铭仁注解、变卦段落注入 Prompt
6. 地域数据
数据结构(规划)
{
"110000": {
"name": "北京市",
"longitude": 116.4074,
"children": {
"110101": { "name": "东城区", "longitude": 116.4164 }
}
}
}
用途
- 八字真太阳时:
出生时间 + 出生地经度→ 校正时辰 - 综合地利:当前所在地经度、方位参与解读
- 可选扩展:地域五行、方位卦象(后续版本)
7. 数据流示意
用户输入
│
├─ /learn ──────────→ 读 content/zhouyi/*.md ──→ 页面渲染(无 AI)
│
├─ /liuyao ─────────→ 六爻计算 ──→ 读本地卦辞 ──→ AI 流式输出
│
├─ /bazi ───────────→ 八字排盘 ──────────────────→ AI 流式输出
│
└─ /combined ───────→ 八字 + 时空 + [可选六爻] ──→ AI 流式输出
│
▼
https://op.bz121.com/v1
huihui_ai/gemma-4-abliterated:e4b
8. 实施分期
Phase 1 — 合并与基础(当前阶段)
- 内容库迁入
content/zhouyi/ - 项目文档(SPEC、DEPLOY)
- PM2 部署配置
- 移除 GitHub / 外部仓库引用
- 本地读取卦辞(替换 GitHub fetch)
- Header 导航与
/learn学习入口 - 六爻线下录入模式
- 起卦时辰记录
- AI 环境变量默认值更新
Phase 2 — 八字模式
lib/calc/bazi.ts完整排盘(十神、大运、流年、神煞)lib/data/regions.json省市区数据- 真太阳时计算
/bazi页面与 AI 解读
Phase 3 — 综合模式
/combined页面- 天时(节气、日柱)计算
- 六爻可选联动
- 综合 Prompt
Phase 4 — 体验优化
- 农历日期选择器
- 测算历史(localStorage)
- 简体/繁体学习版切换优化
- 补全
other/版缺失图片
9. 环境变量完整列表
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
OPENAI_API_KEY |
是 | — | AI 接口密钥 |
OPENAI_BASE_URL |
否 | https://op.bz121.com/v1 |
API 地址 |
OPENAI_MODEL |
否 | huihui_ai/gemma-4-abliterated:e4b |
模型名 |
PORT |
否 | 3130 |
服务端口 |
NODE_ENV |
否 | production |
运行环境 |
UMAMI_ID |
否 | — | 访问统计(可选,可不用) |
UMAMI_URL |
否 | — | 统计脚本地址(可选) |
UMAMI_DOMAINS |
否 | — | 统计域名(可选) |
10. 版本与许可
- 项目名:zhimingge
- 仓库:
https://git.bz121.com/dekun/zhimingge.git - 周易原文内容遵循原 zhouyi 项目许可
- 应用代码私有部署,不依赖任何外部公开代码托管服务