创建日期: 2026-05-22 更新日期: 2026-05-22 状态: 设计确认,待实现
数字能量学智能体 — 基于数字能量学理论,结合规则引擎与 AI 的综合分析咨询系统。
用户输入(号码/问题)
↓
微信小程序
├── 聊天/分析咨询类 → Dify API → Dify Workflow
│ ├── [Python 节点] 规则引擎计算
│ │ ├── 八星分类匹配
│ │ ├── 五行属性计算
│ │ ├── 吉凶评分
│ │ └── 输出结构化 JSON
│ ├── [LLM 节点] AI 解读
│ │ ├── 注入规则结果作为事实依据
│ │ ├── 知识库 RAG 检索
│ │ └── 生成自然语言报告
│ └── 返回最终结果
│
└── 登录/支付/历史记录 → 轻量后端 API
└── MySQL(用户/记录)
微信小程序 (uni-app) 轻量后端 (Spring Boot)
│ │
├── Dify API (聊天/分析) ├── POST /api/auth/login
│ ├── GET/PUT /api/user/profile
│ Dify Workflow 内部: ├── GET /api/records
│ ┌──────────────────────┐ ├── POST /api/dify/proxy
│ │ Python 节点: 规则引擎 │ └── POST /api/pay/*
│ │ LLM 节点: AI 解读 │
│ └──────────────────────┘
│
└── 轻量后端 API (登录/记录)
| 模块 | 职责 | 说明 |
|---|---|---|
num-server |
Spring Boot 应用(统一模块) | 仅含 common + wechat + api |
num-common |
统一响应体 Result<T>、异常、工具类 |
公共依赖 |
无需独立模块的职责(已移入 Dify):
| 方法 | 路径 | 描述 |
|---|---|---|
| POST | /api/auth/login |
微信登录(code → openId → JWT) |
| POST | /api/auth/refresh |
刷新 Token |
| POST | /api/user/profile |
获取用户信息 |
| POST | /api/user/profile/update |
更新用户信息 |
| POST | /api/records |
查询分析历史(分页) |
| POST | /api/records/detail |
单条记录详情 |
| POST | /api/records/save |
保存分析记录(Dify 回调或小程序主动上报) |
| POST | /api/dify/proxy |
Dify API 代理(保护 API Key 免暴露给小程序) |
| POST | /api/pay/unified-order |
微信支付下单 |
统一返回格式:{ code: int, message: string, data: T }
认证方式:JWT Bearer Token(Authorization Header)
-- 用户表
user
├── id BIGINT PK AUTO_INCREMENT
├── open_id VARCHAR(64) UNIQUE -- 微信 openId
├── nick_name VARCHAR(64)
├── avatar_url VARCHAR(512)
└── create_time DATETIME
-- 分析记录表
analysis_record
├── id BIGINT PK AUTO_INCREMENT
├── user_id BIGINT FK → user
├── type VARCHAR(32) -- NUMBER / LIFE_CHART / CONSULT
├── input TEXT -- 原始输入(号码/生日/问题)
├── dify_result JSON -- Dify 返回的完整结果
├── summary VARCHAR(256) -- 简要结论(用于列表展示)
└── create_time DATETIME
输入参数: { phoneNumber: "138xxxx" }
↓
[Python 节点: number_engine]
├── 输入: phoneNumber
├── 逻辑:
│ 1. 拆分 2 位数字组合 ["13","38","8x","xx","xx"]
│ 2. 查八星对照表 → 每组合的 star/element/score
│ 3. 聚合: 评分总和、五行分布、吉凶结论
└── 输出: { parts: [...], overall_score: 75, element_balance: {...}, conclusion: "吉" }
↓
[LLM 节点: generate_interpretation]
├── System Prompt: "你是一位数字能量学专家。以下是规则引擎计算的号码分析结果,请基于此为用户生成详细的号码解读报告..."
├── 注入变量: {{node.number_engine.output}}
├── 知识库: RAG 检索相关八星含义、案例参考
└── 输出: 自然语言分析报告
↓
输出: { engine_result: {...}, ai_interpretation: "..." }
输入参数: { query: "...", history: [...], context_phone: "" }
↓
[Python 节点: context_parser]
├── 检查 query 中是否包含号码/数字
├── 如果有 → 调 number_engine 逻辑(复用函数)
└── 输出: { needs_engine: true/false, engine_result?: {...} }
↓
[LLM 节点: chat]
├── 注入规则结果(如有)
├── 带历史上下文的对话
└── 输出: AI 回复
输出格式固定一致:始终输出相同结构的 JSON,方便下游 LLM 节点消费
# 示例骨架 — Dify Python 节点代码
STAR_MAP = {
"13": {"star": "天医", "element": "木", "score": 90, "description": "主财富、姻缘"},
"68": {"star": "天医", "element": "木", "score": 85, "description": "主财富、贵人"},
"14": {"star": "生气", "element": "火", "score": 80, "description": "主贵人、人脉"},
# ... 全部 81 组对照
}
def main(phone_number: str) -> dict:
parts = []
for i in range(len(phone_number) - 1):
pair = phone_number[i:i+2]
info = STAR_MAP.get(pair, {"star": "未知", "element": "未知", "score": 0})
parts.append({"digits": pair, **info})
scores = [p["score"] for p in parts if p["score"] > 0]
overall = sum(scores) / len(scores) if scores else 0
conclusion = "大吉" if overall >= 80 else "吉" if overall >= 60 else "凶"
return {
"parts": parts,
"overall_score": overall,
"conclusion": conclusion,
"element_balance": {...}
}
pages/
├── index/ # 首页(功能入口 + 号码快速输入)
├── analysis/ # 号码分析结果展示
├── life-chart/ # 能量盘展示
├── chat/ # AI 对话(直连 Dify 对话 API)
├── records/ # 历史记录列表
├── record-detail/ # 单条记录详情
└── mine/ # 个人中心(登录/设置)
分析类请求:
小程序 → Dify API (Workflow) → Python规则引擎 + LLM解读 → 返回结果
↓
小程序收到结果 → 显示 → 同步保存到后端API
聊天类请求:
小程序 → Dify API (对话应用) ↔ 流式对话
登录/记录:
小程序 → 后端API → MySQL
num/
├── AGENTS.md
├── num-server/ # Spring Boot 轻量后端
│ ├── pom.xml
│ └── src/main/java/com/num/
│ ├── NumApplication.java
│ ├── controller/ # auth, user, record, dify proxy, pay
│ ├── service/
│ ├── entity/
│ ├── repository/
│ ├── config/ # JWT, 微信, Dify 配置
│ └── common/
│ ├── Result.java
│ └── GlobalExceptionHandler.java
├── dify/ # Dify 工作流设计文档
│ ├── workflows/
│ │ ├── number-analysis.md # 号码分析工作流
│ │ ├── ai-consult.md # AI 对话工作流
│ │ └── python-engine/ # Python 节点代码
│ │ ├── number_engine.py # 规则引擎主逻辑
│ │ ├── star_map.py # 八星对照表
│ │ └── elements.py # 五行计算
│ └── knowledge-base/ # 知识库资料清单
│ └── sources.md
├── client/ # uni-app 微信小程序
│ ├── pages/
│ ├── api/ # Dify API + 后端API 封装
│ ├── App.vue
│ └── manifest.json
└── docs/
└── superpowers/specs/