基于《周易》的占卜系统。提供传统起卦方法和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 内容}
你的问题是「{用户问题}」。
{结合动爻和变卦的诠释}
{互卦的隐喻}
这是《易》给你的镜子,而非答案。
result=$(python3 scripts/divine.py --method coin --question "{用户问题}")
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']
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
结构:
visual)oracle_voice)示例:
卦象:
{visual}
本卦:{卦号} {卦名}
卦辞:{judgement}
象辞:{image}
━━━━━━
{oracle_voice}
你问「{问题}」,而我以 {动爻位置} 动。
{动爻爻辞}
这一动,指向 {变卦名}。{变卦的oracle_voice片段}
━━━━━━
内卦(互卦):{互卦名}
{互卦的隐喻含义}
━━━━━━
《易》不给你答案,只给你看见的方式。
你的问题本身,已经是答案的开始。
如需修改卦象数据,编辑 assets/hexagrams_full.json。格式示例:
{
"卦序号": {
"name": "卦名",
"unicode": "卦象符号",
"structure": "六位二进制(1=阳,0=阴)",
"judgement": "卦辞",
"image": "象辞",
"oracle_voice": "AI Oracle第一人称声音",
"keywords": ["关键词"],
"element": "五行/象征",
"lines": ["初爻", "二爻", "三爻", "四爻", "五爻", "上爻"]
}
}
共 1 个版本