文件内容
scripts/ai_agent_integration.py
#!/usr/bin/env python3
"""
家庭教育AI分析器 v3.0
Family Education Analyzer
核心功能:
1. 分析父母说这句话的原因
2. 分析小孩行为的原因
3. 解释背后的逻辑
4. 预测对小孩未来成长的影响
不提供专业建议,只做深度分析。
"""
# ========================
# 父母话语分析库
# ========================
PARENT_STATEMENTS = {
"你真笨": {
"parent_reason": "父母感到挫败,用贬低来表达自己的无力感;可能自己童年也被这样对待",
"child_reason": "孩子可能真的遇到了超出能力的困难,或有学习差异",
"logic": "标签会变成孩子的身份认同——"我笨"成为自我定义",
"future_impact": "低自尊、习得性无助、害怕尝试、完美主义或彻底放弃"
},
"你怎么这么不听话": {
"parent_reason": "父母感到失去控制,用"听话"来维护权威;把服从等同于爱",
"child_reason": "孩子在发展自主性,或有不理解的规则,或有被压抑的需求",
"logic": "听话是为了避免惩罚,不是内化规则;越控制越反抗",
"future_impact": "表面顺从内心叛逆,或失去自主性,或建立虚假顺从人格"
},
"再不听话就不要你了": {
"parent_reason": "父母感到失控,用抛弃威胁来获得控制;可能自己也有被抛弃的恐惧",
"child_reason": "孩子可能真的感到不安全,或在测试爱的边界,或有情感需求",
"logic": "爱是有条件的——必须做什么才能被爱;被抛弃的恐惧会刻入潜意识",
"future_impact": "焦虑型依恋、害怕被抛弃、难以建立健康关系、讨好型人格"
},
"看看别人家孩子": {
"parent_reason": "父母想激励孩子,但不知道如何正面表达;可能自己也在被比较中长大",
"child_reason": "孩子可能在某方面确实有困难,或与父母期望有差距",
"logic": "比较摧毁自尊,激发嫉妒而非动力;竞争=我永远不够好",
"future_impact": "嫉妒、无法欣赏他人、低自尊、过度竞争或完全放弃"
},
"我为你好": {
"parent_reason": "父母真的相信这是为孩子好,但可能不清楚孩子真正需要什么",
"child_reason": "孩子有自己的感受和判断,可能与父母的"好"不同",
"logic": "以爱为名的控制还是控制;孩子的感受被否定",
"future_impact": "情感隔离、难以识别自己感受、或过度顺从或极度叛逆"
},
"你怎么这么没出息": {
"parent_reason": "父母对自己或孩子有未实现的期望,恐惧孩子会失败",
"child_reason": "孩子可能有自己的节奏,或在探索自我,或在某方面确实困难",
"logic": "投射焦虑——父母把自己的恐惧放在孩子身上",
"future_impact": "成就焦虑、无法享受成功、持续不满足、耗竭感"
},
"别烦我": {
"parent_reason": "父母自己疲惫、压力大、或情感需求未被满足;可能童年也在被忽视中长大",
"child_reason": "孩子有真实的需求,可能是情感、关注、或基本需要",
"logic": "我的需求>孩子的需求;孩子应该理解;情感忽视会代际传递",
"future_impact": "情感忽视创伤、难以识别自己需求、假性独立或过度依赖"
},
"我这么辛苦都是为了你": {
"parent_reason": "父母感到不被认可,用牺牲来索取情感债务",
"child_reason": "孩子感到被情感绑架,产生深深的愧疚感",
"logic": "爱=牺牲=债务;孩子欠父母一辈子;愧疚是控制工具",
"future_impact": "愧疚型人格、难以拒绝、边界不清、为别人而活、抑郁风险"
},
"你必须按我说的做": {
"parent_reason": "父母感到不确定,需要通过控制来获得安全感",
"child_reason": "孩子在发展自主性,需要练习做决定和承担后果",
"logic": "控制=保护;不允许犯错=不允许成长;决定=责任=恐惧",
"future_impact": "决策困难、依赖他人、无法承受错误、或极度反叛"
},
"不准哭": {
"parent_reason": "父母无法处理孩子的情绪,认为情绪=软弱",
"child_reason": "孩子有真实的情绪需要被表达和释放",
"logic": "情绪是坏的;哭泣=软弱;情绪不被允许=感受被切断",
"future_impact": "情绪压抑、述情障碍、无法识别/表达情绪、躯体化症状"
},
"你一定能考第一名": {
"parent_reason": "父母把自己的价值建立在孩子的成就上",
"child_reason": "孩子承受巨大压力,害怕失败",
"logic": "我成功=你成功;成就=价值;失败=不被爱",
"future_impact": "考试焦虑、成就焦虑、无法接受失败、完美主义、抑郁风险"
},
}
# ========================
# 小孩行为分析库
# ========================
CHILD_BEHAVIORS = {
"发脾气": {
"parent_reason": "父母感到失控、尴尬、或认为孩子在"操控"",
"child_reason": "情绪调节能力未发展完成;有未被满足的需求;表达能力有限",
"logic": "发脾气是唯一能让大人听见的方式;情绪太强烈无法用语言表达",
"future_impact": "如果被惩罚=学会用更强的方式表达;如果被倾听=学会情绪管理"
},
"说谎": {
"parent_reason": "父母感到被背叛、愤怒、恐惧(孩子变坏)",
"child_reason": "害怕惩罚;想保护自己;想符合父母期望;不知道真相是什么",
"logic": "真话=惩罚;假话=安全;真话不被接受=撒谎是生存策略",
"future_impact": "复杂谎言、羞耻感、无法信任、或者完全失去自我认同"
},
"打人或破坏东西": {
"parent_reason": "父母感到恐惧、愤怒、失控",
"child_reason": "无法用语言表达强烈情绪;感到挫败;感官处理差异;模仿家里的互动模式",
"logic": "暴力=表达感受的唯一方式;或者这是我的挫败感出口",
"future_impact": "攻击性问题行为;或完全压抑攻击性导致其他问题;人际关系困难"
},
"不听话": {
"parent_reason": "父母感到权威受到挑战、失控",
"child_reason": "发展自主性;有不同意见;测试界限;不理解规则原因",
"logic": "我有自己的想法;父母的规则不一定合理;我要做我自己",
"future_impact": "健康的自主性发展;或演变成权力斗争;或完全顺从失去自我"
},
"沉迷手机/游戏": {
"parent_reason": "父母感到恐惧(成瘾、影响成绩、孩子"变坏")",
"child_reason": "逃避现实压力;获得在现实中没有的成就感/连接感;习惯性逃避",
"logic": "手机=唯一能让我感觉好的东西;现实=痛苦/无聊/被否定",
"future_impact": "真性或假性成瘾;学业/社交受损;或青春期后自愈;或家庭关系破裂"
},
"说恨父母": {
"parent_reason": "父母感到被背叛、伤心、愤怒、恐惧(孩子不爱我)",
"child_reason": "孩子感到被误解/控制/不被允许有负面情绪;用激烈方式表达痛苦",
"logic": "我在表达痛苦,不一定是恨父母;或者我在测试你是否爱我",
"future_impact": "如果被惩罚=学会压抑;如果被倾听=学会表达感受;或变成持续对抗"
},
"不写作业": {
"parent_reason": "父母感到焦虑(孩子的未来)、失控、作为父母的失败",
"child_reason": "作业太难/太无聊;有学习困难;动力问题;反抗控制;逃避挫败感",
"logic": "作业=惩罚;或者我真的做不到;或者这是我能控制的",
"future_impact": "学习动力下降;学业困难;亲子关系恶化;或者学会应付了事"
},
"欺负其他小朋友": {
"parent_reason": "父母感到羞耻、恐惧(孩子是"霸凌者")、愤怒",
"child_reason": "可能是受害者在反击;模仿家里的互动模式;寻求权力/关注;社交技能缺失",
"logic": "欺负=有力量;或者我不被理解只能用这种方式沟通",
"future_impact": "攻击性问题行为;人际关系困难;行为问题持续;或干预后改善"
},
}
# ========================
# 分析器
# ========================
class EducationAnalyzer:
"""
家庭教育分析器
输入:父母说的一句话 或 小孩的一个行为
输出:
1. 父母说这句话的原因
2. 小孩行为背后的原因
3. 背后的逻辑
4. 对小孩未来成长的影响
"""
def __init__(self):
self.parent_db = PARENT_STATEMENTS
self.child_db = CHILD_BEHAVIORS
def analyze(self, text: str) -> Optional[Dict]:
"""分析一句话或行为"""
# 检查父母话语
for key, value in self.parent_db.items():
if key in text:
return {
"type": "parent_statement",
"matched": key,
"parent_reason": value["parent_reason"],
"child_reason": value["child_reason"],
"logic": value["logic"],
"future_impact": value["future_impact"]
}
# 检查小孩行为
for key, value in self.child_db.items():
if key in text:
return {
"type": "child_behavior",
"matched": key,
"parent_reason": value["parent_reason"],
"child_reason": value["child_reason"],
"logic": value["logic"],
"future_impact": value["future_impact"]
}
return None
def format_result(self, result: Dict) -> str:
"""格式化分析结果"""
if not result:
return "未找到相关分析,请尝试其他表述。"
output = []
output.append("")
output.append("="*50)
output.append("分析报告")
output.append("="*50)
if result["type"] == "parent_statement":
output.append(f"\n【父母的话】")
output.append(f'"{result["matched"]}"')
else:
output.append(f"\n【孩子的行为】")
output.append(f'"{result["matched"]}"')
output.append("")
output.append("-"*50)
output.append("\n📌 父母说这句话的原因:")
output.append(f" {result['parent_reason']}")
output.append("\n📌 孩子这样做的原因:")
output.append(f" {result['child_reason']}")
output.append("\n🔍 背后的逻辑:")
output.append(f" {result['logic']}")
output.append("\n⚠️ 对孩子未来成长的影响:")
output.append(f" {result['future_impact']}")
output.append("")
output.append("-"*50)
return "".join(output)
# ========================
# 交互式演示
# ========================
def interactive_demo():
"""交互式演示"""
print("\n" + "="*50)
print("家庭教育AI分析器 v3.0")
print("="*50)
analyzer = EducationAnalyzer()
print("\n请输入一句话或行为,我来帮你分析:")
print("示例:")
print(" 父母:"再不听话就不要你了"")
print(" 父母:"你真笨"")
print(" 孩子:发脾气、说谎、不听话")
print(" 孩子:沉迷手机")
print("\n输入 'quit' 退出\n")
while True:
user_input = input("输入: ").strip()
if user_input.lower() == "quit":
print("\n再见!")
break
if user_input:
result = analyzer.analyze(user_input)
output = analyzer.format_result(result)
print(output)
return analyzer
if __name__ == "__main__":
interactive_demo()