Skip to main content

tianzhi-core · 东方术数核心算法

tianzhi-core 是天秩的计算核心。天秩是东方术数的研究与学习平台,涵盖八字、六壬、六爻、奇门、紫微、梅花。

术数是一套以干支为坐标的推演体系。八字、六壬、六爻、奇门、紫微、梅花,各有典籍与推演之法,底下却共用同一套坐标:干支、五行、节气、长生、旺相休囚死。

tianzhi-core 把这套共用的底座做成代码,再在其上按门类展开。它是各类术数软件与 AI 应用的计算基座。

术数计算的三段

一、历法与纪时。 公历农历互转、二十四节气的精确时刻、真太阳时修正、干支纪年月日时。这一段是天文计算,规则明确,只有对错。

二、起局与排盘。 把干支组织成盘,取出藏干、十神、纳音、地势、旬空、命宫身宫胎元,推出起运与大运流年。这一段是查表与推导,同样只有对错。

三、判断与推演。 五行力量如何量化、日主旺衰如何分档、用神如何取、格局如何定、岁运如何引动原局。这一段有流派、有分歧、有取舍,也是做命理产品真正耗时的地方。

前两段已有成熟实现,lunar-python 做得完整而准确,tianzhi-core 直接采用,不作重复实现。第三段目前缺少可被检验的公共实现,各家自写、彼此矛盾,这是 tianzhi-core 补的部分。

同时 tianzhi-core 把三段统一在一致的类型与契约之下:排盘产出的结构可以直接送进量化与取用,流派分歧处收敛为显式参数,全链路为纯函数、可测试、跨进程一致。三段因此成为一条可组合的流水线,而不是三处各自为政的调用。

给谁用

  • 命理网站、App、小程序 — 旺衰怎么量化、用神怎么取、格局怎么定、岁运怎么引动,这几层不必自己从头实现,也不必在各家说法里反复权衡。
  • AI 应用 — 模型不会算八字,让它自行推演会编出一套看似合理的东西,而且同一张盘问两次答案不一样。由这个包算出确定的结果喂给模型,模型只负责把结果说成人话,幻觉就没有落脚点。
  • 研究与教学 — 每条规则注明典籍出处,工程取值单独标注,同一输入永远同一输出,可以对着原文逐条印证。

架构

tianzhi_core/
  calendar/    历法    真太阳时、二十四节气时刻、距节天数
  core/        通用    五行生克、干支属性藏干、合冲刑害、十二长生、
                       旺相休囚死、人元司令
  bazi/        八字    排盘 → 量化 → 取用 → 引动 → 双盘
  liuren/      六壬    月将加时 → 天地盘 → 四课 → 九宗门三传 → 天将
  ...                  其余各门依同样的次第展开

底下两层是所有术数共用的。任一门类接进来,都不必重做历法与干支,它要的只是在这套坐标上定义自己的起局方式与推演之法。

安装

pip install tianzhi-core

用

以八字为例。

from datetime import datetime
from tianzhi_core.bazi import chart, strength, yongshen, score

c = chart.build_chart(datetime(1996, 4, 18, 14, 6), longitude=114.93, gender=0)
print(c.bazi)                              # 丙子 壬辰 乙酉 癸未

s = strength.day_master_strength(c.quad, month_siling=c.siling)
print(s.label, round(s.ratio, 3))          # 中和 0.453

y = yongshen.select(c.quad, month_siling=c.siling)
print(y.yong, y.xi, y.ji, y.chou)          # 土 火 木 水
print(y.evidence)                          # ('旺衰·中和', '格·偏印格', '病·水最旺', '药·土制之', ...)

r = score.score_year(c.quad, "丙午", favorable=y.favorable, unfavorable=y.unfavorable)
print(r.score, r.breakdown)                # 58.8 {'base': 50.0, 'year_gan|丙(火)喜用': 8.0, ...}

排完盘 c.quad 直接往下传,量化、取用、引动、双盘都收这个结构。返回的是结构化数据与术语标签。

有哪些方法

不必翻文档,运行时问它自己:

from tianzhi_core import catalog

print(catalog.as_text())                    # 全部方法:怎么调、作用、返回哪些字段
catalog.tools('bazi')                       # 只看某一层
catalog.describe('bazi.yongshen.select')    # 单个方法的完整说明

清单从代码现读——作用取自 docstring 首行,签名取自真实签名,返回的字段取自 dataclass。 文档与实现不会各说各话,因为只有一处来源。

八字模块

层 模块 提供
排盘 bazi.chart 四柱、藏干、司令、十神、纳音、地势、命宫身宫胎元
排运 bazi.luck_cycle 起运岁数与交运时刻、大运、流年、流月
量化 bazi.strength 五行力量、日主旺衰五档、十神力量、寒暖燥湿
取用 bazi.tiaohou geju yongshen 调候、月令格局与相神、通用规则与本盘成象的相抵之处、用喜忌仇闲
引动 bazi.interact score 岁运对原局的作用、可解释的逐年评分与曲线
双盘 bazi.hepan 两张盘的关系指标
参考 bazi.shensha 神煞落点。取用逻辑不采信

