This commit is contained in:
Kevin Wong
2026-03-11 14:08:24 +08:00
parent 531b4b2302
commit 1db55865c0
12 changed files with 7647 additions and 156 deletions

28
.env Normal file
View File

@@ -0,0 +1,28 @@
# HTTP 监听端口
PORT=4173
# suanming API 基础路径
SUANMING_API_BASE=http://localhost:3001/api
SUANMING_EMAIL=lamnickdavid@gmail.com
SUANMING_PASSWORD=1988324
SUANMING_TIMEOUT_MS=12000
# DeepSeek API 配置
DEEPSEEK_API_KEY=sk-8a121704a9bc4ec6a5ab0ae16e0bc0ba
DEEPSEEK_API_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_TIMEOUT_MS=20000
# Documents 知识库配置
KNOWLEDGE_ENABLED=true
DOCUMENTS_DIR=./Documents
KNOWLEDGE_TOP_K=6
KNOWLEDGE_CHUNK_SIZE=1200
KNOWLEDGE_MAX_CONTEXT_CHARS=7000
RAW_SUANMING_PROMPT_LIMIT=12000
# 安全与返回控制
INCLUDE_RAW_SUANMING=false
CORS_ALLOWED_ORIGINS=https://suanming.hbyrkj.top,http://localhost:4173
KNOWLEDGE_RELOAD_AUTH_ENABLED=true
KNOWLEDGE_ADMIN_TOKEN=f1fc7d215f0452c56a35eb571c266caf97831d10c7709f0dfb5f4302bfd1128a

138
.gitignore vendored
View File

@@ -1,138 +0,0 @@
# ---> Node
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# vitepress build output
**/.vitepress/dist
# vitepress cache directory
**/.vitepress/cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

