Get started
AstroStellar(天星紫府)

AstroStellar(天星紫府)

基于紫微斗数古籍的智能排盘与解盘助手,支持十四主星、四化、十二宫、大限流年全盘解读
#Jogos#Consultoria#Análise
Avaliação
São necessárias mais avaliações
Vendas
0
Como usar
Baixar

🌟 AstroStellar(天星紫府)— 紫微斗数智能 Skill

满天星曜,尽布盘中。天星紫府,观心见命。

AstroStellar 是一款基于紫微斗数古籍的智能排盘与解盘系统,以 OpenClaw Skill + MCP Server 双重形态提供服务。用户只需像聊天一样逐步提供出生信息,即可自动排出完整命盘,并获得基于古籍知识库的专业解读。


✨ 它能做什么

功能 说明
🧮 智能排盘 输入生辰 → 自动计算完整命盘(十四主星、四化、十二宫、大限、流年)
📚 古籍查书 ChromaDB 语义检索,从 18 份古籍 + 213 页《紫微斗数全书》中查找相关解读
🔮 整体解盘 生成六大板块结构化报告:命盘概览 → 命宫总论 → 十二宫简析 → 四化点睛 → 格局判断 → 流年提点
💬 专项问答 财运、感情、事业、健康……随你问
🌸 善解人意 一次只问一个问题,记不清时辰也不怕,像朋友聊天一样自然

🏗️ 原理

整体架构

┌──────────────────────────────────────────────────┐
│                     👤 用户                       │
│         飞书 / 微信 / Telegram 等渠道              │
└────────────────────┬─────────────────────────────┘
                     │ 自然语言对话
                     ▼
┌──────────────────────────────────────────────────┐
│               🦞 OpenClaw 平台                     │
│                                                    │
│   ┌──────────────────────────────────────┐        │
│   │            SKILL.md                   │        │
│   │  · 10 步定盘对话状态机                │        │
│   │  · 善解人意的人物设定                 │        │
│   │  · MCP 协议工具调度                   │        │
│   └──────────────┬───────────────────────┘        │
│                  │ MCP Protocol                    │
└──────────────────┼────────────────────────────────┘
                   ▼
┌──────────────────────────────────────────────────┐
│              🔧 MCP Server (Python)                │
│                                                    │
│   ┌────────────┐ ┌──────────┐ ┌────────────────┐ │
│   │ 排盘引擎    │ │ 解盘引擎  │ │ 知识库引擎      │ │
│   │ chart.py   │ │interp.py │ │ knowledge.py   │ │
│   │            │ │          │ │                │ │
│   │ 日历转换    │ │ 星曜解读  │ │ ChromaDB       │ │
│   │ 四柱推算    │ │ 宫位解读  │ │ 语义检索       │ │
│   │ 五行局      │ │ 格局检测  │ │ 18 MD + 1 PDF │ │
│   │ 安命宫      │ │ 综合解盘  │ │                │ │
│   │ 安十四主星  │ │ 专项问答  │ │                │ │
│   │ 安四化      │ │          │ │                │ │
│   │ 大限/流年   │ │          │ │                │ │
│   └────────────┘ └──────────┘ └────────────────┘ │
└──────────────────────────────────────────────────┘

排盘算法

排盘核心基于太阳黄经天文算法,独立计算 24 节气交节时刻,不依赖任何查表数据:

  1. 日历转换(lunar_calendar.py):lunardate 库负责公历⇄农历互转,四柱推算使用干支纪日基点(1900-01-01 = 甲戌日),按距基点天数推导日柱
  2. 安命宫/身宫(chart.py):寅起正月,按生月顺逆数,再按生时顺逆数
  3. 安十四主星:根据五行局数和农历日定紫微位置,紫微系六星逆排,天府系八星顺排
  4. 安四化:十干四化表全覆盖
  5. 排大限/流年:阳男阴女顺行,阴男阳女逆行,局数起运

知识库

  • 数据源:18 份 Markdown 格式紫微斗数古籍 + 213 页《紫微斗数全书》PDF(南北山人版)
  • 检索方式:ChromaDB 向量数据库 + sentence-transformers 多语言嵌入模型
  • 持久化:首次加载后存入 data/chroma_db/,后续直接读取,无需重复构建

解盘引擎

采用「数据 + 知识库 + 结构化模板」三合一方式:

  1. 从 stars.json 获取十四主星结构化属性(五行、阴阳、庙旺、落陷、各宫解读)
  2. 从 ChromaDB 语义检索相关古籍段落
  3. 按六大板块模板组装为完整报告
  4. 专项问答通过 30+ 关键词智能路由到相关宫位

