# 知命阁（zhimingge）产品说明文档

> 仓库地址：[https://git.bz121.com/dekun/zhimingge.git](https://git.bz121.com/dekun/zhimingge.git)

## 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 配置

### 环境变量

```env
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. 地域数据

### 数据结构（规划）

```json
{
  "110000": {
    "name": "北京市",
    "longitude": 116.4074,
    "children": {
      "110101": { "name": "东城区", "longitude": 116.4164 }
    }
  }
}
```

### 用途

1. **八字真太阳时**：`出生时间 + 出生地经度` → 校正时辰
2. **综合地利**：当前所在地经度、方位参与解读
3. **可选扩展**：地域五行、方位卦象（后续版本）

---

## 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 — 合并与基础（当前阶段）

- [x] 内容库迁入 `content/zhouyi/`
- [x] 项目文档（SPEC、DEPLOY）
- [x] PM2 部署配置
- [x] 移除 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 项目许可
- 应用代码私有部署，不依赖任何外部公开代码托管服务
