【AI占星的提示词工程:如何用Prompt Engineering构建占星卜卦系统无标题】
AI占星的提示词工程:如何用Prompt Engineering构建占星卜卦系统
作者: Soul Answers占星AI实践团队
分类: 人工智能 / 提示词工程 / LLM应用实践
阅读时间: 约15分钟
前言
如果你用 ChatGPT 问过占星问题,大概率得到过这样的回答:
「根据你的星盘,你近期运势不错,建议把握机会……」
听起来像占星,但没有任何实质内容。
这不是 LLM 不够聪明,而是它不知道「占星卜卦」这件事有一套具体的判断规则——它只是从训练数据里拼凑出了听起来像占星的语言。
本文以一个 AI 占星卜卦系统的构建实践为例,完整介绍如何通过提示词工程(Prompt Engineering),将占星卜卦这套有明确逻辑的规则体系转化为 LLM 可执行的判断系统。
目录
- 什么是占星卜卦(Horary Astrology)
- 为什么通用 LLM 做不好占星解读
- 提示词工程的整体架构设计
- 第一层:领域知识的结构化注入
- 第二层:推理流程的强制约束
- 第三层:规则冲突的处理机制
- 实际效果与问题
- 对其他领域的参考意义
- 总结
1. 什么是占星卜卦(Horary Astrology)
在开始讲提示词工程之前,需要先理解我们要「教」给 AI 的是什么。
占星卜卦(Horary Astrology) 是一套起源于古希腊、由17世纪英国占星师威廉·利利(William Lilly)系统化的占星方法。
它的核心逻辑是:
当一个人心中带着真诚的问题,在某一时刻提出——这个时刻的天象星盘,与这个问题存在关联,可以通过分析星盘推导出答案。
和很多人以为的「玄学随机」不同,卜卦有一套非常具体的规则体系:
| 要素 | 说明 |
|---|---|
| 星盘 | 提问时刻,从提问地点看出去的天象快照 |
| 宫位 | 星盘分为12格,每格对应生活的一个领域 |
| 代言星 | 每个宫位有一颗行星代表该领域 |
| 相位 | 行星之间的角度关系,决定事情走向 |
| 月亮状态 | 月亮虚空等状态决定盘是否可判断 |
这套规则的关键特征是:它是确定的,不是模糊的。
月亮虚空时「事情无果」——这是规则,不是概率。上升点在 0-3 度内「盘不可判」——这是条件,不是建议。
2. 为什么通用 LLM 做不好占星解读
理解了占星的规则特性之后,问题就很清晰了。
2.1 训练数据混乱
LLM 的训练数据中,「占星」相关内容包含:
- 现代心理占星(强调性格分析,不做具体预测)
- 传统卜卦(有明确判断规则)
- 娱乐星座内容(基本没有占星依据)
- 不同时代占星师的互相矛盾的观点
这三类内容的方法论完全不同,模型在没有明确指引时会混用,导致输出「听起来像,但逻辑上错误」。
2.2 规则执行不严格
即使模型「知道」月亮虚空规则,在实际判断时也容易跳过检查步骤——因为没有强制执行机制。
2.3 推理顺序错乱
占星判断有严格的步骤顺序,跳步会产生错误结论。通用 LLM 倾向于直接输出结论,压缩中间推理过程。
2.4 规则矛盾无法处理
当遇到不同文献对同一规则有不同解释时,模型不知道应该采用哪个,会输出自相矛盾的内容。
3. 提示词工程的整体架构设计
构建提示词系统时,将问题拆解为三个层次:
┌─────────────────────────────────────────┐
│ 提示词系统整体架构 │
├─────────────────────────────────────────┤
│ Layer 3: 冲突处理层 │
│ → 规则来源权威层级 │
│ → 矛盾规则的优先级裁定 │
├─────────────────────────────────────────┤
│ Layer 2: 流程约束层 │
│ → 强制执行判断步骤顺序 │
│ → Chain-of-Thought 触发机制 │
├─────────────────────────────────────────┤
│ Layer 1: 知识注入层 │
│ → 行星知识结构化 │
│ → 宫位规则条件化 │
│ → 相位判断操作化 │
└─────────────────────────────────────────┘
三层各自解决不同的问题:
- Layer 1 解决「模型知道什么」
- Layer 2 解决「模型按什么顺序思考」
- Layer 3 解决「规则冲突时模型怎么选择」
4. 第一层:领域知识的结构化注入
4.1 颗粒度的选择
知识注入的第一个关键决策是颗粒度。
❌ 错误示例(颗粒度太粗):
你是一位占星师。
行星含义:太阳=自我,月亮=情绪,金星=爱情,火星=行动...
请根据星盘进行解读。
这种写法对实际判断几乎没有帮助,因为「金星代表爱情」在宏观上正确,但在具体判断中,金星的含义取决于它的宫位、品质状态、与其他行星的相位关系。
✅ 正确示例(操作级颗粒度):
[行星·金星·卜卦判断规则]
基础属性:
- 性质:阴性、凉湿
- 代表领域:爱情/美/合作/和谐/部分财务
品质状态判断:
- 入庙:金牛座(力量最强)、天秤座
- 入旺:双鱼座
- 入陷:天蝎座(力量削弱)
- 入落:处女座(力量最弱)
注意:品质状态影响结论的"强度",不改变结论的"方向"
角色判断规则:
当金星 = 第七宫宫主星时 → 代表"对方"(感情中的另一半)
当金星 = 第二宫宫主星时 → 代表"财务状况"
当金星位于第五宫时 → 加强感情、子女、娱乐相关解读的权重
这种结构让模型能精确调用规则,而不是泛化输出。
4.2 规则的条件化表达
传统占星文献是散文式的,需要转化为条件化格式。
原文献表述(散文):
月亮虚空的时候,问题往往无果,事情不了了之,除非月亮在某些强势的星座里……
条件化重写:
[规则·月亮空亡]
触发条件:
月亮已完成当前星座内与其他行星的最后一次相位,
且尚未进入下一个星座
基本结论:
问题「无果」——事情可能不了了之,或结果与预期完全不符
例外条件(以下情况时,空亡效力减弱,可继续判断):
1. 月亮位于巨蟹座(月亮入庙)
2. 月亮位于金牛座(月亮入旺)
3. 月亮位于射手座
4. 月亮位于双鱼座
输出要求:
无论是否有例外,必须在判断结果中明确标注月亮状态
条件化格式让模型能够准确识别触发条件、正确处理例外、知道在什么位置输出这个判断。
4.3 知识模块的拆分粒度
在实际系统中,约6万字的占星知识被拆分为以下模块:
核心知识模块
├── 行星模块(7颗传统行星 × 多维度描述)
├── 宫位模块(12个宫位 × 领域映射规则)
├── 相位模块(主要相位 × 入出相位判断)
├── 月亮专项模块(虚空/饱和/转光等特殊状态)
├── 行星品质模块(庙旺陷落 × 逆行 × 燃烧)
├── 卜卦规则模块(盘合法性 × 禁止判断条件)
└── 时机判断模块(行星速度 × 时间换算)
每个模块独立维护,可以单独更新,不影响其他模块。
5. 第二层:推理流程的强制约束
5.1 为什么需要强制流程
知识注入解决了「知道什么」,但模型仍然可能跳过某些步骤直接输出结论。
以一个实际错误案例为例:
用户问题:我和TA有没有结果?
模型错误输出(跳步):
"根据第七宫宫主星土星与你的代言星火星形成四分相,
这段关系存在较大阻碍,建议谨慎……"
正确判断流程应该发现:
此时月亮空亡(月亮在处女座,已完成最后相位)
→ 正确结论:此时不适合判断这个问题,而不是给出阻碍结论
跳过月亮空亡检查,导致了完全错误的结论。
5.2 强制流程的 Prompt 设计
[卜卦判断·强制执行流程]
重要:以下步骤必须严格按顺序执行。
在完成当前步骤并输出检查结果之前,禁止进入下一步骤。
━━━ 步骤 1:盘合法性检查 ━━━
检查项:
□ 上升点度数在 3-27 度之间?
□ 上升星座与提问者基本情况相符?
输出格式:
[步骤1结果] 合法 / 不合法
理由:___
结论:继续 / 终止(原因:___)
━━━ 步骤 2:月亮状态检查 ━━━
检查项:
□ 月亮是否空亡?
□ 月亮是否处于饱和(Besieged)状态?
输出格式:
[步骤2结果] 正常 / 虚空 / 饱和
是否有例外条件:是 / 否(说明:___)
结论:继续 / 修正判断方向(说明:___)
━━━ 步骤 3:确定代言星 ━━━
...(以下类似)
这种格式有几个设计要点:
- 「禁止」比「应该」更有效:在 prompt 里用「禁止进入下一步骤」,比「应该按顺序」有更强的约束效果
- 输出格式标准化:每个步骤都要求特定格式输出,让推理过程可见
- 终止条件明确:某些步骤失败时应该终止,不能继续推进到结论
5.3 Chain-of-Thought 的强制触发
[输出要求]
1. 推理过程:每个步骤必须输出检查结果,不得省略
2. 结论依据:最终结论必须明确引用至少2个星象依据
3. 不确定性标注:若某个判断存在争议或不确定,必须标注
4. 禁止直接给结论:不得在完成推理步骤前输出判断结论
示例(正确):
[步骤2结果] 月亮状态:正常(月亮双子15度,下一相位为与木星的三分相)
[步骤3结果] 代言星确定:第一宫宫主=火星(代表提问者),第七宫宫主=金星(代表对方)
[步骤5结果] 相位分析:火星与金星即将形成六分相(相差约62度),为入相位
[综合结论] 这段关系有发展可能,六分相意味着需要主动推进……
示例(错误,禁止):
这段关系有一定阻碍,建议谨慎……(直接结论,无推理过程)
6. 第三层:规则冲突的处理机制
6.1 传统文献中的规则矛盾
这是整个提示词系统中最难处理的部分。
占星文献跨越两千年,不同时期的占星师对同一现象有不同甚至矛盾的解释。
典型冲突案例:逆行行星作为代言星
| 来源 | 规则表述 |
|---|---|
| 威廉·利利(17世纪) | 代言星逆行 = 提问者会改变想法,或事情会反复 |
| 更早的古典传统 | 代言星逆行 = 整张盘的判断质量下降,结论存疑 |
| 现代实践者 | 某些问题类型(如失物)中,逆行代言星是正面信号 |
三种解释都有文献支撑,但结论完全不同。
6.2 权威层级的显式定义
解决方案:在 prompt 中显式定义规则来源的权威层级。
[规则权威层级·占星卜卦]
当遇到规则冲突时,按以下优先级裁定:
优先级 1(最高权重):
威廉·里利《基督教占星学》(Christian Astrology, 1647)
中的明确规定
优先级 2:
约翰·弗洛里、本·以斯拉等古典阿拉伯-希腊传统
中的共识规则(多个来源一致时采用)
优先级 3:
奥利维亚·巴克利、德比·霍尔丁等现代卜卦师
的注解和补充规则
优先级 4:
基于大量卜卦案例归纳的实践规律
冲突处理规则:
1. 优先采用高权威来源的规则
2. 低权威来源的例外/补充条件,在结论中标注来源
3. 无法调和的冲突,必须在输出中明确说明:
「此处文献存在分歧,本次解读采用[来源]的标准,
另一种解读为[alternative]」
这个机制的价值在于:
- 可追溯:用户知道结论依据哪套规则
- 透明:冲突不被隐藏,而是显式标注
- 可维护:权威层级可以根据实践反馈调整
7. 实际效果与现存问题
7.1 有效的地方
| 问题 | 方案 | 效果 |
|---|---|---|
| 关键步骤跳过 | 强制流程 + 禁止指令 | 月亮空亡、盘合法性检查几乎不再跳过 |
| 结论无依据 | CoT 强制触发 | 每个结论都附带星象依据,可验证 |
| 规则混用 | 权威层级定义 | 同一规则体系内的一致性大幅提升 |
| 知识泛化 | 操作级颗粒度 | 同一行星在不同宫位下的解读显著区分 |
7.2 还未解决的问题
时机判断精度
行星速度换算时间这一步,由于影响因素太多(星座类型、宫位位置、行星品质),误差仍然较大,目前给出的是范围而非精确时间。
非结构化输入的处理
用户输入往往是「我最近有点纠结要不要换工作」,需要将其转化为可判断的卜卦问题。这个「问题格式化」步骤目前还需要额外的 prompt 处理。
极端盘面
某些罕见的星盘组合(如多颗行星同时逆行、多重虚空叠加等),规则库的覆盖不足,需要继续补充。
8. 对其他领域的参考意义
这套方法论不是占星专属的。
任何「有明确规则体系的专业领域 + LLM 应用」都面临类似问题:
- 法律文书解读:不同法律条文之间有优先级(宪法 > 法律 > 法规),需要权威层级定义
- 医学辅助诊断:诊断有明确的排查顺序,需要强制流程约束
- 金融合规审查:规则细则需要操作级颗粒度,不能泛化处理
核心方法论是一样的:
1. 确定认知边界:隔离不相关训练数据的干扰
2. 操作级知识注入:规则细化到可执行层面
3. 流程强制约束:推理顺序不能被压缩
4. 冲突优先级机制:规则矛盾时有明确裁定规则
9. 总结
本文介绍了构建 AI 占星卜卦系统时使用的提示词工程方法,核心是三层架构:
Layer 1:知识注入层 → 操作级颗粒度,条件化表达
Layer 2:流程约束层 → 强制执行步骤顺序,CoT 显式触发
Layer 3:冲突处理层 → 权威来源层级,冲突显式标注
这套方法要解决的核心问题不是让 LLM「更懂占星」,而是给它一个确定的规则世界,让它在这个世界内严格推理。
对 LLM 应用开发者来说,当你面对一个有明确规则体系的专业领域时,与其花大量时间做 fine-tuning,不如先认真考虑:这套规则能不能通过结构化的提示词工程来实现?
很多时候,答案是可以的。
参考资料
- William Lilly, Christian Astrology (1647)
- Olivia Barclay, Horary Astrology Rediscovered (1990)
- Deborah Houlding, The Houses: Temples of the Sky (2006)
- Wei, Jason, et al. “Chain-of-thought prompting elicits reasoning in large language models.” NeurIPS (2022)
本文实践案例来自 Soul Answers 占星平台的提示词工程探索。
CSDN 标签: 提示词工程 Prompt Engineering 大语言模型 LLM应用开发 AI产品实践 Chain-of-Thought 领域知识注入 占星AI
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)