使用指南

语义化文本(to_text)

把一张盘、一段运限或一个宫位投影成自然语言文本,喂大模型或直接给人读。

适合:所有人。这是这个库最直接的用法

一张盘在 x-iztro 里有三种投影:to_json / DTO 是给机器的结构化形态, 译文字段是给界面的展示形态,to_text 是给语言和人的自然语言形态 —— 盘面事实的完整文字描述,喂给大模型是它最常见的用途之一,但它本身不是提示词, 不含任何指令。手工拼接这段描述既繁琐又容易漏字段,所以每个可解读的对象都自带 to_text。

入口内容
星盘 to_text本命盘:基本信息 + 十二宫的干支、大限、小限虚岁、四组十二神、三组星耀 + 格局命中
运限 to_text运限:大限、小限、流年、流月、流日、流时,各层四化、流耀与格局
宫位 to_text单个宫位,与本命盘文本中该宫的段落一致
三方四正 to_text本宫、对宫、财帛位、官禄位四宫合看
patterns_to_text格局命中列表单独成文,本命与运限视角皆可

全部按盘面语言生成:中文盘出中文,英文盘出英文。

用法

chart = astro.by_solar("2000-8-16", 2, "female")
h = chart.horoscope("2025-1-1", 0)

text = f"{chart.to_text()}\n{h.to_text()}"   # str(chart) / str(h) 等价
let chart = by_solar("2000-8-16", 2, Gender::Female, true, Language::ZhCN, Config::default())?;
let h = chart.horoscope("2025-1-1", 0)?;

let text = format!("{}\n{}", chart.to_text(), h.to_text());
chart, _ := iztro.BySolar("2000-8-16", 2, iztro.GenderFemale, true, iztro.LanguageZhCN, nil)
h, _ := chart.Horoscope("2025-1-1", 0)

natal, _ := chart.ToText()
fortune, _ := h.ToText()

更细粒度的入口:

chart.palace("命宫").to_text()                 # 单宫
chart.surrounded_palaces("命宫").to_text()      # 三方四正
chart.patterns_to_text()                        # 本命格局
h.patterns_to_text("yearly")                    # 流年视角格局
chart.PalaceToText(iztro.PalaceTarget{Key: iztro.PalaceSoul})
chart.SurroundedPalacesToText(iztro.PalaceTarget{Key: iztro.PalaceSoul})
chart.PatternsToText(nil)
h.PatternsToText(iztro.ScopeYearly, nil)

Rust 侧对应 PalaceRef::to_text()SurroundedPalaces::to_text(lang)text 模块的自由函数(astrolabe_to_text / horoscope_to_text / palace_to_text / surrounded_palaces_to_text / patterns_to_text), 便捷方法按排盘语言输出,自由函数可指定语言。三语言输出逐字一致。

本命盘文本长什么样

下面是 2000-8-16 寅时 女这张盘的完整开头、前三宫与结尾的格局节:

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

=== 十二宫 ===

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

--- 夫妻 [来因] ---
天干地支: 庚辰
大限: 23-32
小限虚岁: 7, 19, 31, 43, 55, 67, 79, 91, 103, 115
十二神: 死, 将军, 岁建, 华盖
主星: 七杀(庙)
辅星: 右弼, 火星(陷)
杂耀: 封诰, 华盖

--- 官禄 [身宫] ---
天干地支: 丙戌
大限: 83-92
小限虚岁: 1, 13, 25, 37, 49, 61, 73, 85, 97, 109
十二神: 沐浴, 伏兵, 大耗, 月煞
主星: 廉贞(利), 天府(庙)
辅星: 左辅
杂耀: 天才, 天虚

(中间八宫从略)

=== 格局 ===
- 府相朝垣(命宫): 天府(庙), 天相(庙)

十二宫按盘上位置顺序输出,不是按宫名顺序。末尾的「格局」节列出 格局引擎在本命盘上的全部命中, 每条一行:格局名、命中宫、构成星耀。

运限文本长什么样

目标日期 2025-1-1 早子时:

=== 运限 ===
目标日期: 2025-1-1 / 二〇二四年腊月初二

--- 大限 ---
大限命宫: 本命夫妻 (庚辰)
  大限四化: 太阳禄, 武曲权, 太阴科, 天同忌
  大限格局: 杀破狼(命宫), 风云际会(命宫)
  夫妻 (财帛):
    主星: 武曲(得)[权], 天相(庙)
    辅星: 天马
    流耀: 运马
  兄弟 (子女):
    主星: 太阳(庙)[禄], 天梁(庙)
    流耀: 运曲
  ...

小限命宫: 本命官禄 (虚岁 25)
  小限宫名: 官禄, 仆役, 迁移, 疾厄, 财帛, 子女, 夫妻, 兄弟, 命宫, 父母, 福德, 田宅
  小限四化: 天同禄, 天机权, 文昌科, 廉贞忌
  主星: 廉贞(利), 天府(庙)
  辅星: 左辅
  杂耀: 天才, 天虚

--- 流年 ---
流年命宫: 本命夫妻 (甲辰)
  流年四化: 廉贞禄, 破军权, 武曲科, 太阳忌
  流年格局: 杀破狼(命宫), 禄马交驰(夫妻), 禄马佩印(夫妻), 昌曲夹命(命宫) [破格], 文星暗拱(命宫)
  夫妻 (财帛):
    主星: 武曲(得)[权], 天相(庙)
    辅星: 天马
    流耀: 流禄, 流马
    十二神: 吊客, 岁驿
  ...

