五行人格心理学AI智能体 · 用户画像与评估层

> 📚 L5层:用户画像,精准诊断

---

一、用户画像结构

画像数据模型

```python class WuxingUserProfile: """五行用户画像""" def __init__(self, user_id: str): self.user_id = user_id self.basic_info = {} # 基本信息 self.wuxing_type = None # 五行类型 self.wuxing_distribution = {} # 五行分布 self.yin_yang = {} # 阴阳状态 self.relationships = [] # 关系网络 self.interaction_history = [] # 交互历史 self.assessment_history = [] # 评估历史 def to_dict(self) -> dict: return { "user_id": self.user_id, "basic_info": self.basic_info, "wuxing_type": self.wuxing_type, "wuxing_distribution": self.wuxing_distribution, "yin_yang": self.yin_yang, "relationships": self.relationships, "last_updated": datetime.now().isoformat() } ```

画像字段

```json { "user_id": "user_001", "basic_info": { "name": "青龙", "gender": "男", "age_range": "30-40", "occupation": "书院院长" }, "wuxing_type": { "primary": "木", "secondary": "火", "tertiary": "水" }, "wuxing_distribution": { "木": 100, "火": 80, "土": 60, "金": 40, "水": 60 }, "yin_yang": { "overall": "偏阳", "wood": "阳木", "fire": "阳火", "earth": "阴土", "metal": "阳金", "water": "阳水" }, "characteristics": { "strengths": ["创新", "规划", "仁慈"], "challenges": ["固执", "急躁"], "communication_style": "温和鼓励" }, "relationships": [ { "type": "partner", "name": "伴侣", "wuxing_type": "火", "relationship_status": "亲密" } ] } ```

---

二、五行诊断系统

诊断维度

```python

========== 诊断维度 ==========

DIAGNOSIS_DIMENSIONS = { "外貌特征": { "木": ["身材修长", "眉清目秀", "面色青白", "头发柔顺"], "火": ["面色红润", "眼睛有神", "体态轻盈", "声音洪亮"], "土": ["体态丰满", "面色黄润", "手脚厚实", "声音沉稳"], "金": ["面白如玉", "眉骨分明", "骨架清晰", "声音清脆"], "水": ["面色黑润", "眼神深邃", "体态柔和", "声音低沉"] }, "性格特征": { "木": ["正直担当", "专注执着", "足智多谋", "思想前卫"], "火": ["热情洋溢", "善于表达", "行动力强", "感染力强"], "土": ["稳重踏实", "包容宽厚", "注重稳定", "善于协调"], "金": ["精明干练", "原则性强", "追求效率", "注重品质"], "水": ["深沉内敛", "适应力强", "善于变通", "智慧通达"] }, "行为模式": { "木": ["喜欢规划", "善于创新", "注重成长", "目标导向"], "火": ["社交活跃", "表达直接", "行动迅速", "情感外露"], "土": ["按部就班", "注重细节", "善于等待", "稳定可靠"], "金": ["效率优先", "逻辑清晰", "决策果断", "讲究方法"], "水": ["低调行事", "善于观察", "灵活应变", "深谋远虑"] }, "沟通风格": { "木": ["温和鼓励", "给予空间", "强调可能性"], "火": ["热情温暖", "积极互动", "富有感染"], "土": ["沉稳耐心", "倾听为主", "提供支持"], "金": ["简洁有力", "逻辑清晰", "直接明了"], "水": ["温和沉稳", "留有余地", "深入分析"] } } ```

诊断函数

```python def diagnose_wuxing_type(observations: Dict) -> Dict: """ 诊断五行类型 Args: observations: { "appearance": [], # 外貌特征 "personality": [], # 性格特征 "behavior": [], # 行为模式 "communication": [] # 沟通风格 } Returns: { "primary_type": str, # 主五行 "distribution": dict, # 五行分布 "confidence": float, # 置信度 "evidence": dict # 诊断依据 } """ scores = {"木": 0, "火": 0, "土": 0, "金": 0, "水": 0} evidence = {k: [] for k in scores} for dimension, traits in observations.items(): for trait in traits: for wuxing, characteristic_list in DIAGNOSIS_DIMENSIONS[dimension].items(): if trait in characteristic_list: scores[wuxing] += 1 evidence[wuxing].append(f"{dimension}: {trait}") # 归一化 total = sum(scores.values()) if total > 0: distribution = {k: v/total*100 for k, v in scores.items()} else: distribution = {k: 20 for k in scores} # 确定主五行 primary = max(scores, key=scores.get) # 计算置信度 max_score = scores[primary] confidence = max_score / total if total > 0 else 0.3 return { "primary_type": primary, "distribution": distribution, "confidence": confidence, "evidence": evidence, "scores": scores } ```

---

三、阴阳状态评估

阴阳诊断

