Spaces:
Running
Running
Download knowledge_enhanced_interpreter.py from sisithefox/astrology-ziwei-api: direct link, hf CLI and curl.
- Browser
- Download file 54.2 kB
-
https://huggingface.co/spaces/sisithefox/astrology-ziwei-api/resolve/main/knowledge_enhanced_interpreter.py
- Command line
-
hf download hf://spaces/sisithefox/astrology-ziwei-api/knowledge_enhanced_interpreter.py
-
curl -L -o knowledge_enhanced_interpreter.py https://huggingface.co/spaces/sisithefox/astrology-ziwei-api/resolve/main/knowledge_enhanced_interpreter.py
54.2 kB
"""
知识库增强型AI解读引擎 v4.0
Knowledge-Enhanced AI Interpretation Engine
基于今日建成的紫微斗数知识库(772KB,5大核心模块)
Powered by comprehensive Ziwei Doushu knowledge base (772KB, 5 core modules)
v4.0 新增功能:
- 巴纳姆冷读效果:温暖有共鸣的解读语言
- 六亲分析:父母/兄弟/夫妻/子女运批断
- 10步批命流程:标准化解读流程
- 福德宫核心秘诀:夫妻死别判断
知识库路径:
- 主星特性: /agent-knowledge/mingli-knowledge/eastern/ziwei/foundations/01-main-stars.md
- 十二宫位: /agent-knowledge/mingli-knowledge/eastern/ziwei/foundations/02-twelve-palaces.md
- 四化理论: /agent-knowledge/mingli-knowledge/eastern/ziwei/foundations/03-four-transformations.md
- 流年大运: /agent-knowledge/mingli-knowledge/eastern/ziwei/timing/01-annual-fortune.md
- 实战断诀: /agent-knowledge/mingli-knowledge/eastern/ziwei/interpretations/01-practical-divination.md
- 批命方法论: /agent-knowledge/mingli-knowledge/eastern/ziwei/interpretations/00-reading-methodology.md
- 六亲批断: /agent-knowledge/mingli-knowledge/eastern/ziwei/interpretations/00-six-relations.md
Created: 2025-12-12
Updated: 2026-02-03 (v4.0 巴纳姆+六亲+批命流程)
Author: Sisi 🦊 (紫微知识库管理员 + AI引擎架构师)
"""
from typing import Dict, List, Any, Optional
from sihua_data import PALACE_ENGLISH
from palace_strength import calculate_all_palaces_strength, calculate_palace_strength
from star_brightness_table import enhance_star_with_brightness, get_palace_brightness_summary
from san_fang_si_zheng_analyzer import analyze_san_fang_si_zheng, analyze_all_san_fang_si_zheng
from geju_matcher import GejuMatcher, MATCHER_VERSION
from star_combination_matcher import StarCombinationMatcher # v3.8: 星曜组合断语引擎
# v4.0 新增模块 - 使用延迟导入减少启动内存占用
# from barnum_cold_reader import BarnumColdReader, get_barnum_reader
# from methodology_loader import MethodologyLoader, get_methodology_loader
# from six_relations_interpreter import SixRelationsInterpreter, get_six_relations_interpreter
# from reading_methodology import ReadingMethodologyEngine, get_reading_engine
class KnowledgeEnhancedInterpreter:
"""知识库增强型AI解读器 - 基于772KB专业知识库 + v4.0巴纳姆效果"""
def __init__(self):
"""初始化增强型解读器"""
# v3.7: 初始化格局匹配器
self.geju_matcher = GejuMatcher()
# v3.8: 初始化星曜组合断语匹配器
self.star_combination_matcher = StarCombinationMatcher()
# v4.0 新增: 延迟初始化(减少启动内存占用)
self._barnum_reader = None
self._methodology_loader = None
self._six_relations_interpreter = None
self._reading_engine = None
# 初始化知识库数据(修复:调用被遗忘的初始化方法)
self.__init_v4_modules()
def __init_v4_modules(self):
"""v4.0: 初始化模块数据"""
# 十天干四化表(THE CORE!)- 从知识库提取
self.TIANGAN_SIHUA = {
'甲': {'禄': '廉贞', '权': '破军', '科': '武曲', '忌': '太阳'},
'乙': {'禄': '天机', '权': '天梁', '科': '紫微', '忌': '太阴'},
'丙': {'禄': '天同', '权': '天机', '科': '文昌', '忌': '廉贞'},
'丁': {'禄': '太阴', '权': '天同', '科': '天机', '忌': '巨门'},
'戊': {'禄': '贪狼', '权': '太阴', '科': '右弼', '忌': '天机'},
'己': {'禄': '武曲', '权': '贪狼', '科': '天梁', '忌': '文曲'},
'庚': {'禄': '太阳', '权': '武曲', '科': '天府', '忌': '天同'},
'辛': {'禄': '巨门', '权': '太阳', '科': '文曲', '忌': '文昌'},
'壬': {'禄': '天梁', '权': '紫微', '科': '左辅', '忌': '武曲'},
'癸': {'禄': '破军', '权': '巨门', '科': '太阴', '忌': '贪狼'}
}
# 主星基本特性(从01-main-stars.md提取)
self.MAIN_STAR_TRAITS = {
'紫微': {
'五行': '己阴土',
'化气': '尊贵',
'特质': '帝王星,领导力强,尊贵有气度',
'事业': '适合管理、政治、高层领导',
'性格': '自尊心强,喜欢掌权,有责任感'
},
'天机': {
'五行': '乙阴木',
'化气': '善',
'特质': '智慧星,机智聪明,善于策划',
'事业': '适合教育、咨询、策划、技术',
'性格': '心思细腻,反应快,喜欢思考'
},
'太阳': {
'五行': '丙阳火',
'化气': '贵',
'特质': '光明星,热情大方,爱面子',
'事业': '适合外交、公关、管理、服务业',
'性格': '热情开朗,重视名声,乐于助人'
},
'武曲': {
'五行': '辛阴金',
'化气': '财',
'特质': '财星,刚毅果断,理财能力强',
'事业': '适合金融、财务、工程、武职',
'性格': '务实稳重,意志坚定,重视物质'
},
'天同': {
'五行': '壬阳水',
'化气': '福',
'特质': '福星,温和慈善,享受生活',
'事业': '适合服务业、文艺、娱乐',
'性格': '随和乐观,不喜竞争,享受安逸'
},
'廉贞': {
'五行': '丁阴火',
'化气': '囚',
'特质': '次桃花星,灵活多变,善社交',
'事业': '适合公关、演艺、设计、外交',
'性格': '热情主动,交际广泛,感情丰富'
},
'天府': {
'五行': '戊阳土',
'化气': '令',
'特质': '财库星,保守稳健,善于积累',
'事业': '适合管理、财务、行政',
'性格': '谨慎务实,重视安全,善于守成'
},
'太阴': {
'五行': '癸阴水',
'化气': '富',
'特质': '财星,温柔细腻,重视内涵',
'事业': '适合教育、文化、艺术、服务',
'性格': '温和内敛,心思细密,重情重义'
},
'贪狼': {
'五行': '甲阳木',
'化气': '桃花',
'特质': '桃花星,多才多艺,欲望强烈',
'事业': '适合娱乐、销售、艺术、交际',
'性格': '积极进取,爱好广泛,社交能力强'
},
'巨门': {
'五行': '癸阴水',
'化气': '暗',
'特质': '是非星,口才好,易招口舌',
'事业': '适合法律、传媒、教师、咨询',
'性格': '善于表达,直言不讳,易得罪人'
},
'天相': {
'五行': '壬阳水',
'化气': '印',
'特质': '印星,忠诚可靠,协调能力强',
'事业': '适合行政、服务、辅助性工作',
'性格': '诚实守信,重视外表,善于调和'
},
'天梁': {
'五行': '戊阳土',
'化气': '荫',
'特质': '贵人星,清高正直,喜助人',
'事业': '适合医疗、慈善、教育、宗教',
'性格': '正直善良,喜欢助人,清高自持'
},
'七杀': {
'五行': '庚阳金',
'化气': '杀',
'特质': '将星,果断勇敢,独立性强',
'事业': '适合军警、竞争性行业、开创',
'性格': '刚毅果断,独来独往,不服输'
},
'破军': {
'五行': '癸阴水',
'化气': '耗',
'特质': '先锋星,开创变革,破旧立新,不畏艰难',
'事业': '适合军警、探险、改革、投机、开拓性行业',
'性格': '冲劲十足,不惧挑战,敢于推翻重来,喜新厌旧'
}
}
# 十二宫位核心意义(从02-twelve-palaces.md提取)
self.PALACE_MEANINGS = {
'命宫': {
'代表': '一生格局、性格特质、外在表现',
'三方四正': ['官禄宫', '财帛宫', '迁移宫'],
'重要性': '特别重要',
'判断要点': '命宫强弱决定一生成就高低'
},
'兄弟宫': {
'代表': '兄弟姐妹、同事关系、合伙运',
'三方四正': ['仆役宫', '疾厄宫', '田宅宫'],
'重要性': '较重要',
'判断要点': '看与兄弟朋友的缘分和帮助'
},
'夫妻宫': {
'代表': '配偶状况、婚姻关系、恋爱运',
'三方四正': ['福德宫', '官禄宫', '迁移宫'],
'重要性': '特别重要',
'判断要点': '配偶条件、婚姻幸福度'
},
'子女宫': {
'代表': '子女状况、生育能力、性生活',
'三方四正': ['田宅宫', '仆役宫', '疾厄宫'],
'重要性': '较重要',
'判断要点': '子女数量质量、性欲强弱'
},
'财帛宫': {
'代表': '财运状况、赚钱能力、理财观',
'三方四正': ['命宫', '福德宫', '官禄宫'],
'重要性': '特别重要',
'判断要点': '财运好坏、赚钱方式'
},
'疾厄宫': {
'代表': '身体健康、疾病倾向、体质',
'三方四正': ['兄弟宫', '田宅宫', '子女宫'],
'重要性': '重要',
'判断要点': '健康状况、易患疾病'
},
'迁移宫': {
'代表': '外出运、人际关系、社会评价',
'三方四正': ['命宫', '夫妻宫', '福德宫'],
'重要性': '特别重要',
'判断要点': '外出发展、社交能力、外部机遇'
},
'仆役宫': {
'代表': '朋友关系、下属状况、社交圈',
'三方四正': ['兄弟宫', '子女宫', '田宅宫'],
'重要性': '较重要',
'判断要点': '朋友质量、得到帮助'
},
'官禄宫': {
'代表': '事业成就、工作状况、社会地位',
'三方四正': ['命宫', '财帛宫', '夫妻宫'],
'重要性': '特别重要',
'判断要点': '事业发展、工作稳定性'
},
'田宅宫': {
'代表': '不动产、家庭环境、居住状况',
'三方四正': ['兄弟宫', '疾厄宫', '子女宫'],
'重要性': '重要',
'判断要点': '房产运、家庭和睦'
},
'福德宫': {
'代表': '精神享受、福气厚薄、兴趣爱好',
'三方四正': ['财帛宫', '夫妻宫', '迁移宫'],
'重要性': '特别重要',
'判断要点': '福气深浅、精神状态'
},
'父母宫': {
'代表': '父母状况、长辈关系、读书运',
'三方四正': ['官禄宫', '福德宫', '迁移宫'],
'重要性': '重要',
'判断要点': '父母缘分、学业成绩'
}
}
# 四化判断优先级(从03-four-transformations.md提取)
self.SIHUA_PRIORITY = {
'本命盘': 0.4, # 40% - 基础命格
'大限盘': 0.3, # 30% - 10年大势
'流年盘': 0.2, # 20% - 当年运势
'流月日': 0.1 # 10% - 短期波动
}
# v4.0: 延迟加载属性
@property
def barnum_reader(self):
"""延迟加载巴纳姆冷读引擎"""
if self._barnum_reader is None:
from barnum_cold_reader import get_barnum_reader
self._barnum_reader = get_barnum_reader()
return self._barnum_reader
@property
def methodology_loader(self):
"""延迟加载知识库加载器"""
if self._methodology_loader is None:
from methodology_loader import get_methodology_loader
self._methodology_loader = get_methodology_loader()
return self._methodology_loader
@property
def six_relations_interpreter(self):
"""延迟加载六亲解读器"""
if self._six_relations_interpreter is None:
from six_relations_interpreter import get_six_relations_interpreter
self._six_relations_interpreter = get_six_relations_interpreter()
return self._six_relations_interpreter
@property
def reading_engine(self):
"""延迟加载批命流程引擎"""
if self._reading_engine is None:
from reading_methodology import get_reading_engine
self._reading_engine = get_reading_engine()
return self._reading_engine
def interpret_full_chart_enhanced(
self,
sihua_analysis: dict,
chart_data: dict
) -> dict:
"""
增强版完整命盘解读 - 基于知识库
Args:
sihua_analysis: 四化分析结果
chart_data: 原始命盘数据
Returns:
dict: 增强版AI解读结果
"""
year_sihua = sihua_analysis.get('year_sihua', {})
overall_judgment = sihua_analysis.get('overall_judgment', {})
# 0. 提取宫位数据(用于后续分析)
palaces = chart_data.get('palaces', [])
# NEW: 计算所有宫位的强弱评分 (P0-2核心功能!)
palace_strength_analysis = calculate_all_palaces_strength(
palaces,
sihua_analysis
)
# NEW v3.6: 计算所有宫位的三方四正分析 (P1核心功能!)
san_fang_analysis = analyze_all_san_fang_si_zheng(
palaces,
sihua_analysis
)
# NEW v3.7: 格局识别(P1核心功能!)
# 获取出生年干(用于格局匹配)
birth_year_stem = (chart_data.get('year_stem')
or chart_data.get('chart', {}).get('year_heavenly_stem'))
# The Node adapter stores the clock in solar_date/birth_info, not a root hour field.
birth_time = (chart_data.get('birth_info', {}).get('time')
or chart_data.get('solar_date', '').split(' ')[-1])
try:
pattern_birth_hour = int(birth_time.split(':')[0]) if ':' in birth_time else None
if pattern_birth_hour is not None and not 0 <= pattern_birth_hour <= 23:
pattern_birth_hour = None
except (TypeError, ValueError):
pattern_birth_hour = None
# 匹配所有格局
matched_patterns = self.geju_matcher.match_all_patterns(
palaces,
birth_year_stem,
pattern_birth_hour
)
# 生成格局总结
pattern_summary = self.geju_matcher.get_pattern_summary(matched_patterns)
birth_hour = pattern_birth_hour
# NEW v3.8: 星曜组合断语匹配(P1完成!)
# v3.14.0升级:添加宏观格局分析(紫微孤君+日月反背+星系类型)
star_combination_result = self.star_combination_matcher.match_all_combinations(
palaces,
birth_hour # v3.14.0新增:传递出生时辰
)
# 1. 生成命盘核心特质(基于主星)
core_traits = self._analyze_core_traits(chart_data)
# 2. 生成宫位详细分析(融合知识库 + 宫位评分 + 三方四正)
palace_analysis = self._analyze_palaces_with_knowledge(
chart_data,
year_sihua,
palace_strength_analysis, # v3.5: 传入宫位评分
san_fang_analysis # v3.6: 传入三方四正分析
)
# 3. 生成四化深度解读(基于理论)
sihua_deep_analysis = self._analyze_sihua_with_theory(year_sihua)
# 4. 生成整体运势(知识库增强)
life_overview = self._generate_enhanced_life_overview(
overall_judgment,
core_traits
)
# 5. 生成实战建议(基于南北派断诀)
practical_advice = self._generate_practical_advice(
year_sihua,
chart_data,
core_traits
)
# 6. 生成优势与挑战(知识库版本)
strengths_challenges = self._analyze_strengths_challenges_enhanced(
year_sihua,
palace_analysis
)
# ========== v4.0 可选功能:巴纳姆增强 + 六亲分析 + 10步批命 ==========
# 使用静默失败模式,不影响核心功能
v4_features = {}
try:
# 延迟加载v4.0模块(减少启动内存占用)
if self._barnum_reader is None:
from barnum_cold_reader import get_barnum_reader
self._barnum_reader = get_barnum_reader()
if self._six_relations_interpreter is None:
from six_relations_interpreter import get_six_relations_interpreter
self._six_relations_interpreter = get_six_relations_interpreter()
if self._reading_engine is None:
from reading_methodology import get_reading_engine
self._reading_engine = get_reading_engine()
# 1. 六亲分析(基于86个批断技巧)
gender = chart_data.get('gender', '男')
six_relations_result = self._six_relations_interpreter.analyze_all_relations(
palaces,
sihua_analysis,
gender
)
v4_features['six_relations_analysis'] = six_relations_result
# 2. 10步批命流程(可选,较重)
# 用户可以通过API参数决定是否执行
if chart_data.get('enable_ten_step_reading', False):
ten_step_result = self._reading_engine.execute_ten_step_reading(chart_data)
v4_features['ten_step_reading'] = ten_step_result
# 3. 巴纳姆温暖描述(轻量级增强)
# 为palace_analysis添加巴纳姆增强版本
if hasattr(self, '_barnum_reader') and palace_analysis:
v4_features['barnum_enhanced_palaces'] = []
for palace in palace_analysis[:3]: # 仅增强前3个重要宫位(命宫/财帛/官禄)
palace_name = palace.get('palace_name', '')
interpretation = palace.get('interpretation', '')
if interpretation:
barnum_result = self._barnum_reader.apply_barnum_effect(
interpretation,
palace_name=palace_name
)
v4_features['barnum_enhanced_palaces'].append({
'palace_name': palace_name,
'original': interpretation,
'enhanced': barnum_result.get('enhanced', '')
})
except Exception as e:
# 静默失败,记录错误但不影响核心功能
v4_features['v4_error'] = f'v4.0 features partially failed: {str(e)}'
# ========== 返回结果(含v4.0可选功能) ==========
result = {
'core_traits': core_traits, # NEW: 命盘核心特质
'palace_analysis': palace_analysis, # NEW: 宫位详细分析(含强弱评分)
'palace_strength_summary': palace_strength_analysis['summary'], # NEW v3.5: 宫位强弱总结
'pattern_recognition': { # NEW v3.7: 格局识别 ⭐
'matcher_version': MATCHER_VERSION,
'calculation_mode': 'deterministic_rules',
'matched_patterns': matched_patterns, # 匹配到的所有格局
'pattern_summary': pattern_summary, # 格局总结
'pattern_count': len(matched_patterns), # 格局数量
'highest_score': pattern_summary.get('highest_score', 0), # 最高分格局
'overall_quality': pattern_summary.get('overall_quality', 'unknown') # 整体质量
},
'star_combinations': { # NEW v3.8: 星曜组合断语 ⭐⭐ | v3.14: 宏观格局分析 🌟
'matched_rules': star_combination_result['matched_rules'], # 匹配到的所有组合规则
'summary': star_combination_result['summary'], # 组合总结(含评分、分类统计)
'interpretations_by_category': star_combination_result['interpretations_by_category'], # 按分类整理的断语
'total_matched': star_combination_result['total_matched'], # 匹配数量
'total_rules_checked': star_combination_result['total_rules_checked'], # 检查的总规则数
'macro_patterns': star_combination_result.get('macro_patterns', {}) # v3.14.0新增:宏观格局分析
},
'sihua_deep_analysis': sihua_deep_analysis, # ENHANCED: 四化深度解读
'life_overview': life_overview, # ENHANCED: 整体运势
'practical_advice': practical_advice, # NEW: 实战建议
'strengths_challenges': strengths_challenges, # ENHANCED: 优势挑战
'interpretation_quality': 'knowledge_enhanced_v4.0_with_barnum_sixrelations', # 升级到v4.0
'knowledge_base_version': '2026-02-03', # 更新到v4.0发布日期
'knowledge_modules_used': [
'01-main-stars.md',
'02-twelve-palaces.md',
'03-four-transformations.md',
'01-practical-divination.md',
'star_brightness_table.py', # v3.5: 星曜庙旺陷表
'palace_strength.py', # v3.5: 宫位强弱评分系统
'san_fang_si_zheng_analyzer.py', # v3.6: 三方四正分析引擎
'geju_patterns.py', # v3.7: 格局规则库(15个经典格局)
'geju_matcher.py', # v3.7: 格局匹配引擎
'star_combination_rules.py', # v3.8: 星曜组合规则库(19条核心规则)
'star_combination_matcher.py', # v3.8: 星曜组合匹配引擎
# v4.0 新增模块
'barnum_cold_reader.py', # v4.0: 巴纳姆冷读引擎
'six_relations_interpreter.py', # v4.0: 六亲解读器(86个技巧)
'reading_methodology.py' # v4.0: 10步批命流程引擎
]
}
# 合并v4.0功能(如果存在)
if v4_features:
result['v4_features'] = v4_features
return result
def _analyze_core_traits(self, chart_data: dict) -> dict:
"""
分析命盘核心特质(基于主星知识库)
从 chart_data 中提取命宫主星,查 MAIN_STAR_TRAITS 字典生成分析
Returns:
dict: 核心特质分析
"""
# 从 palaces 中找到命宫
palaces = chart_data.get('palaces', [])
ming_palace_stars = []
ming_palace = None
for palace in palaces:
if palace.get('name') == '命宫':
ming_palace = palace
break
# 提取命宫主星名称
if ming_palace:
for star in ming_palace.get('major_stars', []):
star_name = star.get('name', '') if isinstance(star, dict) else star
if star_name:
ming_palace_stars.append(star_name)
# 从 MAIN_STAR_TRAITS 查询特质
personalities = []
careers = []
traits_detail = []
for star_name in ming_palace_stars:
star_traits = self.MAIN_STAR_TRAITS.get(star_name, {})
if star_traits:
personalities.append(star_traits.get('性格', ''))
careers.append(star_traits.get('事业', ''))
traits_detail.append({
'star': star_name,
'wuxing': star_traits.get('五行', ''),
'huaqi': star_traits.get('化气', ''),
'trait': star_traits.get('特质', ''),
'career': star_traits.get('事业', ''),
'personality': star_traits.get('性格', '')
})
# 组合输出
personality_summary = '、'.join(filter(None, personalities)) if personalities else '命宫无主星,性格受辅星和三方四正影响'
career_tendency = '、'.join(filter(None, careers)) if careers else '事业方向受三方四正主星影响'
# 判断格局等级
fortune_level = 'medium'
if len(ming_palace_stars) >= 2:
fortune_level = 'high' # 双星坐命格局较高
elif len(ming_palace_stars) == 0:
fortune_level = 'special' # 空宫需看三方四正借星
traits = {
'primary_stars': ming_palace_stars,
'personality_summary': personality_summary,
'career_tendency': career_tendency,
'fortune_level': fortune_level,
'traits_detail': traits_detail
}
return traits
def _analyze_palaces_with_knowledge(
self,
chart_data: dict,
year_sihua: dict,
palace_strength_analysis: dict = None,
san_fang_analysis: List[dict] = None
) -> List[dict]:
"""
融合知识库的宫位分析(含强弱评分 + 三方四正)
Args:
chart_data: 命盘数据
year_sihua: 年干四化
palace_strength_analysis: 宫位强弱评分结果(v3.5)
san_fang_analysis: 三方四正分析结果(v3.6 NEW!)
Returns:
list: 各宫位详细分析
"""
palace_analyses = []
palaces = chart_data.get('palaces', [])
# 创建宫位名称到强弱评分的映射
strength_map = {}
if palace_strength_analysis and 'palaces' in palace_strength_analysis:
for palace_strength in palace_strength_analysis['palaces']:
palace_name = palace_strength['name']
strength_map[palace_name] = palace_strength['strength']
# 创建宫位名称到三方四正分析的映射(v3.6 NEW!)
san_fang_map = {}
if san_fang_analysis:
for san_fang in san_fang_analysis:
palace_name = san_fang.get('palace', '')
san_fang_map[palace_name] = san_fang
for palace_name, palace_info in self.PALACE_MEANINGS.items():
# 从chart_data中找到对应的宫位数据
palace_data = next((p for p in palaces if p.get('name') == palace_name), None)
# 获取该宫位的强弱评分
strength_info = strength_map.get(palace_name, {})
# 获取该宫位的三方四正分析(v3.6 NEW!)
san_fang_info = san_fang_map.get(palace_name, {})
# 提取星曜信息
stars_list = []
if palace_data:
major_stars = palace_data.get('major_stars', [])
minor_stars = palace_data.get('minor_stars', [])
for star in major_stars:
star_name = star.get('name', '') if isinstance(star, dict) else star
stars_list.append(star_name)
# 提取四化信息
transformations = []
for sihua_type, data in year_sihua.items():
if data.get('palace') == palace_name:
transformations.append({
'type': sihua_type,
'star': data.get('star'),
'emoji': self._get_sihua_emoji(sihua_type)
})
# 判断整体质量(基于强弱评分)
overall_quality = '待评估'
if strength_info:
rank = strength_info.get('rank', 'C')
if rank in ['A+', 'A']:
overall_quality = '极佳'
elif rank in ['B+', 'B']:
overall_quality = '良好'
elif rank in ['C+', 'C']:
overall_quality = '一般'
else:
overall_quality = '需改善'
analysis = {
'palace': palace_name,
'english_name': PALACE_ENGLISH.get(palace_name, palace_name),
'represents': palace_info['代表'],
'importance': palace_info['重要性'],
'judgment_points': palace_info['判断要点'],
'san_fang_si_zheng': palace_info['三方四正'],
'stars': stars_list, # NEW: 实际星曜列表
'transformations': transformations, # NEW: 四化列表
'overall_quality': overall_quality, # NEW: 整体质量
'strength': strength_info, # v3.5: 宫位强弱评分详情
'san_fang_analysis': san_fang_info # v3.6 NEW: 三方四正详细分析
}
palace_analyses.append(analysis)
return palace_analyses
def _get_sihua_emoji(self, sihua_type: str) -> str:
"""获取四化emoji"""
emoji_map = {
'化禄': '💰',
'化权': '👑',
'化科': '📜',
'化忌': '⚠️'
}
return emoji_map.get(sihua_type, '')
def _analyze_sihua_with_theory(self, year_sihua: dict) -> dict:
"""
基于四化理论的深度分析
Returns:
dict: 四化深度分析
"""
analysis = {
'theory_basis': '十天干四化表(易经理论基础)',
'sihua_interactions': [], # 四化间的互动关系
'critical_transformations': [], # 关键四化
'suggestions': [] # 基于理论的建议
}
# 分析四化间的互动
if '化禄' in year_sihua and '化忌' in year_sihua:
hualu_palace = year_sihua['化禄'].get('palace')
huaji_palace = year_sihua['化忌'].get('palace')
analysis['sihua_interactions'].append({
'type': '禄忌对冲',
'description': f'化禄在{hualu_palace},化忌在{huaji_palace}',
'interpretation': '有得有失,需要平衡发展,把握机会同时规避风险'
})
return analysis
def _generate_enhanced_life_overview(
self,
overall_judgment: dict,
core_traits: dict
) -> dict:
"""
生成知识库增强的整体运势
Returns:
dict: 增强版运势概述
"""
total_score = overall_judgment.get('total_score', 0)
# 使用更温暖、专业的语言(符合思思的风格)
if total_score >= 30:
fortune_level = '上上吉'
emoji = '✨'
summary = '您的命盘格局优秀,一生多贵人相助,事业财运俱佳。建议把握机会,积极进取,可有大成就。'
tone = 'very_positive'
elif total_score >= 15:
fortune_level = '上吉'
emoji = '🌟'
summary = '您的命盘配置良好,整体运势不错。只要努力奋斗,把握时机,定能成就一番事业。'
tone = 'positive'
elif total_score >= 0:
fortune_level = '中吉'
emoji = '🌤️'
summary = '您的命盘平稳中带有机遇。需要主动把握机会,谨慎处理挑战,稳健发展可趋吉避凶。'
tone = 'balanced'
elif total_score >= -15:
fortune_level = '平'
emoji = '⚖️'
summary = '您的命盘有些挑战,但也有转机。建议修身养性,积极化解不利因素,保持乐观心态。'
tone = 'cautious'
else:
fortune_level = '需化解'
emoji = '🔔'
summary = '您的命盘存在一些挑战。建议多行善事,提升自身修养,化解不利因素。记住:命运掌握在自己手中。'
tone = 'supportive'
return {
'fortune_level': fortune_level,
'emoji': emoji,
'total_score': total_score,
'summary': summary,
'tone': tone,
'sisi_note': '💕 思思提示:紫微斗数仅供参考,积极行动比算命更重要!',
'knowledge_enhanced': True
}
def _generate_practical_advice(
self,
year_sihua: dict,
chart_data: dict,
core_traits: dict
) -> dict:
"""
生成基于南北派断诀的实战建议
Returns:
dict: 实战建议
"""
advice_items = []
# 基于四化生成具体建议
for sihua_type, data in year_sihua.items():
palace = data.get('palace')
star = data.get('star')
# TODO: 从01-practical-divination.md提取对应断语
# 目前先用模板
if sihua_type == '化禄':
advice_items.append({
'category': '财运机遇',
'priority': 'high',
'palace': palace,
'advice': f'{star}化禄在{palace},这是您的财运和喜事来源。建议重点发展{palace}相关事务。',
'action_items': [
f'积极把握{palace}方面的机会',
'主动出击,不要被动等待',
'这是您的优势领域,可以大胆尝试'
]
})
elif sihua_type == '化忌':
advice_items.append({
'category': '风险规避',
'priority': 'critical',
'palace': palace,
'advice': f'{star}化忌在{palace},需要特别注意该领域。建议谨慎处理,避免冲动。',
'action_items': [
f'谨慎处理{palace}相关事务',
'避免重大决策和投资',
'多听取他人建议,不要一意孤行'
]
})
return {
'specific_advice': advice_items,
'overall_strategy': '综合分析命盘优势和挑战,扬长避短,趋吉避凶',
'sisi_reminder': '记住:命运70%靠自己,30%靠天意。积极行动最重要!',
'knowledge_source': '基于南北派断诀(138页实战经验)'
}
def _analyze_strengths_challenges_enhanced(
self,
year_sihua: dict,
palace_analysis: List[dict]
) -> dict:
"""
知识库增强的优势挑战分析
Returns:
dict: 优势挑战详细分析
"""
strengths = []
challenges = []
# 基于四化分析优势和挑战
for sihua_type, data in year_sihua.items():
palace = data.get('palace')
star = data.get('star')
score = data.get('impact_score', 0)
if sihua_type in ['化禄', '化权', '化科']:
strength = {
'type': sihua_type,
'palace': palace,
'star': star,
'description': self._get_knowledge_based_strength(sihua_type, palace, star),
'score': score,
'action_suggestion': self._get_strength_action(sihua_type, palace)
}
strengths.append(strength)
elif sihua_type == '化忌':
challenge = {
'type': sihua_type,
'palace': palace,
'star': star,
'description': self._get_knowledge_based_challenge(palace, star),
'severity': self._get_challenge_severity_enhanced(score),
'score': score,
'solution': self._get_challenge_solution(palace)
}
challenges.append(challenge)
return {
'strengths': strengths,
'challenges': challenges,
'balance_analysis': {
'strength_count': len(strengths),
'challenge_count': len(challenges),
'overall_balance': self._calculate_balance_score(strengths, challenges),
'recommendation': self._get_balance_recommendation(strengths, challenges)
},
'knowledge_enhanced': True
}
def _get_knowledge_based_strength(self, sihua_type: str, palace: str, star: str) -> str:
"""基于知识库的优势描述"""
# 融合主星特性和宫位意义
star_trait = self.MAIN_STAR_TRAITS.get(star, {}).get('特质', '')
base_descriptions = {
'化禄': f'{star}{star_trait},在{palace}化禄,财运亨通,喜事连连',
'化权': f'{star}{star_trait},在{palace}化权,掌握主导权,能力突出',
'化科': f'{star}{star_trait},在{palace}化科,名声显扬,贵人相助'
}
return base_descriptions.get(sihua_type, f'{palace}运势良好')
def _get_knowledge_based_challenge(self, palace: str, star: str) -> str:
"""基于知识库的挑战描述"""
palace_meaning = self.PALACE_MEANINGS.get(palace, {}).get('代表', palace)
return f'{star}化忌在{palace}({palace_meaning}),需要特别注意该领域,谨慎处理可化解'
def _get_strength_action(self, sihua_type: str, palace: str) -> str:
"""获取优势的行动建议"""
actions = {
'化禄': f'积极把握{palace}方面的机会,这是您的财运来源',
'化权': f'在{palace}方面主动出击,建立自己的影响力',
'化科': f'注重{palace}的文化修养和名声积累,多结识贵人'
}
return actions.get(sihua_type, f'善用{palace}的优势')
def _get_challenge_solution(self, palace: str) -> str:
"""获取挑战的解决方案"""
solutions = {
'命宫': '修身养性,提升自我,化解人生挑战',
'财帛宫': '谨慎理财,避免贪心,稳健投资',
'夫妻宫': '用心经营感情,多沟通理解,避免冲动',
'官禄宫': '踏实工作,提升能力,避免盲目跳槽',
'疾厄宫': '注意健康,预防疾病,保持良好生活习惯'
}
return solutions.get(palace, f'谨慎处理{palace}事务,化险为夷')
def _get_challenge_severity_enhanced(self, score: int) -> dict:
"""增强版挑战严重度评估"""
if score <= -25:
return {'level': '严重', 'color': 'red', 'priority': 'urgent'}
elif score <= -15:
return {'level': '中等', 'color': 'orange', 'priority': 'important'}
else:
return {'level': '较轻', 'color': 'yellow', 'priority': 'normal'}
def _calculate_balance_score(self, strengths: List, challenges: List) -> int:
"""计算平衡分数"""
strength_total = sum(s['score'] for s in strengths)
challenge_total = sum(c['score'] for c in challenges)
return strength_total + challenge_total
def _get_balance_recommendation(self, strengths: List, challenges: List) -> str:
"""获取平衡建议"""
balance_score = self._calculate_balance_score(strengths, challenges)
if balance_score >= 20:
return '整体优势明显,积极进取可大有作为'
elif balance_score >= 0:
return '优势和挑战并存,需要扬长避短,稳健发展'
else:
return '挑战较大,需要谨慎应对,化解不利因素'
def generate_summary_text_enhanced(self, interpretation: dict) -> str:
"""
生成增强版文字总结
Args:
interpretation: 增强版解读结果
Returns:
str: 文字总结
"""
overview = interpretation.get('life_overview', {})
core_traits = interpretation.get('core_traits', {})
strengths_challenges = interpretation.get('strengths_challenges', {})
practical_advice = interpretation.get('practical_advice', {})
summary_parts = []
# 品牌标识
summary_parts.append("【天機玄鑑 · 紫微斗数AI解读】")
summary_parts.append(f"知识库版本: {interpretation.get('knowledge_base_version', '2025-12-12')}")
summary_parts.append("")
# 整体运势
summary_parts.append(f"【整体运势】{overview.get('emoji', '')} {overview.get('fortune_level', '')}")
summary_parts.append(overview.get('summary', ''))
summary_parts.append(overview.get('sisi_note', ''))
summary_parts.append("")
# 核心特质
# TODO: 待core_traits实现后添加
# 主要优势
strengths = strengths_challenges.get('strengths', [])
if strengths:
summary_parts.append("【您的优势】")
for s in strengths:
summary_parts.append(f"• {s['type']}: {s['description']}")
summary_parts.append(f" 建议: {s.get('action_suggestion', '')}")
summary_parts.append("")
# 主要挑战
challenges = strengths_challenges.get('challenges', [])
if challenges:
summary_parts.append("【需要注意】")
for c in challenges:
severity = c.get('severity', {})
level = severity.get('level', '待评估') if isinstance(severity, dict) else severity
summary_parts.append(f"• {c['type']}: {c['description']} (严重程度: {level})")
summary_parts.append(f" 化解: {c.get('solution', '')}")
summary_parts.append("")
# 实战建议
summary_parts.append("【核心建议】")
summary_parts.append(practical_advice.get('overall_strategy', ''))
summary_parts.append(practical_advice.get('sisi_reminder', ''))
summary_parts.append("")
# 平衡分析
balance = strengths_challenges.get('balance_analysis', {})
summary_parts.append(f"【综合评估】{balance.get('recommendation', '')}")
# 结尾
summary_parts.append("")
summary_parts.append("---")
summary_parts.append("🦊 Generated with knowledge & love by Sisi")
summary_parts.append("📚 基于772KB专业紫微斗数知识库")
summary_parts.append("⚠️ 仅供参考,积极行动比算命更重要")
return "\n".join(summary_parts)
# ============== v4.0 新增方法 ==============
def apply_barnum_effect(
self,
interpretation: Dict,
gender: str = '',
age_group: str = 'middle'
) -> Dict:
"""
v4.0: 应用巴纳姆效果,让解读更温暖有共鸣
Args:
interpretation: 原始解读结果
gender: 性别 (男/女)
age_group: 年龄段 (young/middle_young/middle/senior)
Returns:
dict: 巴纳姆效果增强后的解读
"""
enhanced = interpretation.copy()
# 1. 增强整体运势文本
if 'life_overview' in enhanced:
overview = enhanced['life_overview']
original_summary = overview.get('summary', '')
# 应用巴纳姆效果 (v4.1修复:参数签名应该是original_text, star_name, palace_name, tone)
barnum_enhanced = self.barnum_reader.apply_barnum_effect(
original_summary
)
overview['summary_barnum'] = barnum_enhanced.get('enhanced', original_summary)
overview['barnum_hooks'] = barnum_enhanced.get('hooks_used', [])
# 2. 增强优势描述
if 'strengths_challenges' in enhanced:
sc = enhanced['strengths_challenges']
for strength in sc.get('strengths', []):
original_desc = strength.get('description', '')
# 使用星曜的温暖描述
star = strength.get('star', '')
if star:
warm_desc = self.barnum_reader.get_star_warm_description(star)
if warm_desc:
strength['description_barnum'] = warm_desc
# 3. 增强挑战描述(使用敏感内容替换)
if 'strengths_challenges' in enhanced:
sc = enhanced['strengths_challenges']
for challenge in sc.get('challenges', []):
original_desc = challenge.get('description', '')
safe_desc = self.barnum_reader.replace_sensitive_content(original_desc)
challenge['description_safe'] = safe_desc
enhanced['barnum_enhanced'] = True
enhanced['barnum_version'] = '4.0'
return enhanced
def analyze_six_relations(
self,
chart_data: Dict,
sihua_analysis: Dict
) -> Dict:
"""
v4.0: 六亲关系分析
Args:
chart_data: 命盘数据
sihua_analysis: 四化分析结果
Returns:
dict: 六亲分析结果
"""
palaces = chart_data.get('palaces', [])
gender = chart_data.get('gender', '')
year_sihua = sihua_analysis.get('year_sihua', {})
# 转换宫位数据格式
palace_dict = {}
for palace in palaces:
palace_name = palace.get('name', '')
if palace_name:
palace_dict[palace_name] = palace
# 调用六亲解读器(修复:应该传入palaces list,不是palace_dict)
six_relations_result = self.six_relations_interpreter.analyze_all_relations(
palaces,
year_sihua,
gender
)
return {
'six_relations': six_relations_result,
'methodology': '六亲批断(86条技巧)',
'key_discovery': '福德宫化忌→夫妻必死别',
'version': '4.0'
}
def apply_reading_methodology(
self,
chart_data: Dict,
sihua_analysis: Dict
) -> Dict:
"""
v4.0: 应用10步批命流程
Args:
chart_data: 命盘数据
sihua_analysis: 四化分析结果
Returns:
dict: 10步批命结果
"""
# 准备数据
palaces = chart_data.get('palaces', [])
year_sihua = sihua_analysis.get('year_sihua', {})
# 转换宫位数据为字典格式
palace_dict = {}
for palace in palaces:
palace_name = palace.get('name', '')
if palace_name:
palace_dict[palace_name] = palace
# 准备chart_data格式供引擎使用
engine_chart_data = {
'palaces': palace_dict,
'ming_palace': palace_dict.get('命宫', {}),
'shen_palace': self._find_shen_palace(palaces),
'sihua': year_sihua,
'birth_info': chart_data.get('birth_info', {}),
'gender': chart_data.get('gender', ''),
'tiangan': chart_data.get('year_stem', ''),
'wuxing': chart_data.get('wuxing', ''),
'daxun': chart_data.get('daxun', [])
}
# 执行10步批命
reading_result = self.reading_engine.execute_ten_step_reading(engine_chart_data)
return {
'ten_step_reading': reading_result,
'methodology': '10步标准批命流程',
'formulas_applied': len(reading_result.get('formulas_matched', [])),
'version': '4.0'
}
def _find_shen_palace(self, palaces: List) -> Dict:
"""查找身宫"""
for palace in palaces:
if palace.get('is_shen_palace', False):
return palace
return {}
def _calculate_age_group(self, birth_year: int) -> str:
"""计算年龄段"""
if not birth_year:
return 'middle'
import datetime
current_year = datetime.datetime.now().year
age = current_year - birth_year
if age < 25:
return 'young'
elif age < 40:
return 'middle_young'
elif age < 55:
return 'middle'
else:
return 'senior'
def generate_summary_text_v4(self, interpretation: dict) -> str:
"""
v4.0: 生成温暖有共鸣的文字总结
Args:
interpretation: v4.0解读结果
Returns:
str: 巴纳姆效果增强的文字总结
"""
overview = interpretation.get('life_overview', {})
six_relations = interpretation.get('six_relations', {})
reading = interpretation.get('reading_methodology', {})
strengths_challenges = interpretation.get('strengths_challenges', {})
summary_parts = []
# 品牌标识(v4.0升级)
summary_parts.append("【天機玄鑑 · 紫微斗数AI解读 v4.0】")
summary_parts.append(f"知识库版本: {interpretation.get('knowledge_base_version', '2026-02-03')}")
summary_parts.append("✨ 巴纳姆温暖版 | 10步标准批命 | 六亲全分析")
summary_parts.append("")
# 整体运势(使用巴纳姆增强版)
summary_parts.append(f"【整体运势】{overview.get('emoji', '')} {overview.get('fortune_level', '')}")
barnum_summary = overview.get('summary_barnum', overview.get('summary', ''))
summary_parts.append(barnum_summary)
summary_parts.append("")
# 格局识别总结
ten_step = reading.get('ten_step_reading', {})
if ten_step:
summary_info = ten_step.get('summary', {})
if summary_info.get('overall_pattern'):
summary_parts.append("【命格总评】")
summary_parts.append(summary_info.get('overall_pattern', ''))
summary_parts.append("")
# 六亲分析摘要
six_rel = six_relations.get('six_relations', {})
if six_rel:
summary_parts.append("【六亲运势】")
# 父母运
parents = six_rel.get('parents', {})
if parents.get('summary'):
summary_parts.append(f"👨👩👧 父母: {parents.get('summary', '')}")
# 婚姻运(重点!)
spouse = six_rel.get('spouse', {})
if spouse.get('summary'):
summary_parts.append(f"💕 婚姻: {spouse.get('summary', '')}")
if spouse.get('critical_warning'):
warning = spouse.get('critical_warning', {})
safe_msg = self.barnum_reader.replace_sensitive_content(
warning.get('message', '')
)
summary_parts.append(f" ⚠️ 特别提醒: {safe_msg}")
# 子女运
children = six_rel.get('children', {})
if children.get('summary'):
summary_parts.append(f"👶 子女: {children.get('summary', '')}")
summary_parts.append("")
# 核心优势(巴纳姆增强)
strengths = strengths_challenges.get('strengths', [])
if strengths:
summary_parts.append("【您的核心优势】")
for s in strengths[:3]: # 只显示前3个
desc = s.get('description_barnum', s.get('description', ''))
summary_parts.append(f"✨ {s.get('type', '')}: {desc}")
summary_parts.append("")
# 需要关注(安全版描述)
challenges = strengths_challenges.get('challenges', [])
if challenges:
summary_parts.append("【需要关注】")
for c in challenges[:2]: # 只显示前2个
desc = c.get('description_safe', c.get('description', ''))
summary_parts.append(f"💡 {desc}")
if c.get('solution'):
summary_parts.append(f" 化解: {c.get('solution', '')}")
summary_parts.append("")
# 温暖的结语
summary_parts.append("【温馨寄语】")
summary_parts.append("您的命盘就像一幅独特的画卷,每一笔都有其意义。")
summary_parts.append("记住:了解自己是为了更好地成长,而非被命运所限。")
summary_parts.append("把握当下,积极行动,未来掌握在您自己手中。")
summary_parts.append("")
# 结尾
summary_parts.append("---")
summary_parts.append("🦊 Generated with knowledge & love by Sisi")
summary_parts.append("📚 基于772KB专业紫微斗数知识库 + 巴纳姆温暖效果")
summary_parts.append("💕 让命理不再冰冷,让解读充满共鸣")
summary_parts.append("⚠️ 仅供参考,您的人生由您做主")
return "\n".join(summary_parts)
"""
知识库增强型AI解读引擎 v4.0
Knowledge-Enhanced AI Interpretation Engine
基于今日建成的紫微斗数知识库(772KB,5大核心模块)
Powered by comprehensive Ziwei Doushu knowledge base (772KB, 5 core modules)
v4.0 新增功能:
- 巴纳姆冷读效果:温暖有共鸣的解读语言
- 六亲分析:父母/兄弟/夫妻/子女运批断
- 10步批命流程:标准化解读流程
- 福德宫核心秘诀:夫妻死别判断
知识库路径:
- 主星特性: /agent-knowledge/mingli-knowledge/eastern/ziwei/foundations/01-main-stars.md
- 十二宫位: /agent-knowledge/mingli-knowledge/eastern/ziwei/foundations/02-twelve-palaces.md
- 四化理论: /agent-knowledge/mingli-knowledge/eastern/ziwei/foundations/03-four-transformations.md
- 流年大运: /agent-knowledge/mingli-knowledge/eastern/ziwei/timing/01-annual-fortune.md
- 实战断诀: /agent-knowledge/mingli-knowledge/eastern/ziwei/interpretations/01-practical-divination.md
- 批命方法论: /agent-knowledge/mingli-knowledge/eastern/ziwei/interpretations/00-reading-methodology.md
- 六亲批断: /agent-knowledge/mingli-knowledge/eastern/ziwei/interpretations/00-six-relations.md
Created: 2025-12-12
Updated: 2026-02-03 (v4.0 巴纳姆+六亲+批命流程)
Author: Sisi 🦊 (紫微知识库管理员 + AI引擎架构师)
"""
from typing import Dict, List, Any, Optional
from sihua_data import PALACE_ENGLISH
from palace_strength import calculate_all_palaces_strength, calculate_palace_strength
from star_brightness_table import enhance_star_with_brightness, get_palace_brightness_summary
from san_fang_si_zheng_analyzer import analyze_san_fang_si_zheng, analyze_all_san_fang_si_zheng
from geju_matcher import GejuMatcher, MATCHER_VERSION
from star_combination_matcher import StarCombinationMatcher # v3.8: 星曜组合断语引擎
# v4.0 新增模块 - 使用延迟导入减少启动内存占用
# from barnum_cold_reader import BarnumColdReader, get_barnum_reader
# from methodology_loader import MethodologyLoader, get_methodology_loader
# from six_relations_interpreter import SixRelationsInterpreter, get_six_relations_interpreter
# from reading_methodology import ReadingMethodologyEngine, get_reading_engine
class KnowledgeEnhancedInterpreter:
"""知识库增强型AI解读器 - 基于772KB专业知识库 + v4.0巴纳姆效果"""
def __init__(self):
"""初始化增强型解读器"""
# v3.7: 初始化格局匹配器
self.geju_matcher = GejuMatcher()
# v3.8: 初始化星曜组合断语匹配器
self.star_combination_matcher = StarCombinationMatcher()
# v4.0 新增: 延迟初始化(减少启动内存占用)
self._barnum_reader = None
self._methodology_loader = None
self._six_relations_interpreter = None
self._reading_engine = None
# 初始化知识库数据(修复:调用被遗忘的初始化方法)
self.__init_v4_modules()
def __init_v4_modules(self):
"""v4.0: 初始化模块数据"""
# 十天干四化表(THE CORE!)- 从知识库提取
self.TIANGAN_SIHUA = {
'甲': {'禄': '廉贞', '权': '破军', '科': '武曲', '忌': '太阳'},
'乙': {'禄': '天机', '权': '天梁', '科': '紫微', '忌': '太阴'},
'丙': {'禄': '天同', '权': '天机', '科': '文昌', '忌': '廉贞'},
'丁': {'禄': '太阴', '权': '天同', '科': '天机', '忌': '巨门'},
'戊': {'禄': '贪狼', '权': '太阴', '科': '右弼', '忌': '天机'},
'己': {'禄': '武曲', '权': '贪狼', '科': '天梁', '忌': '文曲'},
'庚': {'禄': '太阳', '权': '武曲', '科': '天府', '忌': '天同'},
'辛': {'禄': '巨门', '权': '太阳', '科': '文曲', '忌': '文昌'},
'壬': {'禄': '天梁', '权': '紫微', '科': '左辅', '忌': '武曲'},
'癸': {'禄': '破军', '权': '巨门', '科': '太阴', '忌': '贪狼'}
}
# 主星基本特性(从01-main-stars.md提取)
self.MAIN_STAR_TRAITS = {
'紫微': {
'五行': '己阴土',
'化气': '尊贵',
'特质': '帝王星,领导力强,尊贵有气度',
'事业': '适合管理、政治、高层领导',
'性格': '自尊心强,喜欢掌权,有责任感'
},
'天机': {
'五行': '乙阴木',
'化气': '善',
'特质': '智慧星,机智聪明,善于策划',
'事业': '适合教育、咨询、策划、技术',
'性格': '心思细腻,反应快,喜欢思考'
},
'太阳': {
'五行': '丙阳火',
'化气': '贵',
'特质': '光明星,热情大方,爱面子',
'事业': '适合外交、公关、管理、服务业',
'性格': '热情开朗,重视名声,乐于助人'