315
DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,315 @@
# Suanming-Web 部署流程(含 Documents 知识库)
本文档用于记录你当前这套服务的标准部署步骤:
- `suanming-api`依赖服务PM2 进程名 `suanming-api`
- `suanming-web`网关与前端PM2 进程名 `suanming-web`
- `Documents/`:知识库文档目录(长上下文检索)
## 当前知识库实现说明
- 当前实现是**文档分片 + 关键词打分检索**(轻量 RAG不是向量库。
- 当前没有使用 Embedding、FAISS、Milvus、pgvector 等向量索引组件。
- 请求流程:`Documents/*.md` 启动加载 -> 内存分片缓存 -> 按问题检索 Top-K -> 注入 DeepSeek Prompt。
- 如需升级为向量库,需要新增“离线向量化 + 向量检索服务/存储”流程(可在后续版本扩展)。
---
## 1. 环境准备
确保服务器已安装:
- Node.js 18+
- npm
- PM2
可选检查:
```bash
node -v
npm -v
pm2 -v
```
---
## 2. 启动/确认 `suanming-api`
`suanming-web` 依赖 `suanming-api`,需要先保证 API 正常运行。
```bash
cd /home/rongye/ProgramFiles/suanming
npm install
pm2 start server.js --name suanming-api --update-env
```
如果已经存在该进程,使用重启:
```bash
pm2 restart suanming-api --update-env
```
---
## 3. 部署 `suanming-web`
### 3.1 安装依赖
```bash
cd /home/rongye/ProgramFiles/Suanming-Web
npm install
```
### 3.2 配置 `.env`
请确保以下变量已配置(示例):
```env
# HTTP
PORT=4173
# suanming-api
SUANMING_API_BASE=http://localhost:3001/api
SUANMING_EMAIL=your-email@example.com
SUANMING_PASSWORD=your-password
SUANMING_TIMEOUT_MS=12000
# DeepSeek
DEEPSEEK_API_KEY=your-deepseek-api-key
DEEPSEEK_API_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_TIMEOUT_MS=20000
# Knowledge Base
KNOWLEDGE_ENABLED=true
DOCUMENTS_DIR=./Documents
KNOWLEDGE_TOP_K=6
KNOWLEDGE_CHUNK_SIZE=1200
KNOWLEDGE_MAX_CONTEXT_CHARS=7000
# 限制原始命盘数据注入长度
RAW_SUANMING_PROMPT_LIMIT=12000
# 是否在响应中返回 raw_suanming生产建议 false
INCLUDE_RAW_SUANMING=false
# CORS 白名单(逗号分隔;留空=仅同源可用,跨域会被浏览器拦截)
CORS_ALLOWED_ORIGINS=https://suanming.hbyrkj.top,http://localhost:4173
# 知识库重载接口鉴权
KNOWLEDGE_RELOAD_AUTH_ENABLED=true
KNOWLEDGE_ADMIN_TOKEN=replace-with-a-long-random-token
```
建议使用随机 Token 生成命令:
```bash
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
```
### 3.3 准备 `Documents/` 目录
首次部署请确认知识库目录存在且有 Markdown 文档:
```bash
cd /home/rongye/ProgramFiles/Suanming-Web
ls Documents
```
至少应包含若干 `.md` 文件,否则知识库无法命中。
---
## 4. 启动 PM2 进程
首次启动:
```bash
cd /home/rongye/ProgramFiles/Suanming-Web
pm2 start server.js --name suanming-web --update-env
pm2 save
```
后续更新代码后重启:
```bash
cd /home/rongye/ProgramFiles/Suanming-Web
pm2 restart suanming-web --update-env
pm2 save
```
---
## 5. 部署后验证
### 5.1 进程状态
```bash
pm2 list
```
应看到:
- `suanming-api` online
- `suanming-web` online
### 5.2 健康检查
```bash
curl http://127.0.0.1:4173/api/health
```
### 5.3 知识库状态检查
```bash
curl http://127.0.0.1:4173/api/knowledge/status
```
成功示例关键字段:
- `enabled: true`
- `docs_count > 0`
- `chunks_count > 0`
- `last_error: null`
### 5.4 功能链路检查fortune + 知识库)
```bash
curl -s http://127.0.0.1:4173/api/fortune \
-H 'Content-Type: application/json' \
-d '{"type":"bazi","name":"张三","birth_date":"1990-01-01","birth_time":"12:00","gender":"male","question":"近期事业和财运如何"}'
```
返回中可关注:
- `data.ai_text`
- `data.meta.knowledge.source_count`(大于 0 表示命中知识库)
### 5.5 启动日志检查(建议)
```bash
pm2 logs suanming-web --lines 120
```
重点观察以下日志关键词:
- `[tokenManager] Token 获取成功`
- `[knowledge] loaded ... docs, ... chunks`
如果出现 `[knowledge] startup preload failed`,服务仍会启动,但知识库不可用,需按第 8 节排查。
---
## 6. 更新 `Documents/` 知识库文档
当你新增或修改 `Documents/*.md` 后,无需重启 PM2直接热重载
```bash
export KNOWLEDGE_ADMIN_TOKEN=$(grep '^KNOWLEDGE_ADMIN_TOKEN=' .env | cut -d= -f2)
curl -X POST http://127.0.0.1:4173/api/knowledge/reload \
-H "X-Knowledge-Token: ${KNOWLEDGE_ADMIN_TOKEN}"
```
然后再次检查:
```bash
curl http://127.0.0.1:4173/api/knowledge/status
```
---
## 7. 常用运维命令
```bash
# 查看日志
pm2 logs suanming-web --lines 200
pm2 logs suanming-api --lines 200
# 重启单个进程
pm2 restart suanming-web --update-env
pm2 restart suanming-api --update-env
# 开机自启(仅首次配置需要)
pm2 startup
pm2 save
```
---
## 8. 常见问题
### Q1: `/api/knowledge/status` 返回加载失败
检查:
- `DOCUMENTS_DIR` 路径是否正确
- `Documents/` 目录是否存在且有 `.md` 文件
- 文件编码是否为 UTF-8
### Q2: `source_count` 一直是 0
可能原因:
- 问题太短或与文档内容相关性低
- `KNOWLEDGE_TOP_K` 太小
- `KNOWLEDGE_MAX_CONTEXT_CHARS` 太小导致截断
可先提高:
- `KNOWLEDGE_TOP_K=8`
- `KNOWLEDGE_MAX_CONTEXT_CHARS=10000`
然后执行:
```bash
pm2 restart suanming-web --update-env
```
### Q3: 返回 `UNAUTHORIZED` 或 suanming 调用失败
检查:
- `.env``SUANMING_EMAIL` / `SUANMING_PASSWORD` 是否正确
- `SUANMING_API_BASE` 是否指向正确地址
- `suanming-api` 进程是否 online
修复后执行:
```bash
pm2 restart suanming-api --update-env
pm2 restart suanming-web --update-env
```
### Q4: DeepSeek 调用失败
检查:
- `DEEPSEEK_API_KEY` 是否有效
- 服务器是否可访问 `https://api.deepseek.com`
- `DEEPSEEK_MODEL` 是否设置为可用模型(如 `deepseek-chat`
### Q5: `docs_count` 为 0
检查:
- `DOCUMENTS_DIR` 是否正确(支持相对路径,基于 `Suanming-Web` 目录解析)
- 目录中是否为 `.md` 文件
- 文件权限是否允许 `suanming-web` 进程读取
### Q6: `POST /api/knowledge/reload` 返回 401/503
检查:
- 是否在请求头传入 `X-Knowledge-Token`
- `.env``KNOWLEDGE_ADMIN_TOKEN` 是否与请求值一致
-`KNOWLEDGE_RELOAD_AUTH_ENABLED=true` 且未配置 token会返回 503需先补齐 token 并重启)
---
## 9. 安全建议
- 不要将真实 `.env` 提交到仓库。
- 如密钥已暴露,请立即轮换:
- `DEEPSEEK_API_KEY`
- `SUANMING_PASSWORD`
- 建议生产环境将 `INCLUDE_RAW_SUANMING=false`,减少原始命盘数据外露风险。

View File

@@ -0,0 +1,489 @@
# 十二星座运势解析与开运指南
## 第一部分:十二星座核心档案
在深入探索每个星座的年度密语之前,了解其最核心的构成要素至关重要。如同解读一份精密的地图前需要先熟悉图例,这张速查表将为你揭示十二星座最根本的“占星DNA”。它凝聚了每个星座的能量属性,包括其守护星、元素、模式与阴阳性,这些是理解其性格、行为模式及与其他星座互动关系的基础。
### 12星座基本资料速查表
| 星座(Zodiac) | 日期(Dates) | 守护星(Ruling Planet) | 元素(Element) | 模式(Mode) | 阴阳性 (Polarity) |
| 白羊座(Aries) | 3/21-4/19 | 火星(Mars) | 火(Fire) | 本位(Cardinal) | 阳性(Yang) |
| 金牛座 (Taurus) | 4/20-5/20 | 金星(Venus) | 土(Earth) | 固定(Fixed) | 阴性(Yin) |
| 双子座 (Gemini) | 5/21-6/21 | 水星(Mercury) | 风(Air) | 变动(Mutable) | 阳性(Yang) |
| 巨蟹座 (Cancer) | 6/22-7/22 | 月亮(Moon) | 水(Water) | 本位(Cardinal) | 阴性(Yin) |
| 狮子座(Leo) | 7/23-8/22 | 太阳(Sun) | 火(Fire) | 固定(Fixed) | 阳性(Yang) |
| 处女座(Virgo) | 8/23-9/22 | 水星(Mercury) | 土(Earth) | 变动(Mutable) | 阴性(Yin) |
| 天秤座(Libra) | 9/23-10/23 | 金星(Venus) | 风(Air) | 本位(Cardinal) | 阳性(Yang) |
| 天蝎座 (Scorpio) | 10/24-11/22 | 冥王星(Pluto), 火星(Mars) | 水(Water) | 固定(Fixed) | 阴性(Yin) |
| 射手座 (Sagittarius) | 11/23-12/21 | 木星(Jupiter) | 火(Fire) | 变动(Mutable) | 阳性(Yang) |
| 摩羯座 (Capricorn) | 12/22-1/19 | 土星 (Saturn) | 土(Earth) | 本位(Cardinal) | 阴性(Yin) |
| 水瓶座 (Aquarius) | 1/20-2/18 | 天王星(Uranus), 土星(Saturn) | 风(Air) | 固定(Fixed) | 阳性(Yang) |
| 双鱼座(Pisces) | 2/19-3/20 | 海王星(Neptune), 木星(Jupiter) | 水(Water) | 变动(Mutable) | 阴性(Yin) |
## 第二部分:十二宫位的年度密语
### 白羊座 | Aries: 勇气的火焰,开拓的先锋
#### 1. 深度性格解析
白羊座的核心驱动力源自最纯粹的“开创”与“存在”的本能。他们是宇宙的婴儿,带着无穷的好奇心和生命力破土而出,象征着春天万物的萌发。这股原始的、未经雕琢的能量,赋予了他们天生的领导力、无畏的勇气和几乎永不枯竭的热情与活力。他们是行动派,相信“存在即是行动”,任何想法都必须立即付诸实践,否则便会感到焦虑不安。
这份强大的生命力也塑造了白羊座的光明与阴影。他们的正面特质,如勇气、坦率、慷慨、动作迅速、富有领导力,都源于守护星火星所赋予的战斗精神和开拓欲望。他们是天生的冒险家,能点燃希望,激励身边的人一同前行。然而,同一股能量也带来了他们的阴暗面:缺乏耐心、容易发怒、好斗、极度自我。他们的自我中心并非出于恶意,而是因为他们的世界观非常直接——“我思,我感,故我行”,有时会忽略周遭更为复杂和微妙的动态。
白羊座的天赋与使命紧密相连。上天赋予他们的最大天赋就是“敢冲敢做”的开拓精神。这使得他们在需要开疆辟土的领域,如销售、市场开发、创业或任何需要第一个站出来的角色中,都能表现得异常出色。他们的历史使命,就是作为先锋,用自身的火焰去点燃世界的变革,用行动去证明一切皆有可能。
#### 2. 人际与爱情:情感的共鸣
在情感世界里,白羊座的表达方式与其性格一脉相承:直接、热烈、纯粹。他们追求的是充满激情与活力的关系,爱情对他们而言是一场光明正大的冒险和征服。他们讨厌任何形式的猜忌、暗示和拖泥带水,需要的是能够与他们并肩作战、共同成长的灵魂伴侣。一个深刻的洞察是,白羊座的爱情必须是他们“自己选择的”。他们享受追求过程中的挑战与乐趣,对于主动送上门、唾手可得的感情,反而会迅速失去兴趣,因为这剥夺了他们身为“猎人”的本能快感。
**灵魂契合度指南:**
- **天作之合(Best Match):** 狮子座、射手座。同属火象星座,他们之间存在着一种天然的引力。狮子的王者风范和射手的自由不羁,都能与白羊的热情形成完美共鸣。他们的结合如同烈火遇干柴,充满了乐趣、冒险和无尽的生命力,能够相互激励,共同创造精彩的人生。
- **潜力无限 (High Potential):** 双子座、水瓶座。风象星座的智慧、灵动与社交能力,能为白羊带来源源不断的新鲜感。风助火势,他们的关系充满了智力上的激荡和社交上的乐趣,能够一起探索世界的广阔。
- **挑战与成长(Challenging Growth):** 巨蟹座、摩羯座。水象巨蟹的敏感内敛和土象摩羯的谨慎务实,其核心需求与白羊的冲动直接相悖。巨蟹需要情感的安抚,摩羯需要计划和稳定,这都会让白羊感到束缚。这种组合需要双方付出巨大的耐心和努力来学习对方的语言,协调彼此的节奏。
**相处之道:** 与白羊座相处,关键在于尊重他们的独立性和行动力。给予他们足够的个人空间和自由去探索世界,欣赏他们的勇气,而不是试图用规则和担忧去束缚他们。沟通时务必保持直接、真诚,有话直说。他们宁愿面对一场短暂的风暴,也不愿陷入无休止的冷战和猜疑。
#### 3. 2025年运势全景图
**年度主题: 化腐朽为神奇**
2025年对白羊座而言,是充满里程碑意义的一年。土星,这位严格的宇宙导师,将在今年正式进入你的命宫,并在此停留近三年之久。这预示着一段充满考验、责任与结构重塑的旅程的开始。你过去习惯的横冲直撞、随心所欲的模式将受到挑战。土星要求你慢下来,审视你人生的地基是否牢固,并为你的每一个选择承担起长远的责任。这并非惩罚,而是一次“出头天”的淬炼。那些敢于直面压力、将挑战化为阶梯的白羊,将在这年“化腐朽为神奇”,为未来的人生奠定坚不可摧的基石。
- **事业运:** 事业正步入一个关键的攀升期。木星的良好相位为你带来机遇,上司和权威人士会对你寄予厚望,你将有机会接触到极具挑战性的核心任务。这是你大展拳脚、开疆辟土的绝佳时机。然而,土星的入驻也像一位严师在你身旁时时敲打,它要求你必须在细节上做到无可挑剔。今年的成败关键在于,能否将你的开拓精神与土星的严谨细致相结合。切忌因急躁而在关键时刻犯下低级错误。请牢记年度座右铭:“胜不骄,败不馁”,踏实前行。
- **爱情运:** 木星的能量将有助于疗愈和提升你的人际关系领域,为你带来高质量的桃花。单身者桃花遍地,尤其在3月至5月期间,很可能在工作场合或通过事业联系遇到让你心动的对象。今年的桃花运极旺,但你需要放下过去的预设立场,才能真正迎接正缘的到来。对于有伴侣的白羊座,土星施加的个人压力可能会传导至亲密关系中,导致摩擦增多。这要求你们必须进行更深层次的、耐心的沟通,将外部的挑战转化为共同成长的契机,而不是相互指责的导火索。
- **财运:** 财运整体呈现平稳增长的态势。你在事业上的努力和承担的责任,会直接转化为正财的稳定回报。年中是拓展多元化收入的好时机,但任何投资都应采取稳健策略,避免高风险的投机行为。土星的能量不利于侥幸,更强调一分耕耘一分收获。需特别留意年底可能会出现一笔意外的大额支出,务必提前预留紧急备用金。
- **健康提醒:** 这是2025年白羊座需要投入最多关注的领域。土星入命宫会显著增加你的身心压力,过劳的风险极高。你可能会感到精力不足、肩上责任沉重。必须学会有意识地调整生活节奏,保证充足的睡眠和休息。将规律的运动,如跑步、健身等,纳入你的日常生活,这将是有效对抗土星压力的最佳方式。
#### 4. 2025年专属开运指南
- **幸运色:** 酒红色,橙色。酒红色融合了火星的激情与土星的深沉,象征着成熟的勇气;橙色则能激发你的创造力与活力。
- **幸运数字:** 7, 4。
- **开运宝石:** 红碧玺。这种宝石被认为能激发勇气和力量,同时带来稳定和专注的能量,完美契合你今年的需求。
- **年度开运箴言:** “我拥抱挑战,每一次压力都将铸就我更坚固的王冠。”
### 金牛座 | Taurus: 大地的丰饶,感官的诗人
#### 1. 深度性格解析:你的内在宇宙
金牛座,黄道带上的第一个土象星座,其内在宇宙的核心是建立在对稳定、安全和物质世界丰盛的深刻渴求之上。他们是天生的建设者和守护者,如同春耕前充满养分的土壤,耐心、务实且富有生产力。由代表爱与美的金星守护,金牛座的价值观是通过五感来建立的——他们需要触摸、品尝、闻到、看到、听到那些美好的事物,才能确认价值的存在。因此,他们对美、舒适、品质和财富有着天然的鉴赏力和追求。
这种对“拥有”和“稳定”的执着,构成了金牛座的光明与阴影。他们的正面特质,如稳重可靠、诚信有决心、温和耐心、极具艺术感,都源于他们扎根于现实、尊重规律的本性。他们是值得信赖的伙伴,一旦做出承诺,便会坚守到底。然而,这种坚守也可能演变为他们的阴暗面:固执倔强、占有欲强、过于重视物质、反应缓慢。他们的固执,本质上是对安全感被破坏的恐惧,是对未知变化的本能抗拒。
金牛座的天赋在于他们“认真实在”的品质和“吃苦耐劳”的精神。他们不相信空中楼阁,只相信通过自己双手一步一个脚印创造出来的价值。这使得他们在金融、房地产、建筑、艺术、美食、奢侈品等任何能够将理念转化为有形价值的领域中,都能成为中流砥柱。他们的使命,就是向世界展示物质的丰盛与精神的安宁可以完美结合,教会我们如何在大地上诗意地栖居。
#### 2. 人际与爱情:情感的共鸣
在情感的国度里,金牛座的爱情是一场需要用时间和耐心细火慢炖的盛宴。他们不追求电光火石的激情,而是寻求一种能够带来极致安全感的、忠诚而长久的关系。他们不善于用花言巧语表达爱意,但会用最实际的行动来证明——————为你提供舒适的生活,为你烹饪美味的佳肴,用高质量的礼物来表达珍视。对金牛座而言,爱是需要被感官确认的,一个温暖的拥抱、一次共享的宁静晚餐,远比一句“我爱你”来得更加真实和重要。
**灵魂契合度指南:**
- **天作之合(Best Match):** 处女座、摩羯座。同为土象星座,他们之间存在着一种深刻的、无需言说的理解。他们共享着对稳定、责任和现实成就的追求,能够给予彼此最需要的安全感和务实支持。他们的关系如同精心建造的房屋,坚固而舒适。
- **潜力无限 (High Potential):** 巨蟹座、双鱼座。水象星座的温柔、敏感和情感滋养,能够有效地软化金牛座时而僵硬的固执。水的滋润能让土地变得更加丰饶。反过来,金牛的稳定和可靠,也能为情绪起伏的水象星座提供一个最坚实的避风港。
- **挑战与成长(Challenging Growth):** 狮子座、水瓶座。狮子座的戏剧化、需要被崇拜的特质,以及水瓶座的疏离、反传统和理想主义,都与金牛座务实、低调的本性相去甚远。这两种组合需要在核心价值观上做出巨大的调和与让步,才能找到共存之道。
**相处之道:** 与金牛座建立深度关系,最重要的是给予他们明确的承诺和始终如一的忠诚。创造一个舒适、整洁、充满美感的共同环境对他们至关重要。在他们需要做决定时,给予足够的时间和空间,任何形式的催促都会引发他们的抗拒。学会用感官的方式表达爱,比如一顿精心准备的晚餐、一次舒适的按摩,都能直达他们的内心深处。
#### 3. 2025年运势全景图
**年度主题: 稳扎稳打,丰盛并重**
2025年,对于追求稳定的金牛座来说,是名副其实的“基石之年”。这一年,宇宙的能量鼓励你稳扎稳打,在心灵与物质两个层面同时追求丰盛。幸运之星木星进入你的财务宫,将为你的经济状况带来显著的提升和全新的理财灵感。然而,真正的年度课题并非仅仅是享受安逸。宇宙正在考验你,能否在舒适区和成长区之间找到一个完美的平衡点。原地踏步虽然安全,但可能会错失让你生命格局跃升的良机。
- **事业运:** 你的事业将在稳定中持续上升,尤其是在那些需要长期耕耘的项目上,将看到显著的成果。今年非常适合进行专业技能的深度提升或考取相关证书,这些投入将为你未来的晋升铺平道路。部分金牛座将有直接的升职或加薪机会。需要特别注意的是,上半年在处理人际关系,尤其是与朋友和同事的协作时,要多加注意,适当减少“我行我素”的固执,多听取他人意见。
- **爱情运:** 爱情关系将逐渐步入一种细水长流的平稳状态。对于单身的金牛座来说,今年你将更愿意尝试不同的社交生活,通过朋友聚会或在熟悉的圈子中,遇到志同道合对象的几率极高。对于有伴侣的金牛座,关系将更加稳固,但需要警惕因过于平淡而消磨了热情。今年的一个重要成长在于,你会开始放下对伴侣的一些旧有模式和要求,愿意建立新的、更健康的相处模式,这会让你们的亲密关系更加稳固。
- **财运:** 2025年是金牛座财运大好的一年。在木星的强力加持下,你将有绝佳的机会去开发新的财源,通过学习新技能或发展副业来创造多元化的收入。特别是在5月至7月期间,投资回报尤为亮眼,可能会有一笔不错的收益进账。然而,越是财运亨通,越需要做好详细的财务规划,避免因消费欲望膨胀而导致不必要的浪费。长期、稳健的理财规划是今年的主题。
- **健康提醒:** 情绪的波动可能会成为影响你健康的关键因素。土象星座的能量容易积压在身体里,尤其需要注意可能由此引发的心血管方面的问题。学会主动减压,比如通过接触大自然、园艺、瑜伽等方式。保持规律的作息和健康的饮食,对你今年的身心平衡至关重要。
#### 4. 2025年专属开运指南
- **幸运色:** 橙色,绿色。橙色能激发你的创造力和财富能量,而绿色则连接着你的守护元素—————大地,带来疗愈、平衡与丰盛。
- **幸运数字:** 5。
- **开运宝石:** 锰铝榴石,绿松石。锰铝榴石能激发活力与财富机遇,而绿松石作为“疗愈之石”,能稳定心绪,帮助你释放固执,如同接受大地女神盖亚的拥抱。
- **年度开运箴言:** “我在稳固的根基上,勇敢地迎接新的丰盛。”
### 双子座 | Gemini: 风中的信使,思想的舞者
#### 1. 深度性格解析:你的内在宇宙
双子座,由象征沟通与思维的行星水星守护,其内在宇宙的核心驱动力是对信息、知识和连接的永恒渴求。他们是黄道带里的“信使”,如同不知疲倦的风,在不同的思想、人群和领域之间穿梭,传递和交换着各种讯息。他们的本质是流动的、多变的,拥有极强的学习能力和无与伦比的适应性,这让他们能够轻松应对各种环境和变化。
这种流动的特质,也塑造了双子座著名的“双重性”。他们的光明面是聪慧机敏、反应迅速、博学多才、擅长沟通、好奇心强。他们是天生的社交家,总能用幽默和智慧点亮任何场合。然而,这也带来了他们的阴暗面:不稳定、持续性不高、容易流于肤浅、有时会显得三心二意。他们是思想的广度探索者,但也因此常常缺乏深度挖掘的耐心。他们内在的两个自我—————————个乐观,一个悲观;一个渴望安定,一个向往远方——————时常在进行着永无休止的对话。
双子座的天赋与使命,正是成为思想的催化剂。上天赋予他们的最大天赋,就是收集、处理和传递信息的能力。这使得他们在记者、教师、作家、主持人、销售、市场营销等任何需要快速学习和有效沟通的领域都能大放异彩。他们的使命,就是促进思想的自由流动,打破知识的壁垒,连接起原本孤立的人与观念。
#### 2. 人际与爱情:情感的共鸣
在爱情的领域,双子座追求的是一场有趣的智力冒险和精神共舞。对他们而言,最致命的不是背叛,而是无聊。他们需要一个能够跟上他们思维跳跃速度、能够与他们进行天马行空的对话、能够不断带来新鲜感的伴侣。精神层面的契合与交流,对他们来说远比物质的稳定和肉体的吸引更为重要。他们可能会因为好奇而接触不同的人,但这并不代表他们花心,他们只是在寻找那个能让他们的灵魂永远保持鲜活的“最佳玩伴”。
**灵魂契合度指南:**
- **天作之合(Best Match):** 天秤座、水瓶座。同为风象星座,他们之间存在着一种深刻的智力吸引和对个人空间的相互尊重。天秤座的优雅、和谐与社交手腕,以及水瓶座的独立、智慧与创新精神,都能与双子座形成完美的互补与共鸣。他们的沟通毫无障碍,能够共同享受一个广阔而自由的社交与思想世界。
- **潜力无限 (High Potential):** 白羊座、狮子座。火象星座的热情、行动力和乐观精神,能将双子座那些天马行空的想法付诸实践。火与风的结合,充满了活力、乐趣和创造力,他们的关系永远不会沉闷。
- **挑战与成长(Challenging Growth):** 处女座、双鱼座。同被水星守护的处女座,其对细节的挑剔和务实的态度,可能会让追求轻松自由的双子感到压力重重。而水象的双鱼座,其强烈的情感需求和黏人的特质,也可能让需要呼吸空间的双子感到窒息。这两种组合需要双方在生活节奏和情感表达上做出巨大的调整。
**相处之道:** 与双子座相处,关键在于保持新鲜感和有趣的沟通。不要试图用固定的模式去束缚他们,给予他们足够的社交自由和精神空间。成为他们最好的朋友和最有趣的谈话对象。当他们表现出冷漠或疏离时,通常不是因为不爱了,而是他们的思绪飘向了别处,需要一些独处的时间来为大脑充电。
#### 3. 2025年运势全景图
**年度主题: 关系的重整与自我的深化**
2025年,对双子座而言,是机遇与内省并存的转折之年。幸运的扩张之星木星,在今年正式进入你的命宫,为你的人生开启了全方位的机遇之门。这股强大的能量将极大地提升你的自信、能见度和贵人运。然而,机遇的泛滥也带来了挑战。这一年,宇宙要求你进行一次深刻的“关系重整”,无论是与他人还是与自己的关系。你必须从过去的茫然中走向清晰,弄清楚在众多的可能性中,什么才是你真正想要的。这是一个将广度转化为深度的关键年份。
- **事业运:** 在木星的加持下,你的事业行动力极佳,将迎来一个充满活力和上升空间的阶段。贵人运尤其旺盛,你会发现身边有许多外部力量愿意协助你。当你投身于自己真正热爱的事业时,那股能量将势不可挡。这是展现才华、拓展版图、甚至开创新局面的绝佳时机。
- **爱情运:** 这是你迎来高质量新桃花的年度。随着你对自我有了更深层次的认识和理解,你所吸引的人也会发生质的改变。单身者有机会遇到能进行深度灵魂对话的对象,但需注意不要因为标准过高而错失良机。对于有伴侣的双子座,你们的关系将进入一个深度调整期。通过坦诚的交流,你们将有机会建立起前所未有的默契和自由,让关系重获新生。
- **财运:** 你的财运将随着事业的蓬勃发展而水涨船高。然而,有占星师特别提醒,2025年双子座的财运起伏较大,属于需要特别小心的星座之一。这背后的逻辑是,木星带来的机遇虽多,但也可能让你花销大增,或是开启了太多项目而分散了精力,导致“财库进进出出”的局面。因此,今年的理财关键在于“守好”财富,对机遇进行筛选和聚焦,避免盲目扩张。
- **健康提醒:** 2025年你的情绪起伏可能会比较大,木星的扩张能量也可能放大你的焦虑和压力。你需要有意识地为自己安排放松和静心的活动。练习冥想、瑜伽、跑步,或者任何能让你暂时从纷繁的思绪中抽离出来的活动,都对你的身心健康大有裨益。
#### 4. 2025年专属开运指南
- **幸运色:** 蓝紫色,蓝色。这些颜色有助于提升你的智慧、沟通力和精神深度。
- **幸运数字:** 2。
- **开运宝石:** 紫水晶。紫水晶被认为是智慧与灵性的象征,能够帮助双子座在纷繁的机遇中保持清晰的头脑,做出正确的抉择。
- **年度开运箴言:** “我在万千可能中,选择忠于我内心的声音,并扎根于此。”
### 巨蟹座 | Cancer: 温柔的铠甲,情感的海洋
#### 1. 深度性格解析:你的内在宇宙
巨蟹座,由盈亏变幻的月亮守护,是黄道带上的第一个水象星座,其内在宇宙是一片深邃而敏感的情感海洋。他们的核心驱动力源于对安全感、归属感和情感连接的深刻需求。他们是天生的滋养者和保护者,象征着母性、家庭和根源。如同螃蟹坚硬的外壳,巨蟹座在外界展现出强大的防御姿态,但这副铠甲之下,却隐藏着十二星座中最柔软、最易感的内心。
这种内外反差构成了巨蟹座的光明与阴影。他们的正面特质,如温柔、体贴、富有同情心、记忆力强、善于照顾人,都源于他们强大的感受力和共情能力。他们能敏锐地捕捉到他人未曾言说的情绪和需求。然而,这种敏感也带来了他们的阴暗面:情绪化、缺乏安全感、过度保护、念旧、容易陷入受害者心态。他们的情绪如同月亮影响下的潮汐,起伏不定,有时会让周围的人感到无所适从。
巨蟹座的天赋与使命,是成为情感的疗愈师和家园的守护者。上天赋予他们的最大天赋,就是他们细腻入微的情感和贴近人心的能力。这使得他们在人力资源、行政、教师、心理咨询师、医护人员等任何需要关怀和同理心的领域,都能发挥出巨大的价值。他们的历史使命,就是提醒世界,在追求物质和成就之外,情感的滋养和家庭的温暖才是人类最终的港湾。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,巨蟹座的字典里没有“随便玩玩”。他们寻求的是能够建立“家”的深度情感关系。他们极度需要安全感,因此在进入一段关系前会非常谨慎,反复试探,直到确认对方是绝对安全和值得信赖的。一旦他们打开心扉,便会展现出无与伦比的忠诚、温柔和奉献。他们会像照顾家人一样照顾伴侣,用无微不至的关怀来表达爱。他们渴望的是灵魂的归属感,是两个人能共同筑起一个温馨、安全的巢穴。
**灵魂契合度指南:**
- **天作之合(Best Match):** 天蝎座、双鱼座。同为水象星座,他们能深刻理解彼此复杂而细腻的情感世界。天蝎座的专一和深情能给予巨蟹座最需要的安全感和承诺。双鱼座的浪漫和同理心则能与巨蟹的温柔形成完美共鸣。他们的结合是情感的深度交融。
- **潜力无限 (High Potential):** 金牛座、处女座。土象星座的稳定、务实和可靠,能为情绪化的巨蟹提供一个坚实的依靠。金牛的耐心和处女的细心,都能让巨蟹感到安心和被珍视。
- **挑战与成长(Challenging Growth):** 白羊座、天秤座。火象白羊的直接和冲动,可能会无意中刺伤巨蟹敏感的内心。而风象天秤追求理性和平衡,有时难以理解巨蟹座那看似“不讲道理”的情绪起伏。这两种组合需要在情感沟通模式上进行深度磨合。
**相处之道:** 与巨蟹座相处,最重要的是给予他们持续的、可预期的情感支持和安全感。真诚地关心他们的家人,是赢得他们信任的捷径。在他们情绪低落时,不要试图用逻辑去说教,一个温暖的拥抱和耐心的倾听远比任何道理都有效。记住他们喜欢的一切—————食物、电影、纪念日——————这些细节会让他们感到被深深地爱着。
#### 3. 2025年运势全景图
**年度主题: 内在需求的觉醒与关系的飞跃**
2025年对巨蟹座来说,是向内探索、从而实现外部世界飞跃的一年。你将更深刻地理解“爱自己”这门功课,学会清晰地为自己的需求发声,而不是一味地压抑和积累情绪。这种内在的转变,将直接反映在你的人际关系和财务状况上,为你带来意想不到的丰盛和机遇。这是一个因内在丰盈而吸引外在富足的年份。
- **事业运:** 你的事业运势稳中有升。虽然可能会面临一些家庭与工作的压力叠加,让你感到疲惫,但这也是你学习平衡生活、提升效率的好机会。工作上容易得到贵人相助,尤其是在团队合作中,你的建议会受到重视。不要害怕表达自己的想法,你的直觉和洞察力将是你最宝贵的资产。
- **爱情运:** 这是巨蟹座感情生活迎来重大突破的一年。你将学会更直接、更健康地沟通自己的情感需求,这会让你与伴侣的关系更加包容和理解。对于单身的巨蟹座,今年桃花运极佳,特别容易“婚头”——————你可能会遇到让你有闪婚冲动的对象,或是迅速地与某人怦然心动并确立关系。请相信你的直觉,勇敢地迎接爱情的到来。
- **财运:** 财运节节攀升,前景看好。你将变得更懂得精打细算,对金钱的用心会体现在生活的方方面面。你逐渐明白,理智地规划和管理财富,本身就是一种重要的自我关爱。这种心态的转变,不仅不会让你变得吝啬,反而因为拥有了更多的余力,而去帮助身边的人,从而为你建立起绝佳的人脉和更多的财富机遇。不过,也有提醒指出今年财运可能起伏较大,需要守好财库,避免因情绪化消费而导致钱财流失。
- **健康提醒:** 今年的核心健康课题在于情绪管理。你需要找到健康的方式来疏导积累的情绪,避免其对身体造成负面影响,特别是消化系统。规律的运动、与家人朋友的温馨聚会,以及给自己留出足够的独处放空时间,都对你的身心平衡至关重要。
#### 4. 2025年专属开运指南
- **幸运色:** 薄荷绿,柠檬绿。这些清新而充满生机的颜色,能为你的情绪带来疗愈与平和。
- **幸运数字:** 6。
- **开运宝石:** 天河石。天河石又被称为“希望之石”,能够带来幸运、化解负能量,并有助于摆脱负面思想,增强自信心,这正是巨蟹座在2025年所需要的能量。
- **年度开运箴言:** “我清晰地表达我的需求,我值得被爱与被滋养。”
### 狮子座 | Leo: 荣耀的君王,舞台的中心
#### 1. 深度性格解析:你的内在宇宙
狮子座,由光芒万丈的太阳守护,是黄道带上的第二个火象星座,其内在宇宙的核心是对荣耀、认可和自我表达的极致追求。他们是天生的王者和舞台的中心,渴望用自己的光和热去照耀和影响世界。他们的能量是稳定而持续的火焰,温暖、慷慨且充满创造力。狮子座象征着人类自我意识的巅峰,他们需要通过被看见、被赞美来确认自身的存在价值。
这种对“独一无二”的追求,构成了狮子座的光明与阴影。他们的正面特质,如自信、慷慨、热情、富有领导力、忠诚、具有创造性,都源于他们太阳般的内核。他们是天生的领袖,能够用自身的魅力和魄力去鼓舞和带领团队。然而,这股强大的自我意识也可能演变为他们的阴暗面:傲慢、虚荣、固执、戏剧化、渴望掌控一切。当他们的光芒没有得到应有的掌声时,他们可能会变得沮丧、暴躁,甚至专横。
狮子座的天赋与使命,是成为创造者和领导者。上天赋予他们的最大天赋,就是他们与生俱来的领袖气质和非凡的创造力。他们是天生的表演家,无论身处何种领域,都能将平凡的工作变成一个展现自我的舞台。这使得他们在管理、演艺、设计、公共关系等任何需要展现个人魅力和领导力的领域都能取得辉明煌的成就。他们的历史使命,就是用自身的榜样告诉世界,每个人都可以活出自己生命中最荣耀、最大方的版本。
#### 2. 人际与爱情:情感的共鸣
在爱情的王国里,狮子座是慷慨而热情的君主。他们享受爱情带来的戏剧性和浪漫感,喜欢用盛大而华丽的方式来表达爱意。被狮子座爱上,就像生活在一部浪漫电影中,充满了惊喜和被捧在手心的感觉。他们需要的是一个能够欣赏他们、崇拜他们,并愿意与他们共享荣耀的“王后”或“国王”。忠诚对他们来说至关重要,任何形式的背叛都是对他们王权的挑战,绝不可饶恕。他们需要被伴侣视为世界的中心。
**灵魂契合度指南:**
- **天作之合(Best Match):** 白羊座、射手座。同为火象星座,他们能深刻理解并欣赏彼此的热情、活力和对生活的积极态度。白羊的开拓精神和射手的乐观远见,都能与狮子的领导力形成完美配合。他们的关系充满了阳光、欢笑和共同的冒险精神。
- **潜力无限 (High Potential):** 双子座、天秤座。风象星座的智慧、社交能力和审美情趣,能为狮子座的王者风范增添优雅和智慧的光环。天秤座懂得如何欣赏和赞美狮子,而双子座则能为狮子带来无穷的乐趣和新鲜资讯。他们的结合是力量与智慧的完美联盟。
- **挑战与成长(Challenging Growth):** 金牛座、天蝎座。同为固定星座,他们之间的关系是一场权力的角力。金牛座的务实和固执,可能会觉得狮子过于铺张和不切实际。而天蝎座的深刻和掌控欲,则会与狮子座的“唯我独尊”产生激烈的冲突。这两种组合都需要双方学会妥协和分享权力。
**相处之道:** 与狮子座相处,关键在于给予他们毫不吝啬的赞美和欣赏。让他们感受到在你眼中,他们是独一无二、无可替代的。尊重他们的意见,维护他们在公众场合的面子。在他们慷慨付出时,要给予真诚的回应和感激。永远不要试图在公开场合挑战他们的权威,任何问题都应该在私下里、用充满尊重的方式进行沟通。
#### 3. 2025年运势全景图
**年度主题: 关系的重塑与价值的再定义**
2025年对狮子座来说,是经历深刻转变、浴火重生的一年。你将进入一个“重新与人建立链接”的周期,这要求你审视过去在合作与亲密关系中的模式。宇宙正在推动你调整和成长,那些曾经让你感到巨大压力的不稳定因素,将逐渐转化为你未来成长的能量。这是一个通过真诚与承诺,让事业和财运出现关键转机的年份。
- **事业运:** 2025年,你的事业将迎来积极的进取期,有机会获得提升。然而,这并非一帆风顺。你需要审视过去在合作关系中需要改进的部分。只有当你愿意调整自己、真诚地与人协作时,事业的转机才会出现。上半年可能会感觉稳步发展,但下半年机会将显著增多。请记住,言出必行、重视承诺,是你今年赢得他人信任和支持的关键。
- **爱情运:** 这是你人际关系和爱情生活面临重大考验和重塑的一年。你需要留意自己在与人交往时的起心动念是否足够真诚。只有发自内心的善意,才能换来真挚的情感。如果发现自己总是在利用关系来逃避某些生命课题,宇宙会通过一些事件来提醒你。虽然过程可能充满挑战,甚至让你感到痛苦忧郁,但最终这将帮助你收获真正实实在在的感情。
- **财运:** 2025年是狮子座财运最旺的星座之一。你的正财和投资运都相当不错。这种好运并非凭空而来,而是你愿意迎接转变和调整的直接结果。当你开始用更成熟、更负责任的态度去处理合作和承诺时,财运便会源源不绝地涌入。财运的巅峰期可能出现在第三季度,但全年都需要保持务实的态度,切勿因过于乐观而做出冲动的财务决定。
- **健康提醒:** 关系上的压力和转变可能会对你的身心健康造成影响。你需要保持充沛的活力来应对挑战。规律的运动、充足的休息以及健康的社交活动,都是你保持良好状态的关键。特别要注意心脏和循环系统的健康,避免因情绪激动或压力过大而引发问题。
#### 4. 2025年专属开运指南
- **幸运色:** 玫瑰粉,金色。玫瑰粉能软化你的强势,增加亲和力与桃花运;金色则是你永恒的王者之色,能增强你的自信与领导力。
- **幸运数字:** 1, 8。
- **开运宝石:** 粉红蛋白石。这种宝石被认为能激发灵感、增进人缘与爱情运,帮助狮子座在2025年以更柔和、更真诚的方式建立人际链接。
- **年度开运箴言:** “我以真诚之心建立连接,我的光芒因分享而更加璀璨。”
### 处女座 | Virgo: 精密的匠人,谦逊的服务者
#### 1. 深度性格解析:你的内在宇宙
处女座,由水星这颗象征思维与逻辑的行星守护,是黄道带上的第二个土象星座,其内在宇宙是一座精密、有序且追求完美的工坊。他们的核心驱动力源于对秩序、效率和纯粹性的不懈追求。他们是天生的“匠人”和“服务者”,渴望通过自己的努力,将混乱的世界变得更加条理分明、尽善尽美。他们拥有强大的分析能力、辨识能力和对细节的极致关注。
这种对“完美”的追求,构成了处女座的光明与阴影。他们的正面特质,如谦逊、细心、高效、有条理、服务精神强、学习能力强,都源于他们土象的务实和水星的智慧。他们是任何团队中不可或缺的质量把控者和问题解决者。然而,这股能量也可能演变为他们的阴暗面:挑剔、焦虑、吹毛求疵、过度批判、容易陷入细节而忽视全局。他们对自身和他人都有着极高的标准,当现实无法达到理想时,便会产生深深的忧虑和不安。
处女座的天赋与使命,是成为世界的净化器和完善者。上天赋予他们的最大天赋,就是他们与生俱来的非凡智慧和分析能力。他们善于分析、归纳和发现系统中的瑕疵。这使得他们在研究、分析、品管、医疗、编辑等任何需要精密操作和逻辑思维的领域都能出类拔萃。他们的历史使命,就是通过谦逊的服务和不懈的努力,去疗愈和完善这个不完美的世界。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,处女座是谨慎而务实的。他们不会轻易陷入爱河,而是会通过细致的观察和理性的分析来评估一段关系的可行性。他们寻求的是一种干净、纯粹、能在日常生活中相互支持、共同进步的伴侣关系。他们不擅长浪漫的言辞,但会用无微不至的照顾和实际的行动来表达爱意——为你整理凌乱的房间,为你准备健康的饮食,在你生病时为你寻遍良药。他们需要的是一个能理解并欣赏他们服务精神、同时也能容忍他们偶尔挑剔的伴侣。
**灵魂契合度指南:**
- **天作之合(Best Match):** 金牛座、摩羯座。同为土象星座,他们能深刻理解彼此对稳定、务实和高质量生活的要求。金牛的温和能包容处女座的焦虑,摩羯的责任感则能让处女座感到无比安心。他们的关系是建立在共同价值观和现实基础之上的,坚固而持久。
- **潜力无限 (High Potential):** 巨蟹座、天蝎座。水象星座的深情和直觉,能帮助处女座打开他们过于理性的心扉,体验到更深层的情感连接。巨蟹的关怀和天蝎的洞察力,都能让处女座感到被理解和被需要。
- **挑战与成长(Challenging Growth):** 双子座、射手座。同为变动星座,他们虽然灵活,但核心需求却大相径庭。双子座的随性和射手座的粗线条,都会让追求精确和秩序的处女座感到抓狂。这两种组合需要双方在生活习惯和价值观上进行大量的沟通与磨合。
**相处之道:** 与处女座相处,关键在于欣赏他们的付出并给予肯定。他们为你做的一切,都值得被看见和感谢。在他们陷入焦虑和挑剔时,理解这源于他们对完美的追求,而不是对你的不满。帮助他们从细节中抽离出来,看到更广阔的画面。保持个人卫生和环境的整洁,会让他们感到舒适和愉悦。
#### 3. 2025年运势全景图
**年度主题: 实力的爆发与魅力的展现**
2025年对处女座来说,是厚积薄发、收获颇丰的一年。过去长时间积累的实力和默默的耕耘,将在今年迎来一个集中的爆发期。宇宙鼓励你不要再像过去那样谦逊地退居幕后,而是要勇敢地站到台前,大方地展现自己的才华和价值。这是一个你的努力将被看见、被认可,并转化为实实在在回报的年份。
- **事业运:** 你的事业运和财运将同步飙升,收获颇丰。你将有机会创造多元化的财富,让生活变得更加有趣和富有创造力。把细节做到最好的本能,会让你在工作中表现出色,赢得心安理得的回报。然而,需要警惕的是,不要陷入过度钻牛角尖的思维模式,这可能会让你错失一些稍纵即逝的良机。学会适时放手,相信自己的专业判断。
- **爱情运:** 2025年是处女座桃花运极佳的一年。你的魅力开始被更多人看见,有机会收获一段理想中的爱情。你的知性、细心和可靠,将成为吸引他人的闪光点。但建议在关系初期稍稍放慢脚步,给彼此更多的空间和时间去相互了解和适应。对于有伴侣的处女座,你们的关系将进入一个深度交流的阶段。通过调整过去的相处方式,改掉一些固执的想法,你们的关系会变得更加轻松和坦然。
- **财运:** 财运与事业运紧密相连,呈现强劲的上升势头。你的专业能力和辛勤工作将直接转化为财富的增长。然而,有占星师提醒,2025年处女座的财务状况需要谨慎处理,因为容易出现判断失误或支出失控的情况,不宜进行冲动的投资。这表明,你需要将你的分析能力更多地运用在财务规划上,避免因乐观而忽视潜在风险。
- **健康提醒:** 处女座天生容易为各种事情操心和焦虑,这在2025年这个忙碌且充满机遇的年份里可能会加剧。你需要特别关注由精神紧张引发的消化系统和神经系统问题。学会设立事务的轻重缓急,减少不必要的压力。定期的放松练习,如冥想、散步,对你的健康至关重要。
#### 4. 2025年专属开运指南
- **幸运色:** 深蓝色。深蓝色象征着智慧、冷静和深度,能帮助你在机遇面前保持清晰的头脑,做出明智的判断。
- **幸运数字:** 5, 8。
- **开运宝石:** 蓝宝石,电气石。蓝宝石是智慧和真理的象征,能提升你的洞察力。电气石则有助于稳定情绪,减少处女座天性中过度批判或自我批判的倾向。
- **年度开运箴言:** “我自信地展现我的价值,我的完美在于不断完善的过程。”
### 天秤座 | Libra: 优雅的外交家,平衡的艺术家
#### 1. 深度性格解析:你的内在宇宙
天秤座,由代表爱、美与和谐的金星守护,是黄道带上的第二个风象星座,其内在宇宙的核心是对平衡、公正和美感的不懈追求。他们是天生的“外交家”和“艺术家”,拥有无与伦比的社交技巧和审美眼光。他们渴望生活在一个优雅、和谐、没有冲突的环境中,并致力于在人际关系中扮演那个权衡利弊、缔造和平的角色。
这种对“平衡”的极致追求,构成了天秤座的光明与阴影。他们的正面特质,如优雅、友善、公正、善于沟通、有合作精神、审美能力强,都源于他们对和谐关系的深刻理解。他们是优秀的倾听者和调解者,总能看到事情的正反两面。然而,这也带来了他们的阴暗面:优柔寡断、犹豫不决、害怕冲突、容易为了迎合他人而牺牲自我。他们对“不和谐”的恐惧,有时会让他们逃避问题,宁愿维持表面的和平,也不愿面对真实但可能痛苦的对峙。
天秤座的天赋与使命,是成为关系的桥梁和美的传播者。上天赋予他们的最大天赋,就是他们绝佳的协调与沟通能力,以及对美的敏锐直觉。这使得他们在法律、外交、公共关系、艺术、设计、时尚等任何需要处理人际关系和创造美感的领域都能游刃有余。他们的历史使命,就是通过建立公平的规则和创造美好的事物,来提升世界的和谐度。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,天秤座是天生的浪漫主义者,他们追求的是一种如同艺术品般精致、平衡且充满美感的伴侣关系。他们渴望深度的精神连接和情感共鸣,需要一个能够与他们分享生活中的一切美好、能够进行优雅而智慧对话的伴侣。他们非常重视关系的公平性,会努力地付出与伴侣同等的情感和精力。然而,他们最大的挑战在于做决定和处理冲突。他们可能会因为害怕破坏和谐而压抑自己的真实感受,陷入一种“假性亲密关系”。
**灵魂契合度指南:**
- **天作之合(Best Match):** 双子座、水瓶座。同为风象星座,他们之间存在着一种深刻的智力共鸣和对社交生活的热爱。双子座的机智和水瓶座的创意都能深深吸引天秤,他们的沟通轻松愉快,能够相互理解和支持,共同追求一个自由而广阔的精神世界。
- **潜力无限 (High Potential):** 狮子座、射手座。火象星座的自信和热情,能点燃天秤座内心的活力,并帮助他们做出决定。狮子座的领导力让天秤感到仰慕,而射手座的冒险精神则能带天秤体验更广阔的世界。他们的结合是魅力与活力的碰撞。
- **挑战与成长 (Challenging Growth):** 巨蟹座、摩羯座。同为本位星座,他们都希望主导关系,但方式截然不同。巨蟹座的情绪化和对家庭的执着,可能会让追求社交和理性的天秤感到困惑。而摩羯座的严肃和务实,也可能与天秤的浪漫和理想主义产生冲突。
**相处之道:** 与天秤座相处,关键在于创造一个和谐、尊重的环境。开放而坦诚的沟通至关重要,要鼓励他们说出自己真实的想法和感受,而不是让他们为了和平而妥协。用浪漫的举动和充满美感的小惊喜来表达爱意,会让他们心花怒放。在他们犹豫不决时,给予支持和鼓励,帮助他们分析利弊,而不是强加自己的意见。
#### 3. 2025年运势全景图
**年度主题: 关系的重整与价值的稳定**
2025年对天秤座来说,是经历波动后走向稳定、并对自我价值进行重新定义的一年。你可能会面临一些重要的决定,这些决定会带来短期的震荡,但最终的目的是促使你进行调整,从而让你的事业和财务状况进入一个更稳定、更成熟的阶段。这也是一个关系重整之年,一些无法再被忽视的问题会浮出水面,迫使你看清真相,做出选择。
- **事业运:** 你的事业运势强劲,正财运将稳步提升。你将有机会获得提拔或承担更重要的职责。尤其是在与奢侈品、创意文化、艺术相关的产业中,你的才华将得到更好的发挥。上半年你可能会经历一些转型的磕磕绊绊,但进入下半年,随着你逐渐适应新的节奏,事业将开始起飞,社交魅力爆棚,为你带来双重好运。
- **爱情运:** 2025年你的感情关系将面临一次彻底的“重整”。一些长期存在但被你刻意忽略的问题,今年会集中爆发,可能会让你在一段时间内身心俱疲。你需要特别留意可能出现的多角关系,这会给你带来巨大的压力。宇宙正在推动你静下心来,想清楚自己真正想要的是什么。不要再过度犹豫,当你做出明确的决定后,反而会感到前所未有的自在和轻松。
- **财运:** 2025年是天秤座财运最旺的星座之一。你的正财运随着事业的攀升而水涨船高,全年都呈现稳步提升的态势。你的金钱观念会发生转变,不再墨守成规,而是更懂得为自己的长远利益设想。第三季度将是丰收累累的时期,但全年都需要保持理性,不要因为机会多而贪心冒险。
- **健康提醒:** 关系上的压力和事业上的变动,可能会对你的身心平衡造成影响。天秤座的健康与内在的和谐度息息相关。当你感到犹豫不决、内心失衡时,身体就容易出现问题,特别是肾脏和腰部区域。学会正视和处理冲突,而不是压抑它,是保持健康的关键。瑜伽、冥想等有助于身心平衡的活动对你非常有益。
#### 4. 2025年专属开运指南
- **幸运色:** 鹅黄色,银白色,睡莲紫。鹅黄色带来温暖与智慧,银白色提升优雅气质,睡莲紫则增添神秘与灵感。
- **幸运数字:** 3。
- **开运宝石:** 黄钻。黄钻象征着财富、智慧与光明,能增强你的自信心,帮助你在关键时刻做出明智的决定,并吸引来积极的财富能量。
- **年度开运箴言:** “我勇敢地做出忠于内心的选择,真正的和谐始于内在的坚定。”
### 天蝎座 | Scorpio: 深渊的潜行者,灵魂的侦探
#### 1. 深度性格解析:你的内在宇宙
天蝎座,由象征毁灭与重生的冥王星和代表欲望与行动的火星共同守护,是黄道带上的第二个水象星座,其内在宇宙是一片深不见底、蕴藏着巨大能量的地下水。他们的核心驱动力源于对真相、深度和极致情感的探求。他们是天生的“灵魂侦探”,拥有穿透一切表象、直达事物本质的敏锐洞察力。他们对生命的态度是“向死而生”,不畏惧黑暗与危机,因为他们深知,最强大的转化力量正蕴藏其中。
这种对“极致”的追求,构成了天蝎座的光明与阴影。他们的正面特质,如深刻、专注、坚韧、富有洞察力、情感强烈、忠诚,都源于他们强大的意志力和直面现实的勇气。他们是灵魂的战士,一旦确定目标,便会以惊人的耐力和决心去实现。然而,这股强大的能量也可能演变为他们的阴暗面:多疑、嫉妒、报复心强、控制欲强、极端。他们对背叛的恐惧和对情感的极致需求,有时会让他们陷入强烈的不安全感,从而试图通过控制来保护自己。
天蝎座的天赋与使命,是成为转化的催化剂和真相的揭示者。上天赋予他们的最大天赋,就是他们与生俱来的第六感、深刻的直觉和对人性的洞察力。他们是天生的人性探测器,总能轻易看穿他人的动机和谎言。这使得他们在心理学、医学、侦探、金融、研究等任何需要深度挖掘和处理危机的领域都能大展所长。他们的历史使命,就是带领世界穿越黑暗,揭示被隐藏的真相,并从毁灭的灰烬中实现重生。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,天蝎座追求的是一种灵魂与灵魂的深度融合,是一种“要么全部,要么全无”的极致情感体验。他们不需要肤浅的浪漫,而是渴望与伴侣在最深的层面上建立连接,分享彼此最隐秘的思想和情感。他们极度忠诚,也要求对方给予同等的忠诚。背叛是他们情感世界中唯一不可饶恕的罪。他们会用强大的占有欲来表达爱意,这既是保护,有时也是一种束缚。与天蝎座恋爱,是一场深刻而激烈的灵魂冒险。
**灵魂契合度指南:**
- **天作之合(Best Match):** 巨蟹座、双鱼座。同为水象星座,他们能深刻理解彼此内在汹涌的情感暗流。巨蟹座的温柔和家庭观念能给天蝎带来渴望的温暖和归属感。双鱼座的无私和同理心则能包容天蝎的极端和占有欲。他们的结合是灵魂的深度契合。
- **潜力无限 (High Potential):** 处女座、摩羯座。土象星座的稳定、务实和忠诚,能给予多疑的天蝎座极大的安全感。处女座的分析能力和摩羯座的责任感,都能赢得天蝎的尊重和信任。
- **挑战与成长(Challenging Growth):** 狮子座、水瓶座。同为固定星座,他们的关系是一场意志力的较量。狮子座的阳光和对舞台的渴望,与天蝎的神秘和对幕后的掌控形成对比。而水瓶座的理性和疏离,则会让渴望深度情感融合的天蝎感到挫败。
**相处之道:** 与天蝎座建立深度关系,最重要的是绝对的诚实和忠诚。任何形式的欺骗和隐瞒都会摧毁他们的信任。给予他们你的全部,包括你最深的恐惧和秘密,这会让他们感到自己是独一无二的。在他们展现出嫉妒和控制欲时,理解这源于他们深刻的不安全感,用持续的爱和保证来安抚他们。不要害怕与他们进行深刻的、甚至痛苦的对话,这是他们感受爱的方式。
#### 3. 2025年运势全景图
**年度主题: 合作的智慧与关系的巩固**
2025年对天蝎座来说,是学习合作智慧、巩固重要关系的一年。你的运势将从过去的单打独斗,转向从合伙或家庭资源中获益。这是一个通过信任与协作,让事业和财富事半功倍的年份。同时,在亲密关系中,你将有机会度过之前的难关,进入一个更加亲密和有默契的阶段。你需要平衡好自己的态度,避免因运势好转而物极必反。
- **事业运:** 你的事业将得到来自合作关系的强大加持,呈现事半功倍的良好态势。上半年可能还是平稳起步,但进入第二季度后,贵人助力会非常明显。你需要学习如何智慧地选择合作伙伴,并处理好合作中的利益分配与人际关系,避免不必要的冲突。6月份,你的能量将迎来觉醒,事业上可能有新的突破。
- **爱情运:** 2025年是你与伴侣关系进入巩固期的一年。你们已经度过了之前的重重关卡,开始懂得如何真正地相互支持,关系将变得更加稳固和深情。争吵会减少,取而代之的是更多的理解和默契。对于单身的天蝎座,放下过去的悲伤和执念,将为你打开新的社交大门。在与人互动时,不要预设太多立场,顺其自然反而会增加更多的可能性。
- **财运:** 2025年是天蝎座财运最旺的星座之一。你的财富增长将主要受益于合伙关系或家庭资源,投资回报率高,甚至可能有意外的收益。你需要制定长期的财务计划,并相信自己的判断。即使中途遇到困难,也要保持初心,不要轻易放弃。按照既定计划稳步前行,你将会有非常不错的收获。
- **健康提醒:** 今年的健康关键在于内在与外在的平衡。事业的忙碌和人际的互动,可能会消耗你大量的精力。你需要注重“内外兼修”,既要通过规律的运动来保持身体的活力,也要通过冥想、独处等方式来补充内在的能量。天蝎座掌管着身体的性器官和排泄系统,需要特别关注这些区域的健康。
#### 4. 2025年专属开运指南
- **幸运色:** 大地棕,深红色,黑色。大地棕带来稳定与扎根的能量;深红色和黑色则能激发你内在的神秘感、力量与洞察力。
- **幸运数字:** 1。
- **开运宝石:** 虎眼石。虎眼石被认为能带来勇气、自信和洞察力,帮助天蝎座在复杂的合作关系和投资决策中看清真相,做出最有利的选择。
- **年度开运箴言:** “我在信任与合作中,发现更强大的自己。”
### 射手座 | Sagittarius: 自由的哲人,远方的探索者
#### 1. 深度性格解析:你的内在宇宙
射手座,由象征扩张、智慧与幸运的木星守护,是黄道带上的第三个火象星座,其内在宇宙是一片广阔无垠、等待探索的未知原野。他们的核心驱动力源于对自由、真理和生命意义的永恒追寻。他们是天生的“哲人”和“探索者”,永远将目光投向远方,渴望通过旅行、学习和体验来拓展自己生命的边界。他们的能量如同射出的箭,充满了方向感、速度和乐观精神。
这种对“远方”的向往,构成了射手座的光明与阴影。他们的正面特质,如乐观、开朗、率直、热爱自由、慷慨、富有哲思,都源于他们木星般的开阔胸襟。他们是天生的开心果和励志导师,总能用自己的幽默和智慧去鼓舞他人。然而,这股不受束缚的能量也可能演变为他们的阴暗面:粗心大意、不负责任、缺乏耐心、过于理想化、心直口快而伤人。他们对自由的极致追求,有时会让他们逃避承诺和世俗的责任。
射手座的天赋与使命,是成为文化的传播者和精神的引领者。上天赋予他们的最大天赋,就是他们海阔天空的胸襟和分享的快乐。他们能将复杂的哲理转化为简单易懂的语言,将远方的见闻带给身边的人。这使得他们在教育、出版、国际贸易、旅游、法律、哲学等任何需要宏大视野和传播理念的领域都能如鱼得水。他们的历史使命,就是不断地拓展人类思想和精神的疆界,提醒我们永远不要停止学习和探索。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,射手座是自由而热情的冒险伙伴。他们追求的是一种能够共同成长、共同探索世界的伴侣关系。他们需要大量的个人空间和自由,任何试图束缚他们的关系都会让他们感到窒息并迅速逃离。他们喜欢聪明、有趣、能和他们进行哲学辩论的伴侣。爱情对他们来说,是一场盛大的旅行,重要的不是目的地,而是沿途的风景和同行的人是否有趣。他们害怕沉重和无聊,会用幽默来化解一切过于严肃的议题。
**灵魂契合度指南:**
- **天作之合(Best Match):** 白羊座、狮子座。同为火象星座,他们能深刻理解并点燃彼此对生命的热情。白羊的勇气和狮子的领导力,都能与射手的探索精神形成完美的合力。他们的关系充满了冒险、欢笑和正能量,是能够一起“玩转”世界的最佳拍档。
- **潜力无限 (High Potential):** 天秤座、水瓶座。风象星座的智慧和社交能力,能为射手的探索之旅增添理性和多元的视角。天秤的优雅和水瓶的独立,都能赢得射手的欣赏。他们的结合是思想与行动的完美联盟。
- **挑战与成长(Challenging Growth):** 处女座、双鱼座。处女座的注重细节和计划性,可能会觉得射手过于粗心和随意。而双鱼座的情感依赖和敏感,也可能会让热爱自由的射手感到压力。这两种组合需要在生活方式和价值观上进行大量的协调。
**相处之道:** 与射手座建立长久关系,关键在于给予他们绝对的信任和自由。不要试图用查岗或盘问的方式来控制他们,这只会让他们跑得更快。成为他们最好的朋友和旅伴,与他们分享你的知识和见闻。在他们“人间蒸发”时,理解他们只是需要一些独处的空间去思考和充电。用乐观和幽默去面对生活中的问题,你会发现他们是最好的人生伙伴。
#### 3. 2025年运势全景图
**年度主题: 价值的奠定与关系的深化**
2025年对射手座来说,是告别过去的辛苦,开始奠定坚实基础的一年。你将有机会将过去的探索和学习,转化为具体的、有形的价值。这是一个适合投资、接触不动产,并重新定义自身价值的年份。在关系层面,无论是爱情还是合作,你都需要学习更深度的沟通和承诺。这是一个从“漂泊”转向“扎根”的过渡之年。
- **事业运:** 2025年,你的事业重点在于“合作”。你需要懂得如何清晰地展现和运用自己的价值。如果仅仅因为担心赚不到钱或害怕得罪人而接受不适合的任务,你会感到非常失衡和疲惫。学会为自己的专业能力“开价”,是你今年的重要功课。当你开始重视自己时,更好的合作机会和资源反而会随之而来。
- **爱情运:** 你的爱情生活将面临“距离”和“深度”的考验。单身者可能会遇到远距离恋情,或是与背景差异很大的人产生火花。关键在于不要过于执着于一个固定的结果,放宽心态,享受过程,反而能建立良好的互动基础。对于有伴侣的射手座,你们需要有意识地创造共同的兴趣和高质量的相处时间。无论多忙,都要一起放松,中立且不带情绪地沟通彼此的不适,这会让你们的关系更加稳固。
- **财运:** 2025年是你非常适合进行投资的一年,尤其是在动产和不动产领域,你将有机会奠定不错的基础。然而,有占星师也提醒,射手座是今年财运起伏较大的星座之一,需要小心处理财务,避免“财库进进出出”。这表明,虽然投资机会很好,但你的支出可能也很大,或者在合作中容易出现财务纠纷。因此,在所有财务决策中,都需要更加谨慎和有计划性。
- **健康提醒:** 经过了前几年的辛苦,你的身体需要休养和恢复。今年的健康重点在于建立规律的生活作息。射手座掌管着大腿和肝脏,需要避免过度放纵(如饮酒、暴食)对肝脏造成的负担。规律的运动,特别是能锻炼到腿部的活动,如跑步、远足,对你非常有益。
#### 4. 2025年专属开运指南
- **幸运色:** 橘红色。这种颜色充满了活力、热情和创造力,完美地呼应了射手座的火象能量,并能为你带来好运。
- **幸运数字:** 0, 5, 9。
- **开运宝石:** 红玉髓。红玉髓被认为是激发勇气、行动力和创造力的宝石,能帮助射手座将理想转化为实际的行动,并稳定他们的能量场。
- **年度开运箴言:** “我将远方的智慧带回当下,在坚实的土地上种出丰盛的果实。”
### 摩羯座 | Capricorn: 孤高的攀登者,时间的建筑师
#### 1. 深度性格解析:你的内在宇宙
摩羯座,由象征结构、责任与时间的土星守护,是黄道带上的第三个土象星座,其内在宇宙是一座陡峭而庄严、等待被征服的高山。他们的核心驱动力源于对成就、地位和掌控力的深刻渴望。他们是天生的“建筑师”和“攀登者”,拥有超凡的毅力、责任感和对长远目标的规划能力。他们相信时间是最终的裁判,任何真正的价值都需要通过艰苦的努力和时间的考验来铸就。
这种对“成就”的执着,构成了摩羯座的光明与阴影。他们的正面特质,如自律、负责、有耐心、务实、有组织能力,都源于他们土星般的内核。他们是任何组织中最可靠的基石,是能够将蓝图变为现实的实干家。然而,这股严肃的能量也可能演变为他们的阴暗面:悲观、压抑、功利、固执、缺乏情感表达。他们对失败的恐惧和对责任的过度承担,有时会让他们显得冷漠无情,并忽略了生活中的乐趣和温暖。
摩羯座的天赋与使命,是成为社会结构的维护者和世俗成就的典范。上天赋予他们的最大天赋,就是他们认真、严谨、实事求是的态度和惊人的耐力。他们为了达到心中的目标,可以忍受任何孤独和艰辛,永远认真实在地向前迈进。这使得他们在政治、管理、金融、建筑等任何需要长期规划和强大执行力的领域都能达到顶峰。他们的历史使命,就是向世界证明,通过纪律和坚持,人类可以克服一切障碍,达到权力与成就的顶峰。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,摩羯座是严肃而忠诚的承诺者。他们不相信虚无缥缈的浪漫,而是将爱情视为一项需要认真规划和经营的人生事业。他们寻求的是能够共同承担责任、共同建立社会地位和物质基础的“权力伴侣”。他们不会轻易表达情感,但会用实际的行动来证明他们的爱——为你提供稳定的生活保障,支持你的事业发展,成为你最坚实的后盾。他们需要的是一个能理解他们野心、尊重他们工作,并能与他们共担风雨的伴侣。
**灵魂契合度指南:**
- **天作之合(Best Match):** 金牛座、处女座。同为土象星座,他们能深刻理解彼此对稳定、责任和物质保障的共同追求。金牛的温和能软化摩羯的严肃,处女的细心则能帮助摩羯处理好细节。他们的关系是建立在共同目标和现实基础之上的,非常稳固。
- **潜力无限 (High Potential):** 天蝎座、双鱼座。水象星座的深情和直觉,能帮助摩羯打开他们压抑的情感世界。天蝎的洞察力和双鱼的同理心,都能让摩羯感到被理解,从而卸下心防。
- **挑战与成长(Challenging Growth):** 白羊座、天秤座。同为本位星座,他们的关系是一场领导权的争夺。白羊的冲动和天秤的犹豫,都与摩羯的计划性和果断相悖。这两种组合需要在人生目标和行事风格上进行深度磨合。
**相处之道:** 与摩羯座建立深度关系,关键在于尊重他们的事业和野心。理解工作对他们来说不仅仅是赚钱,更是实现自我价值的方式。在他们埋头工作时,不要抱怨,而是给予支持和空间。用实际的行动去分担他们的责任,会比任何甜言蜜语都更能打动他们。在他们感到悲观和压力时,成为他们温暖而坚定的支持者,帮助他们看到自己的成就和价值。
#### 3. 2025年运势全景图
**年度主题: 实力的沉淀与智慧的抉择**
2025年对摩羯座来说,是需要沉淀实力、运用智慧进行抉择的一年。你的守护星土星离开了你的财帛宫,进入了代表家庭和根基的白羊座,这意味着你的焦点将从外部的财富积累,转向内在安全感的建立和长期规划的调整。这是一个需要你增强自身实力,向专业人士学习,并以更长远的眼光来规划未来的年份。你的好运,将会在你不曾预料的时空降临。
- **事业运:** 2025年,你的事业运势将进入一个“如鱼得水”的阶段,但这取决于你前期的积累和当下的选择。你需要花时间去增强自己的专业实力,多向行业内的前辈和专家学习,学习他们成功的态度和方法。持之以恒的努力和稳健的心态,将为你带来巨大的安全感和事业上的突破。
- **爱情运:** 你的爱情生活将迎来新的学习机会。单身的摩羯座,有机会在学习、进修或旅行的过程中,遇到能够进行深度内心对谈的合适对象。你将更加重视彼此的内在世界。对于有伴侣的摩羯座,你们的关系可能会出现一些失衡的状况,你的付出不一定能得到实质性的回报。这要求你们必须进行坦诚的沟通,共同找出问题的根源和共识,才能让关系继续前行。
- **财运:** 2025年你的财运相对平稳,关键在于“避免贪念”。不要因为一时的冲动或他人的鼓动而进行自己不熟悉的投资,这会让你失去分寸。今年的财富增长来自于你专业实力的提升和稳健的理财心态。当你专注于提升自己,而不是追逐短期的利益时,财富会自然而来。
- **健康提醒:** 土星的换座会让你将更多的注意力放在家庭和内在安全感上,这可能会引发一些心理上的压力和对过去的思考。摩羯座掌管着人体的骨骼、牙齿和膝盖,你需要特别关注这些部位的健康。避免过度的劳累和压力对身体造成的僵化影响。定期的拉伸、瑜伽和充足的钙质补充对你非常有益。
#### 4. 2025年专属开运指南
- **幸运色:** 森林绿,深茄紫。森林绿象征着稳定、成长和新生,能为你带来扎根的能量;深茄紫则能提升你的智慧和直觉。
- **幸运数字:** 8, 1。
- **开运宝石:** 孔雀石,石榴石。孔雀石被认为能带来转化和疗愈的能量,帮助摩羯座释放旧有模式。石榴石则能增强信心与耐力,帮助你在攀登事业高峰的路上坚持不懈。
- **年度开运箴言:** “我扎根于内在的力量,时间的沉淀是我最宝贵的财富。”
### 水瓶座 | Aquarius: 未来的先知,人道的改革家
#### 1. 深度性格解析:你的内在宇宙
水瓶座,由象征变革与意外的天王星和代表结构的土星共同守护,是黄道带上的第三个风象星座,其内在宇宙是一个充满了未来主义思想和人道主义关怀的实验室。他们的核心驱动力源于对自由、平等和真理的追求,以及打破一切传统束缚的改革冲动。他们是天生的“改革家”和“思想家”,拥有独立、理性、客观的头脑,总是站在群体的角度思考问题,并致力于为人类构建一个更美好的未来。
这种对“未来”和“群体”的关注,构成了水瓶座的光明与阴影。他们的正面特质,如独立自主、理性冷静、富有创意、人道主义、思想前卫,都源于他们天王星般的突破性和土星般的社会责任感。他们是朋友中的智多星,是社会变革的推动者。然而,这股疏离的能量也可能演变为他们的阴暗面:冷漠、叛逆、不近人情、难以预测、固执己见。他们对个体情感的忽视和对“与众不同”的刻意追求,有时会让他们显得孤僻和难以亲近。
水瓶座的天赋与使命,是成为思想的革新者和未来的引路人。上天赋予他们的最大天赋,就是他们源源不绝的创新点子和特立独行的思考能力。他们的脑袋里充满了各种奇思妙想,能够跳出框架,看到别人看不到的可能性。这使得他们在科技、创新研发、社会工作、占星学、广告企划等任何需要前瞻性思维和原创精神的领域都能引领潮流。他们的历史使命,就是用自己的智慧和远见,为人类的集体意识注入新的可能性,推动社会的进步。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,水瓶座追求的是一种建立在友谊基础之上的、平等、自由、相互尊重的伴侣关系。他们需要一个首先能成为他们“灵魂挚友”的伴侣,一个能够理解并支持他们理想、能够与他们进行智慧交流的人。他们害怕过于黏腻和充满占有欲的情感关系,这会让他们感到窒息。他们可能会在恋爱中显得有些疏离和理性,常常忽略伴侣的情感需求,但这并非出于不爱,而是他们天性如此。他们需要的是一个同样独立、能够给予他们足够个人空间的伴侣。
**灵魂契合度指南:**
- **天作之合(Best Match):** 双子座、天秤座。同为风象星座,他们能深刻理解彼此对自由、理性和社交的需求。双子的多变和天秤的优雅,都能与水瓶的智慧形成完美互动。他们的关系充满了思想的火花和轻松的氛围,是精神上的最佳拍档。
- **潜力无限 (High Potential):** 白羊座、射手座。火象星座的行动力和乐观精神,能将水瓶座的理想付诸实践。白羊的开拓精神和射手的探索欲望,都能与水瓶的改革理念一拍即合。他们的结合是理想与行动的联盟。
- **挑战与成长(Challenging Growth):** 金牛座、天蝎座。同为固定星座,他们的关系是一场价值观的拉锯战。金牛座的务实和对物质的重视,与水瓶的理想主义形成鲜明对比。而天蝎座的深情和占有欲,则会与水瓶座的疏离和对自由的需要产生激烈冲突。
**相处之道:** 与水瓶座建立长久关系,关键在于尊重他们的独立性和独特性。不要试图改变他们的想法或干涉他们的社交圈。成为他们最忠实的思想伙伴,对他们的奇思妙想表现出真诚的兴趣。在他们需要独处时,给予空间。当他们显得冷漠时,理解这是他们处理情绪的方式,而不是针对你。用理性和开放的态度进行沟通,是通往他们内心的唯一途径。
#### 3. 2025年运势全景图
**年度主题: 创造力的释放与财富的重构**
2025年对水瓶座来说,是进入全新篇章、释放创造力并重构财富观念的一年。你将开始认真思考如何将自己的专业能力与个人兴趣完美结合,并从中创造出全新的价值和财富。这是一个从为别人工作,转向为自己创造的年份。虽然过程中可能会遇到一些挑战,但这将极大地促进你的个人成长,并最终为你带来丰厚的回报。
- **事业运:** 你的事业将迎来重要的转折。你可能会开始一个新的项目,或是将你的爱好发展成事业。你的原创性和创新精神将得到前所未有的重视。然而,你也可能会面临一些挑战,需要灵活应对。
### 双鱼座 | Pisces: 梦境的诗人,慈悲的疗愈者
#### 1. 深度性格解析
双鱼座,由象征梦幻与消融的海王星和代表智慧与扩张的木星共同守护,是黄道十二宫的最后一个星座,其内在宇宙是一片无边无际、包容万物的灵性海洋。他们的核心驱动力源于对超越现实的渴望和与宇宙万物合一的深刻需求。他们是天生的“梦想家”和“疗愈者”,拥有极致的同情心、想象力和艺术感受力。他们是十二星座的终结,也因此融合了前面十一个星座的所有特质,边界感模糊,能够深刻地共情他人的痛苦与欢乐。
这种“无边界”的特质,构成了双鱼座的光明与阴影。他们的正面特质,如善良、富有同情心、有艺术天分、直觉敏锐、无私奉献,都源于他们海王星般的慈悲和木星般的慷慨。他们是天生的艺术家和慈善家,能够用自己的想象力和爱去温暖和疗愈世界。然而,这股能量也可能演变为他们的阴暗面:逃避现实、意志薄弱、多愁善感、容易上瘾、自我欺骗。他们对现实世界的残酷感到难以适应,有时会选择退回到自己的幻想世界中,或通过酒精等方式来麻痹自己。
双鱼座的天赋与使命,是成为艺术的创造者和灵魂的摆渡人。上天赋予他们的最大天赋,就是他们柔软善感的心和天马行空的想象力。他们擅长用温和而有力的方式叙述贴近人心的道理,能够轻易地撼动人心。这使得他们在艺术、表演、文学、音乐、美术设计、宗教、慈善事业等任何需要想象力和同情心的领域都能展现出惊人的才华。他们的历史使命,就是提醒世界,在理性和物质之外,还存在着一个更广阔的、充满爱与慈悲的精神维度。
#### 2. 人际与爱情:情感的共鸣
在爱情的世界里,双鱼座是极致的浪漫主义者,他们追求的是一种童话般的、能够拯救与被拯救的灵魂伴侣关系。他们渴望在爱情中彻底消融自我,与伴侣合二为一。他们会毫无保留地付出,用极致的温柔和牺牲来表达爱。他们需要的是一个能够保护他们、理解他们梦想,并能将他们从残酷现实中暂时拉开的伴侣。然而,他们也容易在关系中迷失自我,过度理想化对方,从而在幻想破灭时受到深深的伤害。
#### 3. 灵魂契合度指南
- **天作之合(Best Match):** 巨蟹座、天蝎座。同为水象星座,他们能深刻理解彼此内在的敏感和对深度情感的共同需求。巨蟹的关怀能给双鱼带来家的温暖,天蝎的专注则能给双鱼带来需要的方向感和保护。他们的结合是情感的深度共鸣和灵魂的相互慰藉。
- **潜力无限 (High Potential):** 金牛座、摩羯座。土象星座的稳定和务实,能为爱幻想的双鱼提供一个坚实的现实根基,帮助他们将梦想落地。金牛的耐心和摩羯的责任感,都能给双鱼带来极大的安全感。
- **挑战与成长(Challenging Growth):** 双子座、射手座。双子座的理性和多变,以及射手座的直接和热爱自由,都可能会无意中伤害到双鱼座敏感的心。双鱼座的情感需求可能会让这两个星座感到束缚和不解。
#### 4. 相处之道
与双鱼座建立深度关系,关键在于保护他们的梦想和温柔。给予他们无条件的爱和支持,让他们感受到你是他们安全的港湾。在他们情绪低落时,不要试图讲道理,而是给予耐心的陪伴和情感的安抚。与他们一起看浪漫的电影、听音乐、接触艺术,这些都能滋养他们的灵魂。最重要的是,帮助他们在现实和梦想之间找到平衡,而不是让他们沉溺于幻想。

File diff suppressed because it is too large Load Diff

2123
Documents/易经[周易].md Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,594 @@
# 风水学入门基础知识
## 咱知道的这点儿“风水”
## 主要介绍内容
- “风水”的基本概念介绍
- “风水”中的“理论”
- 怎么看“风水”
## 什么是风水
- **“辞海”**: 风水也叫“堪舆”。旧中国的一种迷信。
- **“辞源”**: 风水指宅地或坟地的地势、方向等。旧时迷信,据以附会人事吉凶祸福。
- **“现代汉语辞典”修订本**: 指住宅基地、坟地等的地理形式,如地脉、山水的方向等。迷信的人认为风水好坏可以影响其家族,子孙的盛衰吉凶。
## 风水三大原则
- 天地人合一
- 阴阳平衡
- 五行相生相克
## 主要风水流派
- **“形势宗”**
- “形势宗”又称赣派、形法派、峦头派和北派。
- 该派学说注重在山川形势的空间形象上达到天地人合一。形势法主要作为择址选形之用。
- **“理气宗”**
- “理气宗”又称闽派、宗庙派和理法派。该派注重时间序列上达到天地人合一,其考虑的因素包括阴阳五行、干支生肖、四时八方、八卦九风、三元运气等。理气派偏重于室内外的方位格局。罗盘是理气中的主要工具。
## 风水术语(1)——气
- “气”是风水学的核心,“气”是生发万事万物的根源,“有气”的地方才有希望,有希望的地方为“吉地”,风水最终目的就是寻找能够集聚或生发“气”的地点。
- 《黄帝内经》中说气是“天复地载,万物具备,莫贵于人。人以天地之气生,四时之法成”。
- 郭璞《葬经》认为气是阴阳结合体,成为风,升为云,降为雨,到地中就成为“生气”。气是天地万物的基本元素。
## 风水术语(2)——龙
- 风水学把山脉比喻为“龙”,把山脉的延绵走势称为“龙脉”,山脉的起止形势的考察称作“觅龙”,风水中的“寻龙捉脉”、“寻龙望势”都是“觅龙”过程。
- 龙有“干龙”和“支龙”之分,有大师认为,中国分“北龙”、“中龙”和“南龙”,三大“干龙”起点均为昆仑山,由“祖山”、“少祖山”、“父母山”、依次传递,越靠近起点生气越老,越靠近海边生气越嫩。
- 平地也有龙脉,不如山地明显,利用未地形和水流,“高一寸为山,低一寸为水”。
- “觅龙”就是寻找能够传递“生气”的山脉,来龙深远,去脉奔腾的山脉才好,风水对此设置了一系列复杂细致的规则。
## 风水术语(3)——砂
- “砂”也指山体,“龙”指高大的主要山体,“砂”是“龙”旁边的小山丘。风水认为仅有“龙”还不能成为吉祥之地,需要各种“砂”来拱卫和呼应,没有“砂”“龙”很难聚“气”。
- “察砂”就是对周围山体的考察,在“察砂”中最重要的为“四神砂”,就是吉祥地的左右前后的四个小山。以四方星宿(四宫)命名。
- 青龙(位于吉祥地之左)
- 白虎(位于吉祥地之右)
- 朱雀(位于吉祥地之前)
- 玄武(位于吉祥地之后)
## 风水术语(4)——水
- 吉祥地点离不开水,风水学认为“龙”迎气生气,“砂”聚气藏气,“水”能载气纳气。河流作为传递生气的通道。
- “观水”是风水手法,包括对水的来源、走势和质量的考察。
- 吉祥之地的“水”应该与“龙”和“砂”一起,对该地点造成重叠、内敛向心的作用。
- “水口”是指两条河流汇合以后从山之间流走的地点,来水的水口为“天门”,去水的水口为“地户”。
## 风水术语(5)——穴
- 风水认为吉祥地往往是一个范围,而“穴”则是吉祥地中最吉祥的那个点。“生气”就是从这里冒出来的。
- “点穴”就是指综合考虑山水状况之后,准确找到“龙”“砂”“水”后最完美的那个点,站在这个点上,人们有丰富的心理感受。
- 在寻找“穴”的过程中,可以考察土质的好坏判断该点的旺衰。
- “穴”一般成为核心建筑的基址,如城镇主街的交叉口,都城的朝殿,周郡的公厅,宅舍的中堂。
## 风水术语(6)——向
- “向”就是建筑方向,早期“向”以采光、背风、排水为主要因素,逐步将建筑与五行相生相克引入,并逐步形成将八卦、五行、干支等因素综合起来推算,这种演变形成理气宗。
## 风水选择条件
- 以“生气”为核心,以“藏风”、“得水”为条件。
- “得水”为上,“藏风”次之。
- 风水师的主要工作是寻求能够藏风、得水、具有生气的吉地。
## 易经与周易
- **三才学说**
- **大地经络系统**
- **五行学说**
- **中和观**
- **五向、八方、十二宫**
- **风水系统理论 郭璞《葬书》**
- **现代风水观念**
## 一、易经
- 《易经》传说为伏羲、文王和孔子所作,以乾、坤、震、巽、坎、离、艮、兑为八卦,象征万物结构,代表天、地、雪、风、水、火、山、泽。用阴阳对立,相互消长,相互作用说明万物的形成与变化。
- 易有易简、变易和不易的意思,传说夏代的《连山》,商殷《归藏》,周代的《周易》都是易经的传本。易经分为“经”和“传”。
- 按照南怀瑾之说,易经为诸家的理论基础。
### 一、易经(2)
- 自然界尽其广大、人事尽其烦杂,最终归纳不外两大系统,阳性与阴性。
- 阳(爻)性 -- 阴(爻)性
- 天(父、马) 地(母、牛)
- 雷(长男、龙) 水(中男、猿)
- 山(少男、狗) 风(长女、鸡)
- 火(中女、雉) 泽(少女、羊)
- 易经的理论目前还是得到充分肯定的。
## 二、阴阳学说——周易
- 阴阳概念体现中国人对世界的基本看法,影响了医学、哲学、法学、宗教、音乐、政治等各方面。西周时代的《周易》,集中表现了阴阳学说。
- 阴阳学说的基本原理极其简单,世界上万事万物都是由阴阳两“气”的产物,“气”代表能力、力、本源、元气等。
- 阴阳学说认为“无极而太极,太极动而生阳,动极而静,静而生阴,阴极复动,互为根基,分两极,两仪立焉”。
### 二、阴阳学说——周易(2)
- 阴阳关系是辨证的,变化的。古人认为“阴中有阳、阳中有阴,阳极生阴,阴极生阳,所以神话无穷”。
- 阴阳协合而生水、火、木、金、土五气 (宋代周敦颐《太极图说》)。
- 阴阳生五气,五气化生万事万物,万事万物按照性质分属于水、火、木、金、土。这就是阴阳理论的核心。
### 二、阴阳学说——周易(3)
- 风水中广泛利用阴阳学说,如山为阳,水为阴;山南为阳,山北为阴;温度高、日照多、地势高的地方为阳,反之为阴;生为阳,死为阴等等。
- 《庄子》认为宇宙之中,形之最大者为天地,气之最大者为阴阳。
## 三、《三才》与天人合一观
- 西方地学认为宇宙间的大气圈、水圈和岩石圈是没有生命的有机界。而中国传统思想认为,天地人之间组成一个整体的循环、轮换、新陈代谢的系统,天地人之间的关系被称为“三才”。
- 中国传统哲学认为,大自然的生命在于阴阳结合,阴、阳是宇宙间最基本的两种力量;阴、阳结合则为太极,它是生命的种子。
### 三、《三才》与天人合一观(2)
- **天地之间关系**
- 按照《周易》的思想,天地想通,有天理则有地理,如天有五星,地有五行;天分星宿,地列山川;天有象,地有形。
- 风水师在此基础上提出大地河岳就是天上的星辰,如天东有苍龙在九天,谓之苍天,其下即为东岳。中有北极为均天,其下即为中岳。天上有天河天汉,地下有长江大河。
- **天人之间关系**
- 天人之间关系为“天人一理”。
- 其一:天与人想通,就好像形与影的关系,“循天理诚为地理之根”,做好事的人天报以福,做坏事的人天报以祸。
- 其二:“天人感应”,以汉代董仲舒为主要代表认为,天人一体,相感相应。自然界的现象,都是天神意志的表现,灾异怪变以及吉利瑞祥都是天受感应后施加于人的奖惩。
### 三、《三才》与天人合一观(3)
- **人地之间关系**
- 人与地的关系最为密切,人本身就是在地上生活,人们择地而居,选择较好的地理环境。风水中认为,地理环境决定论,地的好坏决定人的荣辱。同时不好的地通过人工调整可以得吉避凶。
- **天、地、人之间关系**
- “人与天地同”(《吕氏春秋》),人有主动性,能效法天地,但不能改变天地。
### 三、《三才》与天人合一观(4)
- 中国哲学中的天人合一的观念,发源于周代,经过孟子的“性天想通观点”(知性则知天)和董仲舒的“人副天数”(以类分之,天人一也),到宋代张载和二程(程颢、程颐)发展了孟子学说,达到新的水平,主要内容包括:
- 人是自然界的一部分。
- 自然界有普遍规律,人也服从这些规律。
- 人性即为天道,道德原则和自然规律是一致的。
- 人生的理想是天人的协调。
## 四、大地经络活体观
- 经络学产生于中国的远古时代,其后不断与中医经络学互相渗透。
- 达到经络活体观,是以大地像一个庞大的生物体一样的认识。“天地一大生命,人身一小生命”。
- 风水中提出“大地有如人体”的说法,郭璞提出“大地生气论”,认为大地中沿山脉的走向有生气流动,像人体的血液。
- 目前的地球生物学中认为,大地经络活体观有一定的科学性。
## 五、五行学说 风水基本理论(1)
- 五行的起源时间说法较多,目前比较完整的描述在《尚书·洪范》。
- 五行:一曰水,二曰火,三曰木,四曰金,五曰土。水曰润下,火曰炎上,木曰曲直,金曰从革,土爱稼穑。润下作碱,炎上作苦,曲直作酸,从革作幸,稼穑作甘。
- 因此,五行的概念并不是五种基本物资,而是五种基本的关系程序。
- 五行是中国古代的一种关于世界万物相生相克思想,是一种世界关系普遍系统论,其中“五”是指五种自然物质,“行”是指运动不息的意思。“五行”就是物质的关系与运动变化。
### 五、五行学说 风水基本理论(2)
- 五行的属性:
- 五行学说以整体思辩方法将自然界各种事务与现象作了广泛的联系与研究,并用“取类比象”的方法,将事务分别归属于五行之中,如:
| **五行** | **五向** | **五季** | **五色** | **五音** | **五气/五化** | **五味** | **五星** | **五行** | **五数** |
| -------- | -------- | -------- | -------- | -------- | ------------- | -------- | -------- | -------- | -------- |
| 木 | 东 | 春 | 青 | 角 | 风/生 | 酸 | 星 | 木 | 八 |
| 火 | 南 | 夏 | 赤 | 徵 | 署长/苦 | 苦 | 日 | 火 | 七 |
| 土 | 中 | 长夏 | 黄 | 宫 | 化收藏/湿 | 甘 | 地 | 土 | 五 |
| 金 | 西 | 秋 | 白 | 商 | 燥 | 辛 | 辰 | 金 | 九 |
| 水 | 北 | 冬 | 黑 | 羽 | 寒 | 咸 | 日/月 | 水 | 六 |
### 五、五行学说 风水基本理论(3)
- 五行与方位、季节、色彩和四兽的关系是风水的重要手段。
- 南夏红 - 前朱雀(火)
- 青春东 - 左青龙(木)
- 中央 - 映黄 - 后土
- 西秋白 - 右白虎(金)
- 北冬黑 - 后玄武(水)
### 五、五行学说 风水基本理论(4)
- 五行基本生克原理,成为风水吉凶的准则之一。
- 相生性:木生火、火生土、土生金、金生水、水生木。
- 相克性:金克木、木克土、土克水、水克火、火克金。
- 相克关系不是绝对的,若木盛而金微,则金不能够克木;若火旺而水至少,则水为火所消。
## 六、中和观——风水观念
- “致中和,天地位焉,万物育焉”是风水的重要观念。以“中和”为万物存在和发展的理想状态,同时是中国儒家思想的“中庸之道”的表现。
- 风水的中和观来源于《中庸》,喜怒哀乐未发谓之中,发而皆中节谓之中。中也者,天下之大本也;和也者,天下之达到。致中和,天地位焉,万物育焉。
## 七、风水常用手法(1)——阴阳、五行、八卦、黄道十二宫
- 风水中采用的是阴阳五行观,阴阳观是众多分支的理论基础,而五行是阴阳的分枝。
- 风水中的手法主要是五行相生相克原则、五行配五向、八卦四方分八方、黄道十二宫按五行分十二向。
### 七、风水常用手法(2)
- **阴阳、五行、八卦、黄道十二宫**
- **五行与天干配合**
- 木:甲、乙;甲木(阳)为森林大树、乙木(阴)为小树花草。
- 火:丙、丁;丙火为太阳,丁火为灯火。
- 土:戊、己;戊土为大地,己土为田园。
- 金:庚、辛;庚金为斧,辛金为首饰。
- 水:壬、癸;壬水为大海,癸水为雨露。
- **五行与地支配合(略)**
### 七、风水常用手法(3)
- **阴阳、五行、八卦、黄道十二宫**
- **五行休王论**
- 汉代有人根据五行相生相克原理,提出王、相、休、囚、废五气。
- 王:处于旺盛状况。
- 相:处于次旺盛状态。
- 休:退休,休息,不管事。
- 囚:衰落,被禁锢。
- 废:被克制而废,无用,无生气,死亡。
### 七、风水常用手法(4)
- **阴阳、五行、八卦、黄道十二宫**
- **按照《淮南子·地形训》五行休王论中五气与五行的关系为:**
- 木王、水相、火休、金囚、土废。
- 火王、木相、土休、水囚、金废。
- 土王、火相、金休、木囚、水废。
- 金王、土相、水休、火囚、木废。
- 水王、金相、木休、土囚、火废。
### 七、风水常用手法(5)
- **阴阳、五行、八卦、黄道十二宫**
- **五行休王论与四季关系**
- 五行休王论主要是风水术推算吉凶,也是根据主人的八字推算,实际上是给人算命,从此看风水术从理论到方法都与算命术紧密相关。
| | **春** | **夏** | **秋** | **冬** | **四季** |
| ---- | ------ | ------ | ------ | ------ | -------- |
| 木 | 王 | 休 | 死 | 相 | 囚 |
| 火 | 相 | 王 | 囚 | 死 | 休 |
| 土 | 囚 | | 休 | 相 | 王 |
| 金 | 休 | 死囚 | 旺相 | 王 | 死 |
| 水 | 死 | 相 | 休 | 囚 | 王 |
### 七、风水常用手法(6)
- **阴阳、五行、八卦、黄道十二宫**
- **山形的五行**
- 木山:山形圆滑耸拔,直刺天空。此行可以代表树干。
- 火山:形如一团烈火。因其酷似毛笔,通常称为文笔峰。
- 土山:形如平坦的房顶,或“几”字。即顶部平台,山坡陡峭的突出体。
- 金山:山形高大,顶部圆滑没有尖棱锐角,形如巨大的球体。
- 水山:形如水波或活蛇。有许多起伏和缓的山丘连缀而成。
### 七、风水常用手法(7)
- **阴阳、五行、八卦、黄道十二宫**
- **在山的五行分法的基础上,风水师更多的使用山形的九分法(九星)**
- 贪山:木山的变形(北斗七星)
- 巨门:土山的变形(北斗七星)
- 禄存:土山的变形(北斗七星)
- 廉贞:火山的变形(北斗七星)
- 文曲:火山的变形(北斗七星)
- 武曲:金山的变形(北斗七星)
- 左辅:木山的变形(七星左)
- 右弼:金山的变形(七星右)
- 破军:金山的变形(北斗七星)
### 七、风水常用手法(8)
- **阴阳、五行、八卦、黄道十二宫**
- **风水术利用八卦表示方向,以先天八卦用于明理,以后天八卦用于推气,风水主要用后天八卦。**
| **先天八卦** | **后天八卦** |
| ------------ | ------------ |
| 坤 | 北 |
| 震 | 东北 |
| 离 | 东 |
| 兑 | 东南 |
| 乾 | 南 |
| 巽 | 西南 |
| 坎 | 西 |
| 艮 | 西北 |
### 七、风水常用手法(9)
- **阴阳、五行、八卦、黄道十二宫**
- **黄道十二宫也称地支,用以反映十二方向的五行相生相克关系。**
- **二十四山,也称二十四方位,九星在天上移动,二十四山在地上感应,二十四山包括四维、八干、十二支。二十四山配五行。**
- 四维:乾、艮、巽、坤卦。
- 八干:天干中甲、乙、丙、丁、庚、申、壬、癸八干。
- 十二支:地支。
- **六十甲子细分方向。**
## 八、风水系统理论 郭璞与《葬书》(1)
- **《葬书》是风水的经典之作,风水流派较多,但风水的理论方法都出自郭璞的《葬书》,在现存的古书籍中最早见到“风水”也始见于《葬书》。**
- 葬者,乘生气也。经曰:气成风则散,界水则止,古人聚之经不散,行之使有止,故谓之风水。
### 八、风水系统理论 郭璞与《葬书》(2)
- **《葬书》的主要论点**
- 提出“气”、“生气”风水概念。
- “气”、“生气”造成某地比其他地方吉祥。
- 如何获得“生气”。
- 乘气说、藏风得水说、形势说、四灵说、方位说。
- 得水比藏风重要。
- 福荫反气说。
## 九、现代风水观念
- 环境与风水相结合。
- 万物有灵与风水关系。
- 地方文脉与风水。
- 风水是中国传统文化的组成部分。
## 十、风水师主要工具 罗盘
- 风水师通过山、水等要素的判断吉地的最终程序为判断建筑的“向”,而罗盘是判断向的工具。
- 罗盘集阴阳、八卦、五行、河图洛书二数、天星卦象之形的大乘。
- 罗盘类型很多,最多的能有四十多圈。罗盘分两大式,沿海式和内地式,沿海式以福建漳州、广东兴宁为代表,内地式以苏州和安徽之休宁为代表。
### 十、风水师主要工具 罗盘(2)
- **二十五层罗盘简介**
- 第一层“天池”,设置指南针。有水罗盘和汉罗盘之分。
- 第二层“先天八卦”。
- 第三层“后天八卦”。
- 第四层“地支十二位”。
- 第五层“坐家九星”。
- 第六层“二十四星名”。
- 与二十四位相配,阐释天星下应的观念。有三吉、四贵、六秀之说。
### 十、风水师主要工具 罗盘(3)
- **第七层:地盘正针**
- 罗盘中有三针三盘,地盘正针、天盘缝针、人盘中针。三盘都是二十四格,称二十四山。
- 以子午的正中为正针;以壬子、丙午之缝为缝针;以子癸、午丁的中间为中针。
- 缝针比正针的方向位作七又二分之一向西倾移,中针比正针的方向位作七又二分之一向东倾移。
- 三针指向不同形成不同风水流派。
- 缝针由杨筠松发明,也称杨公缝针。中针由赖太素方面,也称赖公中针。
- 风水认为正针定南北是纳地之气;缝针定南北是纳天之光;中针是三才之义。
### 十、风水师主要工具 罗盘(4)
- **第八层:四时节气**
- 显示二十四节气,认为二十四对应二十四节气,每气分上中下三候,分七十二候,以阴阳消长,顺逆进退判断五 六气。
- **第九层:穿山七十二龙**
- 以六十甲子、八干、四维组成七十二龙。风水师以此层与透地六十龙结合专论山岗的来龙去脉,推定凶吉。
- **第十层:五家五行**
- 正五行、双山五行、八卦五行、玄空五行、洪范五行。
- 一般以八卦、玄空五行立向观砂水;洪范五行观墓运;正五行、双山五行和洪范五行相配合,行龙定穴。
### 十、风水师主要工具 罗盘(5)
- **第十一层:透地六十龙**
- 以六十甲子和二十四山结合,以缝针为准,定龙的纯杂。
- **第十二层:平分六十分金吉凶**
- 以邵子先天六十四卦,去乾坤坎离四正卦,作用为判断冲和。
- **第十三层:正针白二十分金**
- 以六十甲子再分一倍,与正针二十四山结合,判断盛衰。
### 十、风水师主要工具 罗盘(6)
- **第十四层:人盘赖公中针**
- **第十五层:天纪盈缩龙**
- 认为六十甲子对应天星宽窄不等,风水认为是迎天之气。
- **第十六层:天盘杨公之气**
- **第十七层:缝针百二十缝金**
- **第十八层:地元归藏卦**
- 以六十四卦中坎离正兑四正卦,配四季二十四节气,推吉凶得失。
### 十、风水师主要工具 罗盘(7)
- **第十九层:二十八宿界限**
- 表示二十八星宿的位置,推算凶吉。
- **第二十层:天元连山卦**
- 先天六十四卦除去乾坤坎离外,余六十卦配六十甲子,推周天三百六十五度,推凶吉。
- **第二十一层:人元周易卦**
- 后天六十四卦,以雷风火地泽天水山结合,除乾坤坎离外,以六十卦配六十甲子,以验砂位凶吉,主要位相墓而用。
### 十、风水师主要工具 罗盘(8)
- **第二十二层:浑天星度五行**
- 二十八宿有五行之分,配六十甲子,以和为吉。
- **第二十三层:浑天星度凶吉**
- 以二十八宿与八干四维,十二支以正针定,决定凶吉。
- **第二十四层:十二宫次定分野**
- 周天二十八宿占十二宫,十二宫配全国方位。如亥双鱼宫,卫分并州;....子宝瓶宫,齐分青州;等。
- **第二十五层:禽星界位**
- 表示二十八星宿在天体上的位置,用五行和名禽相配,定凶吉。
## 如何看“风水”
- 城市风水
- 村落风水
- 住宅风水
### 一、城市风水(1)
- **城市理想风水模式**
### 一、城市风水(2)
- **风水选择城市的原则**
- 风水师把城市看作封闭式的环境单元,这个环境单元被风水师称为“太极”,也有风水师称为“聚”。
- 按照地貌单元的大小划分,太祖为一级,少祖为二级,祖宗为三级,父母主星为四级。同级太极中分为三层,外太极为外罗城,中太极为龙虎砂,内太极为护穴砂。
- 一级太极可为都城,二级三级太极可建城镇乡聚,四级建民宅。
- 各级太极有一定的地域面积要求,都城为大局,必落平原,要求周围100里平原;府州周围数十里;郡县十数里;乡村井市数里。
### 一、城市风水(3)
- **风水选择城市的方法**
- 以水为主的城市选择。
- 以“气”为主的城市选址。
- 以“阴阳”、“八卦”为主的城市内部空间。
- 以“砂”、“穴”为主的城市住宅布置。
### 一、城市风水(4)
- **以水为主的城市选择**
- 风水认为山随水行,水界山住,水随山转,山防水去。以水寻龙,水是龙的血脉,水会即龙尽,水交即龙止,水飞走即生气散,水融注则内气聚。
- 风水认为水深处民多富,水浅处民多贫,水居处民多稠,水散处民多离。流来的水要屈曲环抱,流去的水要盘垣,汇聚的水要悠扬。
- 用风水的观点选择城址以得水为上,北京万水朝宗,南京长江环绕,三吴甲天下而有太湖;东鲁大海外抱,楚有江汉夹汇,洞庭融注;浙江的绍、宁、杭、台、嘉、湖;福建福州、兴化、泉州、漳州;广东的广州、惠州、潮汕、南海等都应得水而人才济济。
### 一、城市风水(5)
- **何谓风水中“得水”**
- 城镇位于两条江河相汇处如扬州、成都、武汉、重庆桂林等,是风水师最欣赏的地址。
- 城镇位于河的一岸或两岸,如南京、南昌、长沙、福州等。
- 位于海滨,如广州、泉州、明州(宁波)等。
- 注重水质,风水师要尝水。水颜色碧,水味甘,水气香的地方主上贵;水白色,水味清,水温暖的地方主中贵;水色淡,味辛辣,气味浓烈的地方主下贵;水气味酸涩,发馊地方为劣地《博山篇》。
### 一、城市风水(6)
- **以“气”为主的城市选址**
- 观察测量四方山川水势,若能聚气,且气韵畅达为吉地,否则为凶地。
- 同时,吉地有“量”上要求,即“气”要大,“龙”要旺,“脉”要远,“穴”要宽。
### 一、城市风水(7)
- **以“阴阳”、“八卦”为主的城市内部空间**
- 城市内部主阳,阳与天相关,城市内部的中轴线要求与天体星辰一致,多指向北极星座。
- 内部道路符合阴阳理论,多为奇偶交错。
- 城市“正穴”(中心),一般建设在较高的地势上,通常正穴都是衙门。
- 文笔塔需建于城市的甲、巽、丙、丁四个方位。
- 文武庙、文昌阁一般按照文东武西的格局,文昌阁、奎楼应建甲、巽、丙、丁四个方位。
### 一、城市风水(8)
- **以“砂”、“穴”为主的城市住宅布置**
- 城市住宅一般以道路和邻里关系为主。风水以道路为水,以周围的住宅比之为“龙”、“穴”、“砂”。
- 城市住宅和建筑的原则为:立门前不宜见街口,顾宅后不宜有直脊;地气顺下,高处来而低去,宜避低而就高,天气从空缺处入而从障处回,乘入以收回方吉。
### 一、城市风水(9)——昆明
- 昆明北长虫山为祖山,商山、螺峰山、五华山、祖遍山为玄武。
- 东侧鹦鹉山、金马山为青龙。
- 西侧妙高山、玉案山(棋盘山)、进耳山(笔架山)、太华山、罗汉山为白虎。
- 南为滇池。
### 一、城市风水(10)
- **昆明**
- 东侧阳水为金汁河和盘龙江。金山寺塔为水。
- 西侧阴水为玉案山水、进耳山水,碧鸡山和碧鸡关为水。
### 一、城市风水(11)——温州
- 温州选址传说由郭璞所定。
- 郭璞在西郭山(郭公山)见周边数峰错立,形如北斗,华盖山锁北斗,提出在此建城,寇不入斗,可长保安逸。温州也称斗城。
- 城内设二十八口井,与二十八星宿相应,挖五个水塘,与河相通,“城内五水配于五行,遇潦不溢”。
### 一、城市风水(12)——温州
- 按照常理城市应选择在江北,但郭璞通过“量土”,提出北岸土轻,南岸土重,决定把城建在南岸。
## 二、村落风水(1)
- **村落风水的理想模式**
### 二、村落风水(2)
- **村落选址的风水**
- 选址的外局。
- 水的选择。
- 封闭结构。
- 村落与土壤关系。
### 二、村落风水(3)
- **村落外局**
- 村落外局以封闭的地理环境为最佳,外局选择以山为主要条件。
- 回避不宜选择地区。
- 《立宅入式》废址、古监狱、古站场、三阳不照的阴地等。
- 《三白宝海》提出十恶地:雷霹地、天隔地、天魔地等。
- 外局不理想的地区可以改善。
- 挖塘蓄水以聚气。
- 引沟渠环村落取吉气。
- 风水可以破坏。
- 村落之间为自身利益,相互破坏风水,方法为以物镇之。如修庙、楼、塔等镇物。
- 各村落为避开对方镇物,在村落形态和建筑形象上进行调整。
### 二、村落风水(4)
- **村落水的选择**
- 水的选择中考虑河水、地下水和水质。
- 风水要求村落河水围合。
- 地下水以水质好,水量足的为嘉泉。村落避免冷泉、黄泉、漏泉等地。
- 水质不好的地区避免选址村落。
- 水口的影响。上下水口直接影响村落规模。
### 二、村落风水(5)
- **封闭结构**
- 封闭结构的目的是“藏风、聚气”。
- 封闭是多层次的,需要山水多次环抱。
- 以山水环抱形成外局的封闭,封闭要求严密,没有缺口。
- 由庭园围成里坊。
- 由建筑围成三面或四面的庭园。
### 二、村落风水(6)
- **村落与土壤**
- 风水师注重土壤主要从气脉上考虑,以阴宅为主。
- 土壤颜色不同气脉不同。
- 土壤气脉好有利于保存尸体,不宜腐烂。
### 二、村落风水(8)——宏村
- 宏村原来龙山下一小溪旁,后洪水使溪水改道与西南溪水汇合,绕村南面流出。
- 又经过3个风水师踏勘,将村总挖半月型水沼,并且从村西河中“引西来之水南转东出”,并在南部百亩良田挖成南湖。
- 宏村水系形成“从村西如村,经九曲十弯,贯穿村中月沼,穿过家家门口,注入南湖。
### 二、村落风水(9)——流坑村
- 江西乐安流坑村,全村为董姓,自称董仲舒后人,全村从宋到明400年出32进士。
- 流坑村背靠金鼓岭,乌江自东南方而来,使流坑三面环水,形成独特的风水环境,被当地人称为“活水排形”。
## 三、住宅风水(1)
- **住宅风水的理想模式**
### 三、住宅风水(2)
- **住宅风水关注的问题**
- 选择有利的宅地。
- 依山傍水、四神砂。
- 关注水口、明堂等小环境。
- 选择房屋的朝向。
- 坐南朝北————大门朝南,子孙不寒,大门朝北,子孙受罪。
- 确定房屋的空间组织结构或形式。
- 以四神砂的风水演变住宅风水。
- 建造围墙。
- 决定什么人应住什么地方。
### 三、住宅风水(3)
- **住宅风水的经典书籍为《阳宅十书》,归纳出阳宅凶吉100多种,在此简介。**
- 凡宅:不居当冲口处,不居寺庙,不居祠社、窖冶、官衙,不居草木不生处,不居故军营战地,不居正当水流处,不居山脊冲处,不居大城门处,不居对狱门处,不居百川口处。
- 凡宅:东有流水达江海吉,东有大路贫,北有大路凶,南有大路富贵。
- 凡宅:树木皆欲向宅凶,背宅吉。
- 凡宅:南北长东西窄吉,东西长南北窄初凶后吉。
- 凡宅:居滋润光泽吉,干燥无润凶。
- 凡宅:门前不许开新塘,主绝无子,谓之血盆照镜,门稍远可开半月塘。
### 三、住宅风水(4)
- **凡宅:**
- 前低后高,世出英豪。前高后低,长幼昏迷。
- 左下右昂,长子荣昌,阳宅则吉,阴宅不强。右下左高,阴宅丰豪,阳宅不吉,主必奔逃。
- 两新夹故,死须不住。两故夹新,光显宗亲。
- 门前不许人家屋箭来射,主出子孙忤逆不孝。
- 屋后不要绝尖尾地,主绝人丁。门前屋后方圆大吉。
- 门前忌有双池,谓之哭字。西头有池为白虎开口,皆忌之。
- 前后水出,主绝嗣败财。
- 井不可当大门,主官讼。
### 三、住宅风水(5)
- **凡宅:**
- 门口水坑,家破伶仃。
- 大树当门,主招天瘟。
- 墙头冲门,长被人论。
- 交路夹门,人口不存。
- 众路相冲,家无老翁。
- 门被水射,家散人哑。
- 神舍对门,长病时瘟。
- 门前垂杨,非是吉祥。
- 重重宅护,三门莫相对,必主门户退。

View File

@@ -4,10 +4,11 @@
## 功能概览
- `POST /api/fortune`:校验参数 → 调用 `suanming` → 调用 `DeepSeek` → 返回 `ai_text + raw_suanming`
- `POST /api/fortune`:校验参数 → 调用 `suanming` → 调用 `DeepSeek` → 返回 `ai_text + 可选 raw_suanming`
- `Documents/` 知识库:启动时自动加载 Markdown 文档,按问题检索相关片段注入提示词,实现长上下文记忆。
- Express 静态站点单页表单包含示例填充、请求状态、AI 文本展示、原始 JSON 展开、免责声明等。
- Token 自动管理:启动时自动登录获取 Token过期后自动刷新无需人工干预。
- `.env` 控制 suanming、DeepSeek、端口与超时
- `.env` 控制 suanming、DeepSeek、端口、CORS 与知识库安全策略
## 文件结构
@@ -15,6 +16,7 @@
Suanming-Web/
├── public/ # 静态前端资源index.html / styles.css / app.js
├── server.js # Express 网关及 API 实现
├── knowledge-base.js # Documents 文档加载与检索
├── package.json # 项目依赖
└── .env # 环境变量配置
```
@@ -44,10 +46,30 @@ Suanming-Web/
# DeepSeek API 配置
DEEPSEEK_API_KEY=your-deepseek-api-key
DEEPSEEK_API_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_TIMEOUT_MS=20000
```
DEEPSEEK_API_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_TIMEOUT_MS=20000
# Documents 知识库配置
KNOWLEDGE_ENABLED=true
DOCUMENTS_DIR=./Documents
KNOWLEDGE_TOP_K=6
KNOWLEDGE_CHUNK_SIZE=1200
KNOWLEDGE_MAX_CONTEXT_CHARS=7000
# 原始 suanming 数据注入 Prompt 的最大字符数
RAW_SUANMING_PROMPT_LIMIT=12000
# 是否在响应中返回 raw_suanming生产建议 false
INCLUDE_RAW_SUANMING=false
# CORS 白名单(逗号分隔;留空=仅同源可用,跨域会被浏览器拦截)
CORS_ALLOWED_ORIGINS=https://suanming.hbyrkj.top,http://localhost:4173
# 知识库热重载鉴权(建议生产开启)
KNOWLEDGE_RELOAD_AUTH_ENABLED=true
KNOWLEDGE_ADMIN_TOKEN=replace-with-a-long-random-token
```
3. **启动服务**
```bash
@@ -66,8 +88,16 @@ Suanming-Web/
```
POST /api/fortune
Content-Type: application/json
GET /api/knowledge/status
POST /api/knowledge/reload
```
> `POST /api/knowledge/reload` 默认需要鉴权,请在请求头中携带:
>
> - `X-Knowledge-Token: <KNOWLEDGE_ADMIN_TOKEN>`
> - 或 `Authorization: Bearer <KNOWLEDGE_ADMIN_TOKEN>`
请求示例:
```json
@@ -90,12 +120,23 @@ Content-Type: application/json
"success": true,
"data": {
"ai_text": "DeepSeek 的自然语言解读",
"raw_suanming": { "...": "原始 suanming JSON" },
"raw_suanming": { "...": "原始 suanming JSON(可选)" },
"meta": {
"type": "bazi",
"model": "deepseek-chat",
"elapsed_ms": 2143,
"warnings": []
"raw_suanming_included": true,
"warnings": [],
"time_anchor": {
"current_year": 2026,
"reference_year": 2026,
"mode": "analysis_date"
},
"knowledge": {
"enabled": true,
"source_count": 6,
"sources": []
}
}
}
}
@@ -107,13 +148,26 @@ Content-Type: application/json
- **自动刷新**:请求遇到 401 错误时自动刷新 Token 并重试
- **并发安全**:多个并发请求共用同一个登录 Promise避免重复登录
## Documents 知识库(长上下文缓存)
- **预加载缓存**:服务启动后自动扫描 `Documents/*.md`,切分为知识片段并常驻内存。
- **请求时检索**:每次 `POST /api/fortune` 会根据用户问题和命盘数据检索最相关片段,注入 DeepSeek Prompt。
- **热更新**:新增/修改文档后可调用 `POST /api/knowledge/reload` 即时重载,无需重启 PM2 进程。
- **状态查看**:调用 `GET /api/knowledge/status` 可查看是否已加载成功、文档数和分片数。
## 自定义
- DeepSeek 调用通过 `openai` SDK 完成,`.env` 中的 `DEEPSEEK_API_URL` 只需设置到根域名(默认 `https://api.deepseek.com`)。
- 若暂未配置 DeepSeek Key会返回提示并保留 `raw_suanming`,方便调试
- 若暂未配置 DeepSeek Key会返回提示;是否附带 `raw_suanming` 由 `INCLUDE_RAW_SUANMING` 控制
- 如需拓展 `name`、`fortune` 等类型,可在 `server.js` 的 `buildSuanmingRequest` 中补充对应 endpoint/payload。
- 前端使用原生 JS便于在任何环境下部署若后续需要组件化框架可直接复用当前 API。
## 安全建议(生产)
- 设置 `CORS_ALLOWED_ORIGINS`,只允许你的正式域名跨域访问。
- 保持 `KNOWLEDGE_RELOAD_AUTH_ENABLED=true`,并配置强随机 `KNOWLEDGE_ADMIN_TOKEN`。
- 建议将 `INCLUDE_RAW_SUANMING=false`,减少敏感原始数据外泄与响应体积。
## 免责声明
页面底部及 DeepSeek Prompt 均包含"仅供娱乐参考"的提示,请在生产部署时继续保留。

456
knowledge-base.js Normal file
View File

@@ -0,0 +1,456 @@
const fs = require('fs/promises');
const path = require('path');
const STOPWORDS = new Set([
'我们',
'你们',
'他们',
'可以',
'如果',
'因为',
'所以',
'然后',
'这个',
'那个',
'一个',
'一些',
'一下',
'请问',
'希望',
'想要',
'了解',
'知道',
'关于',
'以及',
'还有',
'是否',
'怎么',
'如何',
'什么',
'就是',
'目前',
'最近',
'近期',
'今天',
'今年',
'明年',
'时候',
'方面',
'内容',
'问题',
]);
function toPositiveInteger(value, fallback) {
const numeric = Number(value);
if (!Number.isFinite(numeric) || numeric <= 0) {
return fallback;
}
return Math.floor(numeric);
}
function normalizeText(input = '') {
return String(input).toLowerCase();
}
function tokenizeQuery(input = '') {
const normalized = normalizeText(input);
const tokens = [];
const latinTokens = normalized.match(/[a-z0-9_]{2,}/g) || [];
tokens.push(...latinTokens);
const chineseSegments = normalized
.replace(/[^\u4e00-\u9fff]+/g, ' ')
.split(/\s+/)
.filter(Boolean);
for (const segment of chineseSegments) {
if (segment.length <= 4) {
tokens.push(segment);
continue;
}
const limit = Math.min(segment.length - 1, 40);
for (let i = 0; i < limit; i += 1) {
tokens.push(segment.slice(i, i + 2));
}
tokens.push(segment.slice(0, 4));
}
return [...new Set(tokens)]
.filter((token) => token.length >= 2 && !STOPWORDS.has(token))
.slice(0, 180);
}
function splitLongText(text, maxLen) {
const chunks = [];
for (let index = 0; index < text.length; index += maxLen) {
chunks.push(text.slice(index, index + maxLen));
}
return chunks;
}
function extractYearsFromText(text = '') {
const matches = String(text).match(/20\d{2}/g) || [];
const years = matches
.map((value) => Number(value))
.filter((value) => Number.isInteger(value) && value >= 2000 && value <= 2100);
return [...new Set(years)];
}
function splitDocumentIntoChunks(fileName, content, maxChunkChars) {
const blocks = String(content)
.split(/\n{2,}/)
.map((block) => block.trim())
.filter(Boolean);
const chunks = [];
const defaultHeading = fileName.replace(/\.md$/i, '');
let heading = defaultHeading;
let buffer = '';
let sequence = 0;
const pushChunk = () => {
const text = buffer.trim();
if (!text) {
buffer = '';
return;
}
sequence += 1;
chunks.push({
id: `${fileName}:${sequence}`,
fileName,
heading,
text,
normalized: normalizeText(text),
charLength: text.length,
});
buffer = '';
};
for (const block of blocks) {
const headingMatch = block.match(/^#{1,6}\s+(.+)$/);
if (headingMatch) {
pushChunk();
heading = headingMatch[1].trim() || heading;
continue;
}
if (!buffer) {
if (block.length <= maxChunkChars) {
buffer = block;
continue;
}
const oversizedParts = splitLongText(block, maxChunkChars);
for (const part of oversizedParts) {
sequence += 1;
chunks.push({
id: `${fileName}:${sequence}`,
fileName,
heading,
text: part,
normalized: normalizeText(part),
charLength: part.length,
});
}
continue;
}
if (buffer.length + block.length + 2 <= maxChunkChars) {
buffer += `\n\n${block}`;
continue;
}
pushChunk();
if (block.length <= maxChunkChars) {
buffer = block;
continue;
}
const oversizedParts = splitLongText(block, maxChunkChars);
for (const part of oversizedParts) {
sequence += 1;
chunks.push({
id: `${fileName}:${sequence}`,
fileName,
heading,
text: part,
normalized: normalizeText(part),
charLength: part.length,
});
}
}
pushChunk();
return chunks;
}
function scoreChunk(chunk, queryTokens, options = {}) {
let score = 0;
for (const token of queryTokens) {
if (!token) continue;
if (chunk.normalized.includes(token)) {
if (token.length >= 4) {
score += 4;
} else if (token.length === 3) {
score += 2;
} else {
score += 1;
}
}
if (chunk.heading.includes(token)) {
score += 2;
}
}
const preferredYear = Number(options.preferredYear);
if (Number.isInteger(preferredYear)) {
const years = extractYearsFromText(`${chunk.heading}\n${chunk.text}`);
if (years.length) {
if (years.includes(preferredYear)) {
score += 4;
} else {
score -= 2;
}
}
}
return score;
}
class KnowledgeBase {
constructor(options = {}) {
this.enabled = options.enabled !== false;
this.documentsDir = options.documentsDir;
this.chunkSize = toPositiveInteger(options.chunkSize, 1200);
this.topK = toPositiveInteger(options.topK, 5);
this.maxContextChars = toPositiveInteger(options.maxContextChars, 7000);
this.minScore = toPositiveInteger(options.minScore, 2);
this.defaultKeywords =
options.defaultKeywords && options.defaultKeywords.length
? options.defaultKeywords
: ['八字', '命理', '运势', '五行', '开运', '风水'];
this.docs = [];
this.chunks = [];
this.lastLoadedAt = null;
this.lastError = null;
this.loadingPromise = null;
}
async ensureLoaded(force = false) {
if (!this.enabled) {
return;
}
if (!force && this.lastLoadedAt && this.chunks.length) {
return;
}
if (this.loadingPromise) {
await this.loadingPromise;
return;
}
this.loadingPromise = this.loadFromDisk();
try {
await this.loadingPromise;
} finally {
this.loadingPromise = null;
}
}
async loadFromDisk() {
try {
const entries = await fs.readdir(this.documentsDir, { withFileTypes: true });
const markdownFiles = entries
.filter((entry) => entry.isFile() && entry.name.toLowerCase().endsWith('.md'))
.map((entry) => entry.name)
.sort((a, b) => a.localeCompare(b, 'zh-CN'));
const docs = [];
const chunks = [];
for (const fileName of markdownFiles) {
const filePath = path.join(this.documentsDir, fileName);
const content = await fs.readFile(filePath, 'utf8');
docs.push({ fileName, charLength: content.length });
chunks.push(...splitDocumentIntoChunks(fileName, content, this.chunkSize));
}
this.docs = docs;
this.chunks = chunks;
this.lastLoadedAt = new Date();
this.lastError = null;
console.log(
`[knowledge] loaded ${docs.length} docs, ${chunks.length} chunks from ${this.documentsDir}`
);
} catch (error) {
this.lastError = error.message;
console.error(`[knowledge] load failed: ${error.message}`);
throw error;
}
}
async getStatus() {
if (!this.enabled) {
return {
enabled: false,
documents_dir: this.documentsDir,
docs_count: 0,
chunks_count: 0,
last_loaded_at: null,
last_error: null,
};
}
await this.ensureLoaded();
return {
enabled: true,
documents_dir: this.documentsDir,
docs_count: this.docs.length,
chunks_count: this.chunks.length,
last_loaded_at: this.lastLoadedAt ? this.lastLoadedAt.toISOString() : null,
last_error: this.lastError,
};
}
async buildContext(queryText, options = {}) {
if (!this.enabled) {
return {
enabled: false,
text: '',
references: [],
};
}
await this.ensureLoaded();
if (!this.chunks.length) {
return {
enabled: true,
text: '',
references: [],
};
}
const includeFiles = Array.isArray(options.includeFiles)
? options.includeFiles.filter(Boolean)
: null;
const excludeFiles = Array.isArray(options.excludeFiles)
? options.excludeFiles.filter(Boolean)
: null;
const topK = toPositiveInteger(options.topK, this.topK);
const maxContextChars = toPositiveInteger(
options.maxContextChars,
this.maxContextChars
);
const preferredYear = Number.isInteger(Number(options.preferredYear))
? Number(options.preferredYear)
: null;
const dropMismatchedYears = options.dropMismatchedYears === true;
const candidateChunks = this.chunks.filter((chunk) => {
if (includeFiles && includeFiles.length) {
const matched = includeFiles.some((fileName) => chunk.fileName.includes(fileName));
if (!matched) return false;
}
if (excludeFiles && excludeFiles.length) {
const blocked = excludeFiles.some((fileName) => chunk.fileName.includes(fileName));
if (blocked) return false;
}
if (dropMismatchedYears && preferredYear) {
const years = extractYearsFromText(`${chunk.heading}\n${chunk.text}`);
if (years.length && !years.includes(preferredYear)) {
return false;
}
}
return true;
});
if (!candidateChunks.length) {
return {
enabled: true,
text: '',
references: [],
};
}
const queryWithFallback = `${queryText || ''} ${this.defaultKeywords.join(' ')}`;
const queryTokens = tokenizeQuery(queryWithFallback);
const ranked = candidateChunks
.map((chunk) => ({
chunk,
score: scoreChunk(chunk, queryTokens, { preferredYear }),
}))
.filter((item) => item.score >= this.minScore)
.sort((a, b) => b.score - a.score);
const selected = [];
const selectedIds = new Set();
let totalChars = 0;
for (const item of ranked) {
if (selected.length >= topK) break;
if (selectedIds.has(item.chunk.id)) continue;
if (totalChars + item.chunk.charLength > maxContextChars && selected.length > 0) {
continue;
}
selected.push(item);
selectedIds.add(item.chunk.id);
totalChars += item.chunk.charLength;
}
if (!selected.length) {
selected.push(
...candidateChunks
.slice(0, Math.min(topK, candidateChunks.length))
.map((chunk) => ({
chunk,
score: 0,
}))
);
}
const references = selected.map((item) => ({
file: item.chunk.fileName,
heading: item.chunk.heading,
score: item.score,
}));
const text = selected
.map(
(item, index) =>
`[资料${index + 1}] 来源: ${item.chunk.fileName} / ${item.chunk.heading}\n${item.chunk.text}`
)
.join('\n\n');
return {
enabled: true,
text,
references,
};
}
}
module.exports = {
KnowledgeBase,
};

View File

@@ -63,16 +63,28 @@ function renderResult(result) {
const warnings = result.meta?.warnings?.filter(Boolean) || [];
if (warnings.length) {
warningsEl.classList.remove('hidden');
warningsEl.innerHTML = warnings.map((w) => `<p>⚠️ ${w}</p>`).join('');
warningsEl.textContent = '';
warnings.forEach((warning) => {
const paragraph = document.createElement('p');
paragraph.textContent = `⚠️ ${warning}`;
warningsEl.appendChild(paragraph);
});
} else {
warningsEl.classList.add('hidden');
warningsEl.textContent = '';
}
}
function formatLocalDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
function fillDemo() {
const now = new Date();
const date = now.toISOString().slice(0, 10);
const date = formatLocalDate(now);
const time = '08:30';
form.type.value = 'bazi';

427
server.js
View File

@@ -4,6 +4,7 @@ const axios = require('axios');
const cors = require('cors');
const dotenv = require('dotenv');
const OpenAI = require('openai');
const { KnowledgeBase } = require('./knowledge-base');
dotenv.config();
@@ -19,6 +20,33 @@ const DEEPSEEK_TIMEOUT_MS = Number(process.env.DEEPSEEK_TIMEOUT_MS || 20000);
const SUANMING_TIMEOUT_MS = Number(process.env.SUANMING_TIMEOUT_MS || 15000);
const SUANMING_EMAIL = process.env.SUANMING_EMAIL || '';
const SUANMING_PASSWORD = process.env.SUANMING_PASSWORD || '';
const DOCUMENTS_DIR = path.resolve(__dirname, process.env.DOCUMENTS_DIR || 'Documents');
const KNOWLEDGE_ENABLED = parseBoolean(process.env.KNOWLEDGE_ENABLED, true);
const KNOWLEDGE_TOP_K = Number(process.env.KNOWLEDGE_TOP_K || 6);
const KNOWLEDGE_CHUNK_SIZE = Number(process.env.KNOWLEDGE_CHUNK_SIZE || 1200);
const KNOWLEDGE_MAX_CONTEXT_CHARS = Number(
process.env.KNOWLEDGE_MAX_CONTEXT_CHARS || 7000
);
const RAW_SUANMING_PROMPT_LIMIT = Number(
process.env.RAW_SUANMING_PROMPT_LIMIT || 12000
);
const ZODIAC_GUIDE_FILE = '十二星座运势解析与开运指南.md';
const CORS_ALLOWED_ORIGINS = parseCsvEnv(process.env.CORS_ALLOWED_ORIGINS || '');
const KNOWLEDGE_RELOAD_AUTH_ENABLED = parseBoolean(
process.env.KNOWLEDGE_RELOAD_AUTH_ENABLED,
true
);
const KNOWLEDGE_ADMIN_TOKEN = process.env.KNOWLEDGE_ADMIN_TOKEN || '';
const INCLUDE_RAW_SUANMING = parseBoolean(process.env.INCLUDE_RAW_SUANMING, true);
const knowledgeBase = new KnowledgeBase({
enabled: KNOWLEDGE_ENABLED,
documentsDir: DOCUMENTS_DIR,
topK: KNOWLEDGE_TOP_K,
chunkSize: KNOWLEDGE_CHUNK_SIZE,
maxContextChars: KNOWLEDGE_MAX_CONTEXT_CHARS,
defaultKeywords: ['八字', '命理', '运势', '事业', '财运', '感情', '健康', '风水', '周易'],
});
// Token 管理器
const tokenManager = {
@@ -88,7 +116,9 @@ const openaiClient =
timeout: DEEPSEEK_TIMEOUT_MS,
});
app.use(cors());
const corsOptions = buildCorsOptions();
app.use(cors(corsOptions));
app.options('*', cors(corsOptions));
app.use(express.json({ limit: '1mb' }));
app.use((req, _res, next) => {
@@ -106,6 +136,37 @@ app.get('/api/health', (_req, res) => {
});
});
app.get('/api/knowledge/status', async (_req, res) => {
try {
const status = await knowledgeBase.getStatus();
res.json({ success: true, data: status });
} catch (error) {
res.status(500).json({
success: false,
error: {
code: 'KNOWLEDGE_STATUS_FAILED',
message: error.message,
},
});
}
});
app.post('/api/knowledge/reload', requireKnowledgeReloadAuth, async (_req, res) => {
try {
await knowledgeBase.ensureLoaded(true);
const status = await knowledgeBase.getStatus();
res.json({ success: true, data: status });
} catch (error) {
res.status(500).json({
success: false,
error: {
code: 'KNOWLEDGE_RELOAD_FAILED',
message: error.message,
},
});
}
});
app.post('/api/fortune', async (req, res) => {
try {
const validationError = validateFortuneRequest(req.body);
@@ -143,12 +204,15 @@ app.post('/api/fortune', async (req, res) => {
success: true,
data: {
ai_text: deepseekResult.text,
raw_suanming: rawSuanming,
...(INCLUDE_RAW_SUANMING ? { raw_suanming: rawSuanming } : {}),
meta: {
type: req.body.type || 'bazi',
model: deepseekResult.model,
elapsed_ms: Date.now() - req.requestTime,
warnings: deepseekResult.warning ? [deepseekResult.warning] : [],
raw_suanming_included: INCLUDE_RAW_SUANMING,
warnings: mergeWarnings(deepseekResult),
time_anchor: deepseekResult.time_anchor,
knowledge: deepseekResult.knowledge,
},
},
});
@@ -192,8 +256,22 @@ app.get('*', (_req, res) => {
app.listen(PORT, async () => {
console.log(`🧙 Suanming gateway running at http://localhost:${PORT}`);
if (!CORS_ALLOWED_ORIGINS.length) {
console.warn('[security] CORS_ALLOWED_ORIGINS 未配置,当前仅同源可用,跨域请求将被浏览器拦截。');
}
if (KNOWLEDGE_RELOAD_AUTH_ENABLED && !KNOWLEDGE_ADMIN_TOKEN) {
console.warn(
'[security] KNOWLEDGE_ADMIN_TOKEN 未配置,/api/knowledge/reload 将返回 503。'
);
}
// 启动时预热 Token
await tokenManager.getToken();
// 启动时加载知识库文档
try {
await knowledgeBase.ensureLoaded();
} catch (error) {
console.error(`[knowledge] startup preload failed: ${error.message}`);
}
});
function validateFortuneRequest(body = {}) {
@@ -212,6 +290,39 @@ function validateFortuneRequest(body = {}) {
return null;
}
function requireKnowledgeReloadAuth(req, res, next) {
if (!KNOWLEDGE_RELOAD_AUTH_ENABLED) {
return next();
}
if (!KNOWLEDGE_ADMIN_TOKEN) {
return res.status(503).json({
success: false,
error: {
code: 'KNOWLEDGE_ADMIN_TOKEN_MISSING',
message:
'知识库重载鉴权已启用,但 KNOWLEDGE_ADMIN_TOKEN 未配置。请先在 .env 配置后重启服务。',
},
});
}
const tokenFromHeader = req.get('x-knowledge-token');
const tokenFromBearer = parseBearerToken(req.get('authorization'));
const token = tokenFromHeader || tokenFromBearer;
if (!token || token !== KNOWLEDGE_ADMIN_TOKEN) {
return res.status(401).json({
success: false,
error: {
code: 'KNOWLEDGE_RELOAD_FORBIDDEN',
message: '知识库重载接口鉴权失败。请提供正确的 X-Knowledge-Token。',
},
});
}
return next();
}
function buildSuanmingRequest(body) {
const type = body.type || 'bazi';
@@ -239,16 +350,54 @@ async function buildDeepseekInterpretation(body, rawSuanming) {
const baseResult = {
text: '',
warning: null,
warnings: [],
model: DEEPSEEK_MODEL,
time_anchor: null,
knowledge: {
enabled: KNOWLEDGE_ENABLED,
source_count: 0,
sources: [],
},
};
function addWarning(message) {
if (!message) return;
if (!baseResult.warning) {
baseResult.warning = message;
}
baseResult.warnings.push(message);
}
const yearPolicy = buildYearPolicy(body, rawSuanming);
const knowledgeContext = await buildKnowledgeContext(body, rawSuanming, yearPolicy);
baseResult.knowledge = {
enabled: knowledgeContext.enabled,
source_count: knowledgeContext.references.length,
sources: knowledgeContext.references,
};
if (knowledgeContext.warning) {
addWarning(knowledgeContext.warning);
}
baseResult.time_anchor = yearPolicy;
if (!DEEPSEEK_API_KEY) {
baseResult.warning = 'DeepSeek API Key 未配置,已跳过 AI 解读';
addWarning('DeepSeek API Key 未配置,已跳过 AI 解读');
baseResult.text =
'⚠️ DeepSeek API Key 未配置,无法生成 AI 解读。\n请在 .env 中设置 DEEPSEEK_API_KEY 后重试。';
return baseResult;
}
const rawSuanmingText = stringifyWithLimit(rawSuanming, RAW_SUANMING_PROMPT_LIMIT);
const knowledgePromptSection = knowledgeContext.text
? [
'',
'以下是从 Documents 知识库检索到的参考资料,请优先使用相关内容进行解释,避免逐字抄写:',
knowledgeContext.text,
].join('\n')
: '';
const prompt = [
`用户姓名: ${body.name}`,
`出生日期: ${body.birth_date} ${body.birth_time}`,
@@ -256,9 +405,13 @@ async function buildDeepseekInterpretation(body, rawSuanming) {
`是否农历: ${body.is_lunar ? '是' : '否'}`,
`用户问题: ${body.question || '无特定问题'}`,
`额外关注点: ${JSON.stringify(body.extra_options || {})}`,
`系统当前年份: ${yearPolicy.current_year}`,
`参考预测年份: ${yearPolicy.reference_year}`,
`年份依据: ${yearPolicy.mode}`,
'',
'以下是 suanming 系统返回的原始数据请结合命理知识给出通俗易懂且积极向上的解读最后请附上声明“以上内容由AI生成仅供参考。”',
JSON.stringify(rawSuanming, null, 2),
rawSuanmingText,
knowledgePromptSection,
].join('\n');
const payload = {
@@ -269,7 +422,7 @@ async function buildDeepseekInterpretation(body, rawSuanming) {
{
role: 'system',
content:
'你是一位经验丰富的命理大师,擅长把专业的八字分析转化为温暖、易懂且具有行动建议的文字。回答时保持积极、真诚,并提醒内容仅供参考。',
'你是一位经验丰富的命理大师,擅长把专业的八字分析转化为温暖、易懂且具有行动建议的文字。回答时保持积极、真诚,并提醒内容仅供参考。若提供了知识库片段,优先采用与用户问题相关的片段,不要编造出处。解读必须以 raw_suanming 为最高优先级;若知识库里出现与 raw_suanming 冲突的年份或体系(如星座年度文案),应忽略冲突内容,不要照搬。年度判断需先对齐“系统当前年份”和“参考预测年份”,除非用户明确指定年份,否则按参考预测年份及其后一年给出近期判断。',
},
{
role: 'user',
@@ -292,13 +445,273 @@ async function buildDeepseekInterpretation(body, rawSuanming) {
console.error('[deepseek] failed', error.message);
const errMsg =
error?.error?.message || error?.message || 'DeepSeek 调用失败';
baseResult.warning = `DeepSeek 调用失败:${errMsg}`;
addWarning(`DeepSeek 调用失败:${errMsg}`);
baseResult.text =
'⚠️ DeepSeek 调用失败,无法生成 AI 解读。请稍后重试或检查 API Key 配置。';
return baseResult;
}
}
async function buildKnowledgeContext(body, rawSuanming, yearPolicy) {
if (!KNOWLEDGE_ENABLED) {
return {
enabled: false,
text: '',
references: [],
warning: null,
};
}
try {
const queryText = buildKnowledgeQuery(body, rawSuanming);
const context = await knowledgeBase.buildContext(
queryText,
getKnowledgeSearchOptions(body, yearPolicy)
);
return {
enabled: true,
text: context.text,
references: context.references,
warning: context.references.length
? null
: '知识库未检索到相关内容,已使用默认提示词继续生成。',
};
} catch (error) {
console.error('[knowledge] build context failed', error.message);
return {
enabled: true,
text: '',
references: [],
warning: `知识库加载失败:${error.message}`,
};
}
}
function getKnowledgeSearchOptions(body = {}, yearPolicy = null) {
const type = body.type || 'bazi';
const questionText = buildQuestionText(body);
const zodiacIntent = isZodiacQuestion(questionText);
if (type === 'bazi' && !zodiacIntent) {
return {
excludeFiles: [ZODIAC_GUIDE_FILE],
preferredYear: yearPolicy?.reference_year,
};
}
if (type === 'bazi' && zodiacIntent) {
const yearMode = yearPolicy?.mode || 'current_year';
const enforceYear = yearMode !== 'user_specified';
return {
topK: Math.max(4, KNOWLEDGE_TOP_K),
maxContextChars: Math.max(5000, KNOWLEDGE_MAX_CONTEXT_CHARS),
preferredYear: yearPolicy?.reference_year,
dropMismatchedYears: enforceYear,
};
}
return {};
}
function buildQuestionText(body = {}) {
return [body.question || '', JSON.stringify(body.extra_options || {})].join(' ');
}
function isZodiacQuestion(text = '') {
const value = String(text).toLowerCase();
if (!value) return false;
const keywords = [
'星座',
'十二星座',
'太阳星座',
'月亮星座',
'上升星座',
'aries',
'taurus',
'gemini',
'cancer',
'leo',
'virgo',
'libra',
'scorpio',
'sagittarius',
'capricorn',
'aquarius',
'pisces',
'白羊',
'金牛',
'双子',
'巨蟹',
'狮子',
'处女',
'天秤',
'天蝎',
'射手',
'摩羯',
'水瓶',
'双鱼',
];
return keywords.some((keyword) => value.includes(keyword));
}
function buildYearPolicy(body = {}, rawSuanming = {}) {
const currentYear = new Date().getFullYear();
const explicitYear = extractExplicitYear(body.question);
const analysisYear = extractAnalysisYear(rawSuanming);
if (explicitYear) {
return {
current_year: currentYear,
reference_year: explicitYear,
mode: 'user_specified',
};
}
if (analysisYear) {
return {
current_year: currentYear,
reference_year: analysisYear,
mode: 'analysis_date',
};
}
return {
current_year: currentYear,
reference_year: currentYear,
mode: 'current_year',
};
}
function extractExplicitYear(text = '') {
const match = String(text).match(/(20\d{2})\s*年?/);
if (!match) return null;
const year = Number(match[1]);
if (!Number.isInteger(year) || year < 2000 || year > 2100) {
return null;
}
return year;
}
function extractAnalysisYear(rawSuanming = {}) {
const analysisDate =
rawSuanming?.data?.analysis?.analysis_date || rawSuanming?.analysis?.analysis_date;
if (analysisDate) {
const parsed = new Date(analysisDate);
if (!Number.isNaN(parsed.getTime())) {
return parsed.getFullYear();
}
}
const yearlyAnalysis =
rawSuanming?.data?.analysis?.dayun_analysis?.detailed_yearly_analysis ||
rawSuanming?.analysis?.dayun_analysis?.detailed_yearly_analysis ||
[];
if (Array.isArray(yearlyAnalysis) && yearlyAnalysis.length) {
const firstYear = Number(yearlyAnalysis[0]?.year);
if (Number.isInteger(firstYear) && firstYear > 1900) {
return firstYear;
}
}
return null;
}
function buildKnowledgeQuery(body, rawSuanming) {
const rawPreview = stringifyWithLimit(rawSuanming, 1600);
return [
body.type || 'bazi',
body.question || '',
JSON.stringify(body.extra_options || {}),
body.gender || '',
rawPreview,
].join(' ');
}
function stringifyWithLimit(input, maxChars) {
const serialized = JSON.stringify(input, null, 2);
if (!serialized) return '';
if (!Number.isFinite(maxChars) || maxChars <= 0 || serialized.length <= maxChars) {
return serialized;
}
return `${serialized.slice(0, maxChars)}\n...(原始数据过长,已截断)`;
}
function mergeWarnings(result = {}) {
if (Array.isArray(result.warnings) && result.warnings.length) {
return [...new Set(result.warnings.filter(Boolean))];
}
if (result.warning) {
return [result.warning];
}
return [];
}
function buildCorsOptions() {
const allowedOrigins = CORS_ALLOWED_ORIGINS;
return {
origin(origin, callback) {
if (!origin) {
return callback(null, true);
}
if (!allowedOrigins.length) {
return callback(null, false);
}
const normalizedOrigin = normalizeOrigin(origin);
const allowed = allowedOrigins.includes(normalizedOrigin);
return callback(null, allowed);
},
methods: ['GET', 'POST', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization', 'X-Knowledge-Token'],
};
}
function parseBearerToken(value = '') {
const match = String(value).match(/^bearer\s+(.+)$/i);
return match ? match[1].trim() : '';
}
function parseCsvEnv(value = '') {
return String(value)
.split(',')
.map((item) => normalizeOrigin(item))
.filter(Boolean);
}
function normalizeOrigin(value = '') {
return String(value).trim().replace(/\/+$/, '');
}
function parseBoolean(value, defaultValue) {
if (value === undefined || value === null || value === '') {
return defaultValue;
}
const normalized = String(value).trim().toLowerCase();
if (['1', 'true', 'yes', 'on'].includes(normalized)) {
return true;
}
if (['0', 'false', 'no', 'off'].includes(normalized)) {
return false;
}
return defaultValue;
}
function deriveErrorCode(error) {
if (error.code === 'ECONNABORTED') return 'UPSTREAM_TIMEOUT';
if (error.response?.status === 404) return 'ENDPOINT_NOT_FOUND';