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