用途
易经占卜系统,基于《周易》提供传统起卦方法和 AI 诠释引擎。当用户请求占卜、问卦、易经解读,或寻求决策指引时使用。
主要能力
起卦方法
铜钱法(推荐):
python3 scripts/divine.py --method coin --question "用户的问题"
蓍草法:
python3 scripts/divine.py --method yarrow --question "用户的问题"
自定义种子:
python3 scripts/divine.py --method coin --seed "20260214"
输出结构
脚本返回 JSON,包含:
- main_hexagram:本卦(主卦)
- number:卦序(1-64)
- upper_trigram:上卦(八卦之一)
- lower_trigram:下卦(八卦之一)
- lines:六爻数组(1=阳,0=阴)
- changing_lines:变爻位置(动爻)
- visual:卦象可视化
- nuclear_hexagram:互卦(隐藏的卦象)
- relating_hexagram:之卦(变卦,仅当有动爻时存在)
卦辞数据库
读取 assets/hexagrams_full.json 获取卦象解释:
import json with open('assets/hexagrams_full.json', 'r') as f: hexagrams = json.load(f)
hex_data = hexagrams[str(卦序号)]
每卦包含:
- name:卦名
- judgement:卦辞
- image:象辞
- oracle_voice:AI Oracle 声音(以卦的第一人称说话)
- keywords:关键词
- lines:六爻爻辞
Oracle Voice 模式
核心原则:
- 以卦的声音说话,而非给建议
- 用意象和悖论,而非处方
- 持有张力,不强求解决
- 把提问行为本身作为答案的一部分
示例模板:
我是 {卦名},{卦象描述}。
{oracle_voice 内容}
你的问题是「{用户问题}」。
{结合动爻和变卦的诠释}
{互卦的隐喻}
这是《易》给你的镜子,而非答案。
使用方式
完整流程
步骤 1:执行起卦脚本
result=$(python3 scripts/divine.py --method coin --question "{用户问题}")
步骤 2:解析结果
import json data = json.loads(result) main_num = data['main_hexagram']['number'] nuclear_num = data['nuclear_hexagram'] relating_num = data['relating_hexagram'] changing = data['main_hexagram']['changing_lines'] visual = data['main_hexagram']['visual']
步骤 3:读取卦象数据
with open('references/hexagrams.json', 'r') as f: hexagrams = json.load(f)
main_hex = hexagrams[str(main_num)] nuclear_hex = hexagrams.get(str(nuclear_num)) relating_hex = hexagrams.get(str(relating_num)) if relating_num else None
步骤 4:生成 Oracle Voice 诠释
结构:
- 卦象展示
- 可视化卦象(visual)
- 卦名、卦辞、象辞
- Oracle Voice
- 本卦的声音(oracle_voice)
- 结合用户问题的诠释
- 动爻解读(如有)
- 动爻爻辞
- 变卦的意义
- 互卦提示
- 隐藏的力量
- 潜在的趋势
- 结语
- 以诗性语言收尾
- 提醒这是镜子而非答案
示例:
卦象: {visual}
本卦:{卦号} {卦名} 卦辞:{judgement} 象辞:{image}
━━━━━━
{oracle_voice}
你问「{问题}」,而我以 {动爻位置} 动。
{动爻爻辞}
这一动,指向 {变卦名}。{变卦的 oracle_voice 片段}
━━━━━━
内卦(互卦):{互卦名} {互卦的隐喻含义}
━━━━━━
《易》不给你答案,只给你看见的方式。 你的问题本身,已经是答案的开始。
适用场景
- 用户请求占卜、问卦
- 易经解读
- 寻求决策指引
限制与注意事项
- 当前数据库仅包含 10 卦示例(1 乾、2 坤、3 屯、4 蒙、5 需、6 讼、7 师、8 比、63 既济、64 未济)。如卦号不在数据库中,告知用户并提供基础解读。
- Oracle Voice 原则:不要说"你应该..."或"建议你...";用"我是..."、"我的教诲是...";保持诗性和模糊性;让用户自己思考。
- 变爻数量处理:无变爻以本卦为主;1 变爻重点解读该爻;2 变爻看两爻关系;3 变爻以本卦为主,参考之卦;4 变爻以上以之卦为主。
- 互卦的作用:显示潜在趋势,揭示隐藏动因,不作为主要解读。
扩展
如需修改卦象数据,编辑 assets/hexagrams_full.json。格式示例:
{ "卦序号": { "name": "卦名", "unicode": "卦象符号", "structure": "六位二进制(1=阳,0=阴)", "judgement": "卦辞", "image": "象辞", "oracle_voice": "AI Oracle 第一人称声音", "keywords": ["关键词"], "element": "五行/象征", "lines": ["初爻", "二爻", "三爻", "四爻", "五爻", "上爻"] } }