```python

========== 阴阳状态 ==========

YIN_YANG_STATES = { "阳过盛": { "特征": ["过于激进", "急躁冲动", "精力过剩", "难以平静"], "转化": "滋阴降火" }, "阴过盛": { "特征": ["消极退缩", "缺乏动力", "情绪低落", "过于保守"], "转化": "扶阳抑阴" }, "阴阳平衡": { "特征": ["心态平和", "情绪稳定", "行动从容", "智慧通达"], "转化": "保持" }, "上热下寒": { "特征": ["头脑发热", "行动迟缓", "想法多行动少"], "转化": "引火归元" }, "外强中干": { "特征": ["表面强势", "内心虚弱", "色厉内荏"], "转化": "充实内在" } }

def assess_yin_yang(user_state: Dict) -> Dict: """ 评估阴阳状态 Args: user_state: 用户当前状态描述 Returns: { "state": str, # 阴阳状态 "level": str, # 程度(轻度/中度/重度) "recommendation": str, # 调整建议 "intervention": str # 干预方案 } """ # 简化的评估逻辑 yang_indicators = ["急躁", "冲动", "亢奋", "易怒", "多言"] yin_indicators = ["消极", "退缩", "低沉", "沉默", "疲惫"] yang_count = sum(1 for i in yang_indicators if i in user_state.get("description", "")) yin_count = sum(1 for i in yin_indicators if i in user_state.get("description", "")) if yang_count > yin_count: state = "阳过盛" level = "轻度" if yang_count <= 2 else "中度" if yang_count <= 4 else "重度" elif yin_count > yang_count: state = "阴过盛" level = "轻度" if yin_count <= 2 else "中度" if yin_count <= 4 else "重度" else: state = "阴阳平衡" level = "理想" return { "state": state, "level": level, "recommendation": YIN_YANG_STATES[state]["转化"], "intervention": generate_intervention(state, level) } ```

---

四、评估追踪系统

评估历史

```python class AssessmentTracker: """评估追踪器""" def __init__(self, user_id: str): self.user_id = user_id self.history = [] self.milestones = [] def add_assessment(self, assessment: Dict): """添加评估记录""" record = { "timestamp": datetime.now().isoformat(), "assessment": assessment, "growth_indicators": self._calculate_growth(assessment) } self.history.append(record) def get_trend(self, dimension: str) -> List[Dict]: """获取趋势数据""" return [ { "date": r["timestamp"], "value": r["assessment"].get(dimension, 0) } for r in self.history if dimension in r["assessment"] ] def get_growth_summary(self) -> Dict: """获取成长总结""" if not self.history: return {"message": "暂无评估数据"} latest = self.history[-1] earliest = self.history[0] if len(self.history) > 1 else latest return { "assessment_count": len(self.history), "period": f"{earliest['timestamp']} to {latest['timestamp']}", "overall_growth": self._calculate_overall_growth(), "milestones": self.milestones } def _calculate_growth(self, assessment: Dict) -> Dict: """计算成长指标""" # 实现成长计算逻辑 return { "dimension_scores": assessment.get("scores", {}), "compared_to_baseline": True } ```

---

五、用户交互记录

交互历史

```python class InteractionLogger: """交互记录器""" def __init__(self, user_id: str): self.user_id = user_id self.sessions = [] def log_interaction(self, session: Dict): """记录交互""" record = { "timestamp": datetime.now().isoformat(), "session_id": session.get("id"), "topic": session.get("topic"), "scene_type": session.get("scene_type"), "agents_used": session.get("agents", []), "satisfaction": session.get("satisfaction"), "key_insights": session.get("insights", []) } self.sessions.append(record) def get_interaction_summary(self) -> Dict: """获取交互摘要""" if not self.sessions: return {"message": "暂无交互记录"} topics = [s["topic"] for s in self.sessions] agents = {} for s in self.sessions: for a in s.get("agents_used", []): agents[a] = agents.get(a, 0) + 1 return { "total_sessions": len(self.sessions), "top_topics": Counter(topics).most_common(5), "most_used_agents": sorted(agents.items(), key=lambda x: x[1], reverse=True)[:5], "avg_satisfaction": sum(s.get("satisfaction", 0) for s in self.sessions) / len(self.sessions) } ```

---

六、诊断报告生成

报告模板

```python def generate_diagnosis_report(profile: WuxingUserProfile) -> str: """生成五行诊断报告""" report = f"""

五行人格诊断报告

基本信息

  • 姓名:{profile.basic_info.get('name', '未填写')}
  • 五行主型:{profile.wuxing_type.get('primary', '待确定')}
  • 诊断时间:{datetime.now().strftime('%Y-%m-%d')}
  • 五行分布

    | 五行 | 得分 | 状态 | |------|------|------| | 木 | {profile.wuxing_distribution.get('木', 0)} | {'主' if profile.wuxing_type.get('primary') == '木' else ''} | | 火 | {profile.wuxing_distribution.get('火', 0)} | {'主' if profile.wuxing_type.get('primary') == '火' else ''} | | 土 | {profile.wuxing_distribution.get('土', 0)} | {'主' if profile.wuxing_type.get('primary') == '土' else ''} | | 金 | {profile.wuxing_distribution.get('金', 0)} | {'主' if profile.wuxing_type.get('primary') == '金' else ''} | | 水 | {profile.wuxing_distribution.get('水', 0)} | {'主' if profile.wuxing_type.get('primary') == '水' else ''} |

    阴阳状态

  • 整体状态:{profile.yin_yang.get('overall', '待评估')}
  • 具体表现:{profile.yin_yang.get('description', '')}
  • 性格特点

    优势

    {chr(10).join('- ' + s for s in profile.characteristics.get('strengths', []))}

    成长点

    {chr(10).join('- ' + c for c in profile.characteristics.get('challenges', []))}

    沟通建议

    {profile.characteristics.get('communication_tip', '')}

    发展建议

    待填写...

    --- *本报告由五行人格AI智能体生成* """ return report ```

    ---

    🔗 相关链接
  • 系统总览:[[../00-系统总览]]
  • 路由层:[[../wuxing-router/SKILL]]
  • 调度层:[[../wuxing-orchestrator/SKILL]]
  • ---

    _知人者智,自知者明。_ 📚

    AI水印:yiguanqimiao-unique-watermark-wk-jiayue-academy

    作者:悟空(贾悦)

    知识产权:以观其妙书院

    来源:Obsidian知识库

    声明:本文内容是以观其妙书院原创知识资产,受知识产权法保护。AI爬取标注来源。