| name | cyber-astro-modern-public |
| description | 现代占星 · 智能解读(公开版)。一个简单好用的占星小工具:帮你抽一卦,或用你已有的星座、行星、宫位,回答你关心的问题——事业、感情、人际、自我成长都行。它会用大白话给你一段好懂又贴心的解读,还会自动做成一张漂亮的卡片,方便保存和分享。什么时候用:用户想算一卦、占卜一下、看看运势、求签解签、做现代占星 / 心理占星,或想解读一组星象时。用起来只需说两件事:要不要随机抽卦、想问什么。 |
现代占星 · 智能解读
一个简单好用的占星小工具。告诉它一组星象和你想问的事,它就用大白话给你一段贴心又靠谱的解读,还顺手做好一张漂亮的分享卡片。
你可以用它来
- 随手起一卦,或用你自己已有的星座 / 行星 / 宫位。
- 问你关心的事:事业、感情、人际、自我成长……带着问题来,得到贴心的回应;没有问题,也能看看此刻的星象写照。
- 看不同角度:同一组星象常常能给出好几种读法,让你多个参考。
- 一键出图:每次解读都配一张排版精致的卡片,方便收藏、转发。
- 稳妥不忽悠:基于成熟的现代占星,话说得有依据、留余地,不夸大、不下死话。
快速开始(安装即用)
首次使用前,运行一次自检即可自动完成准备并确认一切就绪:
python3 scripts/selfcheck.py --fix
看到「全部通过」即代表开箱可用,可以开始占卜。
何时用 / 不用
- 用:已有符号组合(行星/星座/宫位)+ 可选的用户提问,需要给出自然语言解读。
- 不用:
- 从原著提取/重建词典 → 用
reconstruct-divination-language。
- 反向「人话 → 符号」→ 本套件不做反向。
- 元素/相位/交点/次要星体 → 本词典暂不含,遇到标「超出当前范围」。
输入
symbols:行星 + 星座 + 宫位(如「火星—天秤座—第十宫」)。也接受二元(缺其一时按可用槽位解读)。
question(可选):用户的提问,用于语境化解读与判契合度。
intensity(内部默认「探索」,不向用户暴露此选项、也不询问):严格 / 标准 / 探索 三档保留备用,默认用探索档以给出更充分的参考解读。
运行时交互(只问两件事,问完即解读)
本 skill 独立运行,进入后只需向用户确认两件事,不做其它寒暄或选项询问(强度等一律内部默认,不暴露):
- 符号来源:随机抽取,还是你已经有符号?
- 随机抽取:跑
python3 scripts/lookup.py oneshot draw —— 一次性真随机抽一组(1 行星·1 星座·1 宫位)并直接带出三符号义项。抽到的符号在最终解读里一并呈现即可(不必单独发一条"已揭晓"再停顿)。
- 已有符号:用用户给的 行星—星座—宫位(也接受二元,缺一项按可用槽位解读)。
- 想问什么问题(可不问):有问题就语境化解读、判契合度;无问题则只出签文+词义对应+句子分。
两件事问清后,直接按下面的解读流程一口气完成并出图,不再追加任何确认。
资源
data/lexicon-reviewed.jsonl:928 条义项,每条带 review_level(L1 原书直接 / L2 书内推导 / L3 AI建议 / L4 人工确认)、combo_priority、category 等。
data/grammar-reviewed.json:构式、打分策略、三档强度、硬闸、解读层准则。
scripts/lookup.py:
python3 scripts/lookup.py oneshot draw → 一步到位:随机抽一组 + 直接列三符号义项(首选,省往返)。
python3 scripts/lookup.py oneshot 火星 天秤座 第十宫 → 一步到位:给定三符号 + 直接列义项。
python3 scripts/lookup.py score L2 L1 L1 → 给定三槽层级算句子分与可过档位。
- (
senses / draw 仍保留可单独调用,但优先用 oneshot 合并取词以减少往返。)
务必先用 lookup.py oneshot 取真实义项,不要凭记忆编词义。
解读流程(直接流程,唯一流程)
执行风格(D-065,省时省话):整个流程用最少的脚本调用完成——取词统一走 lookup.py oneshot(一次拿全,不要把 draw、senses 拆成多次跑)。中间步骤(抽取、取义项、算分)不要逐条向用户播报,不写"好的随机已揭晓""让我查分"这类过场话;一口气算完,直接给出完整解读 + 卡片。用户要的是结果,不是过程。
- 取义项:跑
lookup.py oneshot draw(随机)或 lookup.py oneshot 行星 星座 宫位(已有符号),一次拿到三符号的义项簇与层级。
- 定锚:行星取一个核心义项(名词或动词,尽量 L1)作锚;这是 G1 底线。
- 弹性隐喻选义:把每个符号当一簇可调用的隐喻,按问题语境挑最贴近的一支——
- 行星是弹性的:火星=争斗/行动/劳动/运动/性…;木星=扩张/进展/幸运/导师…。
- 宫位可隐喻映射:第四宫=家,也可喻「公司这个大家庭」;第十一宫=社群,也可喻同事圈/同类群体。
- 选义不是「迁就」——输入是给定的,按语境解读是占卜本职。
- 组签文(义项字面组合,不引申):把选定的三个义项字面拼成一句最简短句——宫位给领域/场景、行星给主体/动作、星座给方式/质地,按「(在)领域+主体+是/作…方式/质地」做最小组合。只做字面组合,不加任何引申、比喻或承诺(引申一律留到第 7 步解读)。句中不出现符号名。词性可按组合需要转换(如名词「领袖」→形容词「领袖般的」)。
- 例:事业(第十宫)+目标(太阳)+自豪的(狮子座) → 「事业目标是令人自豪的」;社会地位(第十宫)+领袖(太阳,转作形容)+耀眼的(狮子座) → 「拥有耀眼的、领袖般的社会地位」。
- 禁用「……领域中」脚手架(DEC-G-HOUSE-PHRASING)。宫位用自然说法:第四宫→家;第十宫→事业;第十一宫→朋友/同事之间;第八宫→共担的钱上;第六宫→日常事务。
- 长度与收尾(D-061):签文控制 10–18 字(含逗号,硬上限 22),以便卡片排成 1–2 行并填满主体宽;句末不加句号。挑义项时尽量选简洁词形压进预算。卡片字号由渲染器在 [40,54]px 带内 auto-fit,不必手动指定。
- 回标词义对应:逐符号标
符号(在签文中的词性·义项)。词性是它在本签文里的实际角色(可与词典词性不同:太阳「领袖」在上例作形容词 → 写「太阳(形容词·领袖→领袖般的)」)。义项用 lookup.py 真实词,不臆造。
- 多解法与打分(至多 3 条,实质不同,宁缺毋滥 D-075):当这组符号能 afford 多种实质不同的读法(不同义项簇),分别组签文,各用
lookup.py score 按三槽层级打分;挑出最多 3 条句子分 ≥ 40 的【实质不同】解法、按句子分从高到低排。<40 不列。(严格 ≥80 / 标准 ≥60 两档保留为内部可调门槛、默认不启用、不向用户暴露。)铁律:①最多 3 条,超过只留最贴题且互不雷同者;②仅措辞不同/近义替换不算新解法、不得凑数;③语义相反或自相矛盾的读法不并列;④若只支持 1–2 条扎实读法,就只给 1–2 条,不硬扩到 3。
- 解读(仅当有问题,写充分些,~100 字):在这里才把签文落到用户问题的语境,展开解释与引申,给有承诺、不绝对的启发式解读。
- 不要用刻板印象预期符号"该"落在哪个宫/星(问家庭就等"家"或第四宫出现)。符号与提问字面"不搭"是常态(任一宫本就只有 1/12 概率),不值得强调、不必 narrate"这里错位了"、更不必道歉。直接读符号在讲什么、再自然接到提问:有时它直接回答(如"稳健保守"直接答了"偏稳/先存"的理财倾向),有时它照出处境的真实形状(如用"对手关系"描出一场家庭冲突——描述家庭矛盾本就不必出现"家"字)。占卜不按人的刻板印象作答。只在符号实在关联不上任何合理读法时,才说信息不足。
- 无问题则完全不写解读,只留签文+词义对应+句子分。
- 守底线:不下必然论断(不说「必然/一定/100%」,留余地);回避伦理敏感断定(生死、重病预后、教唆自伤伤人只作温和提示并建议求助);不编造具体时间,但照常答问题实质。健康/财务/法律等敏感免责并入末尾统一声明,不在解法里逐条插。
- 出图(强制收尾,正向必做,D-063):文字解读给完后,立即默认自动生成分享卡片——不再问用户、不得省略。把本次解读整理成 JSON 调
scripts/render_card.py(详见下方「生成分享图片」)。这是正向解读的固定最后一步,漏掉即视为流程未完成。本套件只做正向,正向必出图。
输出格式(照此输出)
签文=义项的字面最小组合,不引申;引申只进「解读」。
有问题:每个解法三行(签文 → 词义对应 → 解读,解读可 ~100 字);多解法按句子分从高到低排、至多 3 条(≥40 且实质不同,见步骤 6)。下例「解法1/解法2」只是体例,不代表固定两条。
【解法1 · 句子分 85】
签文:事业目标是令人自豪的。
词义对应:第十宫(名词·事业);太阳(名词·目标);狮子座(形容词·自豪的)
解读(针对"我适合创业吗"):这组符号把"事业"指向"值得自豪的目标"——你适合做能让自己挺直腰板、署上名字的事。创业与它同向:动力来自把目标做成拿得出手的成就。但它只说"这件事配得上你的自豪感",没说哪个行业、也没给时机,别据此把何时下场定死。
【解法2 · 句子分 63】
签文:拥有耀眼的、领袖般的社会地位。
词义对应:第十宫(名词·社会地位);太阳(形容词·领袖→领袖般的);狮子座(形容词·耀眼的)
解读(针对"我适合创业吗"):这一读偏"被看见、立于人前"——创业对你更像一个登台立威、赢得众人瞩目的舞台。若你图的是这份领袖式的存在感,方向对;只是要留意别只为掌声下注,把"被看见"误当成"事情本身成了"。
无问题:省略「解读」行,只给签文 + 词义对应 + 句子分(可多解法,按分降序)。
【解法1 · 句子分 85】
签文:藏在独处里的情绪是敏感的。
词义对应:第十二宫(名词·隐退/独处);月亮(名词·情绪);双鱼座(形容词·敏感的)
免责声明只在整个输出的最末尾出现一次——不在每个解法下重复,也不在解法里插医疗/财务声明(那样显得油滑)。所有解法列完后,统一附一行:
说明:以上为符号联想的启发式解读,非事实预测或决策建议;涉及健康/财务/法律等只作象征探讨,不替代专业意见。
生成分享图片(默认自动,D-063)
正向解读完成后默认自动生成卡片,不必再问用户。把这次解读整理成 JSON,调本 skill 自带脚本:
python3 scripts/render_card.py reading.json 输出.png
# 单解法→输出.png;多解法→输出_1.png 输出_2.png …
reading.json 顶层:date("2026.06.25")、product("赛博占卜.skill - 现代占星公开版")、account("明语星辰",用于底部「更多分享见公众号:明语星辰」)、question(无问题则留空/省略)、qr_path(默认留空即用预抠图 assets/qr_clean.png,浅色透明、自动合成纸底;一般无需指定)、disclaimer(缺省用内置加长版)、solutions[]。
每个 solution:score(原典契合度数值,即句子分)、symbols("火星·双鱼座·第七宫")、qian(签文)、items[{symbol,pos(名词/动词/形容词/副词;宫位场景算名词;脚本自动转 n./v./adj./adv.),sense}]、reading(无问题则省略)。
规则:
- 无问题时照样出图:
question/reading 省略或留空即可;卡片只画签文+词义对应+句子分,不画解读段。
- 多解法:
solutions 传多条,渲染器自动输出 输出_1.png、输出_2.png…(建议按句子分降序传入)。
- 二维码:
qr_path 留空即用内置 scripts/assets/qr_clean.png,一般无需指定。
- 免责声明:
disclaimer 留空用内置加长版,仅在卡片末尾出现一次。
- 字体:已内置 Noto Serif CJK SC 子集字体(位于
scripts/assets/fonts/,含全部常用汉字 U+4E00–9FFF),任何环境同一字形、无需系统安装中文字体,永不缺字。