# 文档 (/zh/docs)

紫微斗数排盘引擎：与 JS iztro 逐字段零差异，附格局判定、知识包与生辰反推，一次调用转成大模型可读文本。Rust 核心，Rust / Python / Go 直接调用。



把出生时间算成一张完整的紫微斗数命盘，并能一键转成大模型读得懂的文字 ——
**排盘归它算，解读归 AI**。

一次调用得到的就是这样一段文字——下面是完整的基本信息与第一宫，
其余十一宫同款列全，直接贴进任何大模型就能开始问：

```text
=== 基本信息 ===
性别: 女
阳历: 2000-8-16
农历: 二〇〇〇年七月十七
干支: 庚辰 甲申 丙午 庚寅
时辰: 寅时 (03:00~05:00)
星座: 狮子座
生肖: 龙
命宫地支: 午
身宫地支: 戌
命主: 破军
身主: 文昌
五行局: 木三局
生年四化: 太阳禄, 武曲权, 太阴科, 天同忌

=== 十二宫 ===

--- 财帛 ---
天干地支: 戊寅
大限: 43-52
小限虚岁: 9, 21, 33, 45, 57, 69, 81, 93, 105, 117
十二神: 绝, 飞廉, 吊客, 岁驿
主星: 武曲(得)[权], 天相(庙)
辅星: 天马
杂耀: 解神, 三台, 天寿, 天巫, 天厨, 阴煞, 天哭

…（其余十一宫依次列全）
```

排盘结果对不对，有一条可验证的硬标准：**与 JS [iztro](https://github.com/SylarLong/iztro)
v2.5.8 逐字段零差异**——这是复现口径，不是流派裁决——由 716,314 例金标测试守着，
见[准确性保证](/zh/docs/guide/about/accuracy)。默认口径与 iztro 一致，
中州派与各分界点[可切换](/zh/docs/guide/guides/config)。

## 从哪开始 [#从哪开始]

<Cards>
  <Card title="x-iztro 指南" href="/zh/docs/guide" description="安装、第一张盘、紫微斗数概念、配置与数据结构。不分编程语言的通用内容。" />

  <Card title="不写代码怎么用它" href="/zh/docs/guide/guides/for-non-developers" description="能做什么、典型场景、要跟工程师交代哪几件事。" />

  <Card title="Rust API 参考" href="/zh/docs/rust" description="核心库。Python 与 Go 绑定都调用它。" />

  <Card title="Python API 参考" href="/zh/docs/python" description="dataclass 与 StrEnum 构成的类型化 API，零外部依赖。" />

  <Card title="Go API 参考" href="/zh/docs/go" description="内嵌 WebAssembly，纯 Go 运行时，无 cgo。" />

  <Card title="语义化文本（to_text）" href="/zh/docs/guide/guides/to-text" description="上面那段文字怎么生成、格式约定、怎么接进大模型。" />
</Cards>

## iztro 没有的三件事 [#iztro-没有的三件事]

排盘之上的语义层，也是 AI 管线真正要用的部分——上游 iztro 没有对应 API：

<Cards>
  <Card title="格局判定（64 条）" href="/zh/docs/guide/concepts/patterns" description="本命与运限共用一套规则，命中带成格宫位、口径与证据星，可审计。" />

  <Card title="知识包" href="/zh/docs/guide/guides/knowledge-pack" description="解读文本与门派属性外置成可替换 JSON，内嵌默认包，可当 RAG 语料。" />

  <Card title="生辰反推" href="/zh/docs/guide/guides/reverse" description="由八字四柱或盘面特征反查候选生辰，每个候选经正排验证。" />
</Cards>

## 按身份找路 [#按身份找路]

* **懂命理、不写代码** → [不写代码怎么用它](/zh/docs/guide/guides/for-non-developers)
* **后端 / AI 应用工程师** → [快速开始](/zh/docs/guide/getting-started)，然后看 [LLM 接入](/zh/docs/guide/guides/llm)
* **不了解紫微斗数** → [紫微斗数概念](/zh/docs/guide/concepts)，从干支与十二宫讲起

## 三种编程语言，同一套结果 [#三种编程语言同一套结果]

三套绑定调用同一份 Rust 核心，因此排盘结果逐字段相同。
判断方法基于语言无关标识，同一条分析规则用三种编程语言写出来，结果也一致。

<Tabs items="['Rust', 'Python', 'Go']">
  <Tab value="Rust">
    ```rust
    use x_iztro::*;

    let chart = by_solar("2000-8-16", 2, Gender::Female, true, Language::ZhCN, Config::default())?;
    let soul = chart.palace(Palace::Soul).unwrap();

    println!("{}", soul.has(&[StarKey::ZiweiMaj]));
    ```
  </Tab>

  <Tab value="Python">
    ```python
    from x_iztro import Astro

    chart = Astro().by_solar("2000-8-16", 2, "female")
    soul = chart.palace("soulPalace")

    print(soul.has(["ziweiMaj"]))
    ```
  </Tab>

  <Tab value="Go">
    ```go
    chart, _ := iztro.BySolar("2000-8-16", 2, iztro.GenderFemale, true, iztro.LanguageZhCN, nil)
    soul := chart.Palace(iztro.PalaceSoul)

    fmt.Println(soul.Has(iztro.StarZiweiMaj))
    ```
  </Tab>
</Tabs>

三段代码给出同一个判断：这张盘的命宫里有紫微星（Python 打印 `True`，
Rust 与 Go 打印 `true`）。三段用的都是语言无关标识 `ziweiMaj`——
就算把盘换成英文或日文输出，判断结果也不变。