六壬模块

层 模块 提供
起课 liuren.pan 月将(中气换将)、天地盘、四课、九宗门三传、十二天将、旬空、遁干、六亲、神煞

取传依《六壬大全》(四库全书本)。课经卷五至卷八的起例课 48 个逐一核对三传,全合,留作回归测试。 涉害一门诸家不一:《六壬大全》归本家数克、取深者,《大六壬指南》只取孟仲季、不数深浅;本包从《大全》, 数克时临位不计、寄宫干计入,与书中七处实例一致。

依据

调候查《穷通宝鉴》(又名《栏江网》)十天干乘十二月令一百二十格,忌神另参《金不换大运》。格局按《子平真诠》月令取格与顺用逆用,八条相神规则照原文编成判据。病药依《神峰通考》。旺衰不以月令独断,取《滴天髓》「得時俱為旺論,失令便作衰看,雖是至理,亦死法也」之意,兼看通根、透干与全盘力量之比。

有出处的规则在代码里注明篇名。无法从典籍直接推出的系数标注为本包取值、可以调整。

流派分歧之处做成参数:晚子时归哪一天、阴干有没有刃、取用以格局为先还是调候为先,默认值另附理由。

计算契约

提供干支纪时、五行力量、旺衰分档、调候取用、月令格局、岁运引动、逐年评分的计算,返回结构化数据与术语标签。

纯函数:不读系统时间,不访问网络与文件系统(包内数据表除外)。同一输入永远得到同一输出,跨进程一致。

致谢

lunar-python 提供历法与排盘:公历农历互转、二十四节气的精确时刻、干支纪时、藏干、十神、纳音、地势、旬空、命宫身宫胎元、大运排布。这一层完整且准确,tianzhi-core 在其上建立类型化的数据结构与统一契约,并将流派分歧处显式化为参数。

调候与喜忌两张一百二十格对照表、人元司令分日表,整理自 china-testing/bazi 与 qianye-wuyu/yueyuan-bazi 的公开数据;原始出处为《穷通宝鉴》《金不换大运》等公版古籍。

参与

这门学问的公共实现需要很多人一起校对。以下三类贡献尤其欢迎。

规则有误。 某条判据与典籍原文不符,或者理解偏了。请在 issue 中写明:涉及哪个模块的哪个函数、依据哪一部书的哪一篇、原文怎么说、你认为应当如何。

流派分歧。 同一件事各家说法不同,而本包只实现了其中一种。请说明另一派的主张与出处,以及它与现有默认值的差别。经确认的分歧会做成参数,两派并存交由使用者选择,本包不替人选边。

案例佐证。 拿具体命例说明某条规则算得不对,远比空泛的论断有力。请附上四柱、本包当前的输出、你认为正确的结论及其推导。多个命例指向同一结论,更佳。

经核实的意见会合入计算逻辑,并在代码注释与「依据」一节中注明出处与提出者。改动打分权重这类工程取值时,请附上对拍数据:在多少命例上产生多大差异。

传统文化要传下去,靠的不是各说各话,是把推演过程摊开让人检验。欢迎通命理的同道、研究者、工程师一起把这件事做成可以对质的公共资产。

关于 AI 生成的内容。 欢迎用 AI 辅助整理与表达,但禁止 AI 灌水。

相关项目

天秩 · 本包的在线形态:排盘、研习与典籍。

tianzhi-classics · 算法所依据的典籍原文。只收公有领域的版本,现代点校本与白话译注不在其列。算法输出里的出处标签(如「穷通宝鉴·辛日午月」「子平真诠·论用神」)逐条指回这里的原文,让结论可以回溯查证。

许可

MIT

Release files for tianzhi-core 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tianzhi-core 0.2.1
File Size Uploaded
tianzhi_core-0.2.1.tar.gz 114.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tianzhi-core 0.2.1
File Interpreter ABI Platform
tianzhi_core-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 211.7 kB

Release files / tianzhi_core-0.2.1.tar.gz

Download URL tianzhi_core-0.2.1.tar.gz
Size 114.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e8172a41a22dedefdb1fc0182cf81f68474ac6a1d481773077fdf97d7a35b777
BLAKE2b-256 checksum
How to use checksums
e84ee86ff8cf5b0dfb2471aaad9760bcebdc6d6576b70d04fc197194bfe1a6c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / tianzhi_core-0.2.1-py3-none-any.whl

Download URL tianzhi_core-0.2.1-py3-none-any.whl
Size 97.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b75165c733caffdfc21fd07295c85b4cf19565cedf2b2235321a96d744fdae3
BLAKE2b-256 checksum
How to use checksums
368f9a4f8e27aaf5731a6092a15da3bd0841ce34f48004ea2f6d251780069da9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page