流月命宫: 本命仆役 (丁丑)
  流月宫名: 田宅, 官禄, 仆役, 迁移, 疾厄, 财帛, 子女, 夫妻, 兄弟, 命宫, 父母, 福德
  流月四化: 太阴禄, 天同权, 天机科, 巨门忌
  流月流耀: 月鸾(田宅), 月曲(迁移), 月陀(迁移), 月禄(疾厄), 月羊(财帛), 月喜(子女), 月钺(夫妻), 月昌(夫妻), 月魁(命宫), 月马(命宫)
  流月格局: 机月同梁(命宫), 日照雷门(官禄), 日月并明(命宫), ...

流日命宫: 本命迁移 (庚午)
  流日宫名: 福德, 田宅, 官禄, 仆役, 迁移, 疾厄, 财帛, 子女, 夫妻, 兄弟, 命宫, 父母
  流日四化: 太阳禄, 武曲权, 太阴科, 天同忌
  流日流耀: 日曲(田宅), 日喜(田宅), 日钺(疾厄), 日陀(疾厄), 日禄(财帛), 日马(财帛), 日羊(子女), 日鸾(子女), 日昌(兄弟), 日魁(父母)
  流日格局: 火贪(命宫), 铃贪(命宫), 杀破狼(命宫), ...

流时命宫: 本命迁移 (丙子)
  流时宫名: 福德, 田宅, 官禄, 仆役, 迁移, 疾厄, 财帛, 子女, 夫妻, 兄弟, 命宫, 父母
  流时四化: 天同禄, 天机权, 文昌科, 廉贞忌
  流时流耀: 时马(福德), 时鸾(田宅), 时陀(官禄), 时禄(仆役), 时曲(迁移), 时羊(迁移), 时昌(财帛), 时钺(子女), 时喜(子女), 时魁(兄弟)
  流时格局: 火贪(命宫), 铃贪(命宫), 杀破狼(命宫), ...

大限与流年及以下各层都带该层视角的格局行,宫名按该层重排后的宫名书写; 小限不设格局视角,只带重排宫名与四化。命主尚未起运时,大限段的标题与各行标签 全部写「童限」而非「大限」——童限与大限是不同的解盘语义。

格式约定

记号含义
天同(利)括号内是亮度
太阳(旺)[权]方括号内是四化
--- 官禄 [身宫] ---方括号标记该宫同时是身宫
--- 夫妻 [来因] ---方括号标记该宫是来因宫
- 府相朝垣(命宫): 天府(庙), 天相(庙)格局行:格局名、命中宫(紧跟名称)、构成星耀
昌曲夹命(命宫) [破格][破格] 标记该格局构成但被冲破
大限命宫: 本命夫妻 (庚辰)这一层的命宫落在本命的哪个宫,括号内是该层干支
小限命宫: 本命官禄 (虚岁 25)小限落宫,括号内是虚岁
夫妻 (财帛):运限段中,前面是这一层重排后的宫名,括号内是本命宫名
十二神: 绝, 飞廉, 吊客, 岁驿本命宫内固定为长生12、博士12、岁前12、将前12 四组各一位的顺序;流年逐宫的「十二神」行只有岁前、将前两组
小限宫名: …流月宫名: …该层重排后的十二宫名,按本命宫位索引(寅宫起)排列
月鸾(田宅)流月及以下层级的流耀行,括号内是该流耀落在这一层的哪个宫

括号里是本命宫名,别读反

夫妻 (财帛): 说的是「这一格在本大限里叫夫妻宫,它在本命盘上是财帛宫」。 运限解读要以前面那个名字为准,括号里的名字是为了让你能对回本命盘。 见运限

日期字段原样回显入参,不补零:传 "2000-8-16" 输出就是 阳历: 2000-8-16

篇幅

中文盘的本命文本约 1,810 字符,运限段约 2,490 字符,两段合起来约 4,300 字符。 英文盘更长(星名是单词而非两字),本命约 3,570、运限约 5,990 字符。 任何主流模型的上下文窗口都装得下,通常不必裁剪。

接入大模型

生成的文本是纯描述,不含指令。实际使用时在前面加上你的分析要求:

system = "你是紫微斗数分析师。基于给定命盘作答,不要编造盘上没有的信息。"
user = f"""{chart.to_text()}

{chart.horoscope("2025-1-1", 0).to_text()}

请分析这个人 2025 年的事业运势。"""

更完整的接法(工具调用、别让模型自己排盘)见让 AI 解读命盘

用中文盘还是英文盘

优先用中文盘。英文盘的星名走 iztro 的意译词表(紫微是 emperor、七杀是 marshal), 亮度退化成 [+3] 这类记号,四化写成 A/B/C/D —— 这套写法与英文命理界的通行译法不同,模型未必认得。

主流模型的中文命理术语能力都不差,直接喂中文文本效果更好。 确实需要英文时,建议附上一份星名对照表

需要更细的控制

to_text 覆盖的是通用场景。如果要自定义文本结构(比如只描述特定几个宫、 或者输出 JSON 而非文本),直接遍历星盘数据自己拼即可 —— 所有字段都是公开的,见数据结构字典

本页目录