📦 下载位置

GitHub 仓库: https://github.com/zhaopeng309/AstroStellar

git clone https://github.com/zhaopeng309/AstroStellar.git
cd AstroStellar

🚀 使用方法

第一步:克隆项目

git clone https://github.com/zhaopeng309/AstroStellar.git
cd AstroStellar

第二步:创建虚拟环境

python3 -m venv venv
source venv/bin/activate

第三步:安装依赖

pip install -r requirements.txt

⚠️ 首次安装会下载 sentence-transformers 嵌入模型(约 500MB),请确保网络畅通且磁盘空间充足。

第四步:(可选)初始化知识库

知识库会在首次调用 astrostellar_search_knowledge 时自动构建。也可以手动初始化:

source venv/bin/activate
python -c "from src.knowledge import init_knowledge_base; init_knowledge_base('references', 'data/chroma_db')"

初始化完成后,ChromaDB 数据会持久化到 data/chroma_db/,后续启动无需重复构建。

第五步:启动 MCP Server

source venv/bin/activate
python src/server.py

MCP Server 使用 stdio 传输协议,由 OpenClaw 平台自动调用,无需手动暴露端口。

第六步:在 OpenClaw 中使用

将 SKILL.md 软连接到 OpenClaw 的 skills 目录,或直接通过 OpenClaw 的 Skill 管理加载。

对话示例

用户:帮我排盘
天星:🌸 你好呀~我是天星,可以帮你排紫微斗数命盘……
      先从最简单的问题开始:你是哪一年出生的?(比如 1990)

用户:1990
天星:好的,1990 年,记下了 ✍️
      接下来:你的生日是几月几号?
      📝 已收集:1990 年

用户:6月15日
天星:知道了,6 月 15 日 ✍️
      这个日期是公历还是农历?
      📝 已收集:1990 年 6 月 15 日

……(继续 10 步定盘)……

天星:🌸 你的紫微斗数命盘
      ━━━━━━ 四柱 ━━━━━━
      年柱庚午 月柱壬午 日柱辛亥

用户:我的财运怎么样?
天星:关于财运——
      财帛宫坐申,宫内武曲天府,逢化禄则财运亨通……

📂 项目结构

AstroStellar/
├── SKILL.md                  # OpenClaw 技能定义(对话流 + 人物设定)
├── skill-card.md             # 技能元数据
├── README.md                 # 本文件
├── requirements.txt          # Python 依赖
│
├── src/                      # 核心引擎
│   ├── lunar_calendar.py      # Block 1: 日历 + 四柱 + 五行局 + 节气计算
│   ├── chart.py               # Block 2: 排盘核心(命宫→主星→四化→大限→流年)
│   ├── knowledge.py           # Block 3a: 知识库(ChromaDB 语义检索)
│   ├── interpreter.py         # Block 3b: 解盘引擎
│   └── server.py              # Block 4: MCP Server(3 个 tool)
│
├── data/                     # 数据
│   ├── stars.json            # 十四主星结构化属性
│   └── chroma_db/            # ChromaDB 持久化知识库
│
├── references/               # 紫微斗数参考书籍
│   └── 紫微斗数全书.pdf       #古籍全书
│
└── tests/                    # 自动化测试

🧪 测试

cd AstroStellar
source venv/bin/activate
python -m pytest tests/ -v

当前测试覆盖:225+ 用例,全部通过。

💡 知识库测试(test_knowledge.py)涉及 embedding 模型,若内存不足可跳过:python -m pytest tests/ -v --ignore=tests/test_knowledge.py


📚 技术栈

组件 技术 用途
历法 lunardate 公历⇄农历互转(1900-2100)
节气 纯 Python 太阳黄经算法 立春/惊蛰等 12 节交节时间
排盘 纯 Python 实现 命宫、主星、四化、大限、流年
知识库 ChromaDB + sentence-transformers 古籍语义检索
MCP mcp (FastMCP) 标准 Tool 接口
测试 pytest 单元 + 集成

⚠️ 注意事项

  • 年份范围:支持 1900-2100 年(lunardate 库限制)
  • ChromaDB 初始化:首次构建知识库需下载 embedding 模型(~500MB),完成后持久化无需重复
  • MCP 协议:Server 使用 stdio 传输,由 OpenClaw 自动管理生命周期
  • 虚拟环境:始终在项目 venv 中运行,不要使用系统 Python

🌟 天星紫府 — 满天星曜,尽布盘中