算命,不许现编

#AI#独立开发

算命这行,最大的本事是看人下菜碟。

胡同口支个摊儿的老先生,你穿得体面,那是“大富大贵”;你愁眉苦脸坐下,那是“最近犯小人”。同一个生辰八字,换个人来问,说法能差出二里地去。

现在让 AI 算命,也一个毛病:现编。同一个问题问两遍,两遍不一样,还都说得头头是道。

最近有个开源项目,反着来:不让 AI 现编。

卡通插图:左边一个戴瓜皮帽、留山羊胡的算命老先生坐在铺红布的小桌后头,旁边立着一面写着“铁口直断”的幡,气泡里说“看你面相,大富大贵!”;中间戴黑色棒球帽的 lzbob 坐在小板凳上,头顶一个问号;右边一个灰色方脑袋机器人从一个木头抽屉柜里抽出一张卡片,抽屉上标着 1950、1970、1990、2026,卡片上写着“1990-01-01 子时 男”,机器人的气泡里说“查表,不现编。”
左边那位看你脸色说话;右边那位只认生辰,翻一万遍都是那段。

先说是个啥

项目叫 ziwei-doushu,一个紫微斗数的开源排盘引擎,TypeScript 写的,照的是倪海厦《天纪》那一套。作者网名“王多鱼AI”,线上版由北京王多鱼科技运营。

2026 年 5 月开张,到现在 1.2 万颗星(我看的时候是 11,995),2 千 3 百多个 fork。代码是 MIT 协议,数据集是 CC BY 4.0。线上能直接排盘,网站原来叫 metisziwei.com,今天刚改名 OURANIC,搬到了 ouranic.cn,旧网址会自动跳过去。

不让 AI 现编

它的路数是:排盘引擎加一套断语库,把所有命盘的解读提前算好、写好。同一个生辰进去,出来的永远是同一段话。AI 要用,查表就行,不许自己发挥。

光提前写好的这份,就是个大部头:

  • 674,976 张命盘:公历 1950 到 2026 年的每一个真日子,乘 12 个时辰,再分男女。
  • 每张盘 13 个方面:命格总览、性格、感情、事业、财运、健康、兄弟、子女、迁移、人际、田宅、福德、父母。
  • 一共 8,774,688 段解读,正文约 204 亿字,每张盘约 3 万字。

204 亿字什么概念?找个算命先生一分钟说两百字,不喝水不喘气儿,也得说一百九十多年,下辈子都说不完。

可这么一大堆,压缩完才 161 MB,解开是 56.6 GB,按年份分成 77 个文件,要哪年下哪年。

文字卡片:算命,不许现编。排盘引擎加断语库,提前把所有命盘算好、写好,同一个生辰进去,永远是同一段话。674,976 张命盘,1950–2026 年每个真日子 × 12 时辰 × 男女;每张 13 个方面;8,774,688 段解读,约 204 亿字。AI 要用,查表就行,不许自己发挥。

校对比编还费劲

编容易,校难。v4.0 这一版,把 13 个方面的断语按倪师《天纪》的逐字稿和《紫微斗数全书》原文,一句一句对了一遍:

  • 标着“倪师说”或者“《全书》说”、却查不到出处的话,删掉,或者换成逐字查得到的原话;倪师的原话还标上是《天纪》第几集、几分几秒。
  • 根本不会发生的四化,比如七杀化权、紫微化忌,相关的句子统统删掉。
  • “力量强时如何,落陷时如何”这种两头说的话,改成按你这张盘只说成立的那一头。
  • 网站上古籍引证从 244 处加到 405 处,每一处都能在《全书》里逐字找到。

两头说,那是算命的看家本事,怎么说都不算错。这回连这条后路都给堵上了,挺狠。

引擎底下的笨功夫

排盘这活儿,细节全是坑,它一个一个填了:

  • 真太阳时:按出生地经度加均时差校正,连神农架、阿拉尔这种地方的经度都补上了;海外出生的也能按当地时区算。
  • 夏令时:中国 1986 到 1991 年那几年的夏令时能判出来,但只判不扣,改不改交给你。
  • 闰月:四种算法,可选,不写死一家。
  • 晚子时:夜里十一点到十二点生的算哪天,换日的规矩可以切换。
  • 星曜亮度:庙、旺、得、利、平、不、陷七档,各家流派判法不一样,做成开关。
  • 还有四化飞星、十二神煞,以及一个 1100 多行的格局规则库,紫府同宫、日月并明、七杀朝斗这些都在里头。

最让我意外的是回归测试:768 张盘,挨个查紫微铁律、夏令时、立春边界这些,每次提交代码,GitHub 上自动跑一遍。

算命的跑单元测试,我还是头一回见。

开源开到哪儿

开源的是排盘引擎、古籍公版原文、一个能跑的演示界面,还有两套生成好的数据集。

不开源的是断语库本身,还有 AI 解读的提示词、后台接口、用户和会员那一套。仓库里的演示界面画得出盘,但给不出线上那套解读,这一点 README 写得明明白白。

用的时候留神

想拿它当 AI 的检索资料,或者微调模型的语料,有几处得留神:

  • 解读里引用的倪师原话不在 CC BY 授权里,按 CC BY-NC-SA 4.0 算,不能商用;要单独成批地用,得另外处理。
  • 数据集是按时辰序号直接排的盘,没按出生地做真太阳时校正。
  • v4.0 是按旧的默认亮度流派生成的,跟现在的新默认有少量出入。

最后说两句

工程上,这项目是真扎实:确定性生成,有回归测试,逐句对出处。传统文化数字化,做到能测试、能复用的,不多见。

可命理到底是传统术数。作者自己在 README 里都写了,六亲那几项“仅供参考”。当一份文化数据看,挺好;拿它定终身大事,那可就是你自己的事儿了。

同一个时辰,翻一万遍都是那段话。准不准另说,起码它不看人下菜碟。

红墙结尾卡片:同一个时辰,翻一万遍都是那段话。准不准另说,起码它不看人下菜碟。下面是戴黑色棒球帽的 lzbob 卡通头像。

Comments

More writing