开源了一个本地优先的八字 + 紫微双盘计算器:先把盘排清楚,再交给大模型解读

发布于

最近把自己使用的一套八字与紫微斗数排盘工具整理成了首个公开版本:
**赛博大师·八字与紫微排盘计算器**
GitHub:
[https://github.com/liver-detox/bazi-ziwei-calculator](https://github.com/liver-detox/bazi-ziwei-calculator)
Release v0.1.0:
[https://github.com/liver-detox/bazi-ziwei-calculator/releases/tag/v0.1.0](https://github.com/liver-detox/bazi-ziwei-calculator/releases/tag/v0.1.0)
先说明项目边界:
**它不是“AI 算命”工具,也不会直接输出吉凶断语。**
它主要负责生成、保存和核验八字与紫微斗数的基础排盘信息,然后把这份相对稳定、详细、可复查的命理底稿,交给 ChatGPT 、Claude 、Gemini 、Kimi 等大模型进一步分析。

## 为什么做这个项目
现在很多同学使用大模型分析八字或紫微时,通常只会提供一句:
> 我的出生时间是某年某月某日某时,请帮我排盘并分析。
看起来很方便,但实际使用中容易遇到几个问题。

### 1. 不同模型根据同一个时间,可能排出不同的盘
八字和紫微排盘并不只是把出生时间直接填进去。
其中还可能涉及:
- 公历与农历转换;
- 出生地点和时区;
- 真太阳时与标准时间;
- 晚子时如何划分;
- 节气交接点;
- 起运时间;
- 不同排盘口径和流派差异。
当这些前提没有明确时,不同模型可能会自行补全不同的假设。
结果就是:
**明明输入的是同一个出生时间,不同模型却可能得到不同的八字、不同的紫微命盘,甚至同一个模型在不同对话中也可能给出不同结果。**
如果最基础的盘都没有固定,后面的分析无论写得多详细,都很难判断是否建立在正确的数据之上。

### 2. 大模型一边排盘、一边解读,容易出现幻觉和上下文漂移
在一次较长的命理分析中,大模型通常需要同时完成:
1. 时间换算;
2. 八字排盘;
3. 紫微排盘;
4. 大运流年计算;
5. 格局或星曜解释;
6. 结合用户经历进行推演。
这些任务全部混在同一个上下文里,会增加模型出错的概率。
随着对话越来越长,还可能出现:
- 前后引用的四柱不一致;
- 星曜位置发生变化;
- 大运年份前后矛盾;
- 已经确认过的信息被重新计算;
- 模型为了迎合后续问题,逐渐偏离最初的命盘;
- 上下文压缩后,关键排盘信息被遗漏或改写。
因此,一份明确、清晰、详细的排盘信息,往往比只提供一个出生时间更加可靠。
它不能消除大模型的所有幻觉,但至少可以把模型最容易出错的一部分——**基础排盘计算**——提前固定下来。

### 3. 把“排盘”和“解读”分开,才能真正比较不同模型
如果每次都让模型从出生时间开始重新排盘,那么当两个模型得出不同结论时,很难判断分歧到底来自哪里:
- 是出生时间换算不同;
- 是晚子时口径不同;
- 是八字或紫微排盘本身不同;
- 还是模型对同一张盘采用了不同的解释方式。
这个项目希望把命理分析拆成两个层次:
#### 第一层:计算与核验层
负责生成并保存:
- 八字基础盘;
- 紫微斗数基础盘;
- 大运与流年信息;
- 时间口径;
- 候选结果;
- 修订记录;
- 脱敏后的导出资料。
#### 第二层:大模型解读层
再把同一份排盘底稿分别交给不同模型、提示词或命理流派进行分析。
这样做以后,可以实现:
- 不需要每次对话都让模型重新排盘;
- 多个模型可以基于同一份基础数据进行比较;
- 更换模型后,命盘本身不会跟着变化;
- 开启新对话时,可以直接重新导入排盘资料;
- 某次分析出现异常时,可以区分是排盘错误,还是模型解读偏离;
- 可以把不同模型的长处集中在“理解和推理”,而不是反复消耗在基础计算上。
换句话说,这个项目希望先建立一份相对稳定的 **“命理数据底稿”**,再让大模型在这份底稿上进行分析。

## 为什么强调“可核验”,而不是宣称绝对正确
八字和紫微斗数本身存在不同时间口径和流派差异,因此项目不会简单地宣称:
> 输入一个时间,就一定只有唯一正确答案。
遇到晚子时、时间边界或口径差异时,项目会尽量保留:
- 使用了什么时间;
- 采用了什么口径;
- 为什么出现多个候选结果;
- 用户最终选择了哪个结果;
- 后续什么时候修改过;
- 修改前后发生了什么变化。
我希望它更像一个可以复查的计算工作台,而不是一个只展示最终结果的黑盒。

## 目前实现的功能
- 八字与紫微斗数基础双盘计算;
- 八字和紫微斗数在同一个工作区中展示;
- 对晚子时、时间口径差异和多个候选结果保留人工核验入口;
- 大运流年与紫微详盘共享目标年份;
- 保存不可覆盖的修订记录;
- 案例数据默认保存在用户自己的电脑中;
- 程序只监听本机地址 `127.0.0.1`;
- 导出资料默认脱敏;
- 只有用户明确选择后,才会在导出包中包含私密身份信息;
- 不生成旺衰、格局、用神、合盘或吉凶断语;
- 不提供医疗、法律、财务或其他专业建议。

双盘总览:
![八字与紫微双盘总览](http://pic.zhso.org/2026/08/13/aa319b69d689.png)
大运流年与紫微流年联动:
![大运流年与紫微流年联动](http://pic.zhso.org/2026/08/13/30fbf9448537.png)
默认脱敏导出:
![默认脱敏导出](http://pic.zhso.org/2026/08/13/8ac834130ca9.png)
以上演示截图全部使用从零构造的合成案例,不包含真实人物资料。

## 技术实现
主要技术栈:
- TypeScript
- React
- Fastify
- Vite
- Vitest
历法与紫微基础能力使用了 `lunar-typescript`、`iztro` 等现有开源依赖。
这个项目并不把第三方基础算法包装成“全部自研”。我主要补充的是:
- 八字与紫微双盘工作流;
- 时间口径和候选结果管理;
- 修订历史与核验流程;
- 大运流年与紫微流年的联动;
- 本地数据保存;
- 默认脱敏导出;
- 面向大模型使用的结构化命理底稿;
- 发布测试、隐私说明和安全边界。
仓库中已经包含:
- CI ;
- 公开测试;
- 类型检查;
- 正式构建检查;
- 隐私说明;
- 安全说明;
- 贡献指南;
- 第三方许可证归属;
- 合成测试案例。

## 如何运行
首个公开版本目前只正式验证了 macOS ,需要安装 Node.js 24 或更高版本。
```bash
git clone https://github.com/liver-detox/bazi-ziwei-calculator.git
cd bazi-ziwei-calculator

npm ci
npm run build
npm start
```
启动成功后,会自动在默认浏览器打开本机页面。
想先查看一个不包含真实资料的命令行案例,也可以运行:
```bash
npm run demo
```
准备贡献或验证发布版本时,可以运行:
```bash
npm run test:release
```
## 当前不足
这是 v0.1.0 ,目前还有不少明确的边界:
- Windows 尚未完成正式兼容验收;
- 暂时没有打包成 `.app`、`.dmg` 或 Windows 安装包;
- 需要用户自行安装 Node.js ;
- 暂时不做云同步和多人账号;
- 暂时不提供 AI 自动解读;
- 不同命理流派的时间口径仍需要更多案例验证;
- 部分性能基准还没有达到内部目标;
- 面向大模型的标准化导出格式仍可以继续优化。
这些内容没有隐藏,README 和版本说明中都做了标注。

## 最希望大家帮忙测试什么
目前最需要以下几类反馈:
1. 晚子时、节气交界和时间边界的处理是否合理;
2. 八字与紫微双盘之间是否存在明显不一致;
3. 导出的资料是否适合直接提供给大模型;
4. 哪种结构更方便 ChatGPT 、Claude 、Gemini 、Kimi 等模型稳定读取;
5. 本地保存、身份隔离和默认脱敏是否存在隐私问题;
6. Windows 、Chrome 、Edge 环境下是否存在兼容性问题;
7. README 的安装步骤是否足够清楚;
8. 哪些边界场景值得补充成公开测试用例。
如果觉得这种“先固定排盘底稿,再交给不同模型解读”的方向有价值,也欢迎给项目一个 Star 。

---

原文链接:[点击查看](https://www.v2ex.com/t/1234164)

评论(1)

不错,我要回家试试这个工具!

· 0 个赞

0.040295s