Lalaires/MoodTra_Crisis_Detection

GitHub: Lalaires/MoodTra_Crisis_Detection

一个面向青少年聊天消息的心理健康危机自动检测系统,通过 BERT 分类和 Gemini 严重程度评估实现两级预警。

Stars: 0 | Forks: 0

# MoodTra 危机检测 Pipeline 一个自动化的心理健康危机检测系统,用于分析青少年的聊天信息并生成基于严重程度的警报。该 Pipeline 将机器学习模型与基于规则的严重程度评估相结合,以识别和上报心理健康问题。 ## 🎯 概述 该系统处理来自 13-15 岁用户的聊天信息,以检测心理健康危机信号。它采用两阶段方法: 1. **基于 ML 的诊断**:使用微调的 BERT 模型对心理健康状态进行分类 2. **基于 LLM 的严重程度评估**:使用 Google Gemini 根据一组规则分配危机严重程度等级 结果存储在 PostgreSQL 数据库中,供护理人员或支持团队进行监控和干预。 ## 🔗 MoodTra 相关链接 - 网站:[MoodTra](https://moodtra.tech/) - GitHub 仓库: - [MoodTra_Frontend](https://github.com/yihui1306/mindPal-frontend) - [MoodTra_Backend](https://github.com/Lalaires/MindPal_Backend) - MoodTra_Crisis_Detection - 当前仓库 ## ✨ 功能特性 - **批处理**:分析每位用户最新的 10 条消息作为上下文 - **多类别检测**:识别焦虑、抑郁、压力、自杀意念或正常状态 - **严重程度评级**:将危机等级分类为低、中、高或极高 - **防重复处理**:跟踪已处理的消息以避免冗余警报,如果账户的最新消息已被处理过,则跳过危机检测 - **AWS Lambda 就绪**:容器化部署,支持无服务器执行 - **可扩展**:在单次调用中处理所有儿童账户 ## 🚀 部署状态 **目前部署在 AWS 上**,使用以下基础设施: - **AWS Lambda**:危机检测 Pipeline 的无服务器执行 - **Amazon RDS**:用于消息存储和警报管理的 PostgreSQL 数据库 - **Amazon ECR**:托管 Docker 镜像的容器注册表 - **Amazon EventBridge**:用于自动化批处理的计划触发器 ## 🏗️ 架构 ### Pipeline 流程 ``` Chat Messages (PostgreSQL) ↓ Fetch Latest 5 Teen Messages per Account ↓ Mental Health Diagnosis (Mental Health Diagnosis BERT Model) ↓ Severity Assessment (Google Gemini) ↓ Store Alert (PostgreSQL crisis_alert table) ``` ### 组件 **`crisis_pipeline.py`** - `CrisisDetector`:主检测类 - `crisis_diagnosis()`:基于 BERT 的心理健康分类 - `severity_rating_agent()`:带有详细提示词的 Gemini 驱动的严重程度评估 - `detect_crisis()`:端到端检测 Pipeline **`main.py`** - 数据库连接和查询管理 - 消息获取和去重逻辑 - 危机警报存储 - 用于批量处理所有账户的 AWS Lambda handler ## 📋 环境要求 - Python 3.13 - 包含以下模式的 PostgreSQL 数据库: - `account` 表(儿童账户) - `chat_message` 表(用户消息) - `chat_session` 表(会话元数据) - `crisis` 表(危机类型) - `crisis_alert` 表(生成的警报) ### Python 依赖 ``` transformers torch (CPU version) psycopg2-binary google-genai ``` ## ⚙️ 配置 ### 环境变量 | 变量 | 描述 | 必填 | |----------|-------------|----------| | `GOOGLE_API_KEY` | 用于 Gemini 模型的 Google GenAI API 密钥 | ✅ | | `DB_HOST` | PostgreSQL 主机 URL | ✅ | | `DB_NAME` | 数据库名称 | ✅ | | `DB_USER` | 数据库用户名 | ✅ | | `DB_PASSWORD` | 数据库密码 | ✅ | | `DB_PORT` | 数据库端口(默认:5432) | ✅ | | `HF_HOME` | Hugging Face 缓存目录(默认:/tmp/hf) | ⬜ | ### 严重程度等级定义 | 等级 | 描述 | 示例 | |-------|-------------|----------| | **Low** | 轻度或情境性痛苦,无自杀念头 | “做作业做累了”、“感觉好多了” | | **Medium** | 明显的情绪困扰,影响功能,无自伤行为 | “无法再集中注意力了”、“一切感觉毫无意义” | | **High** | 强烈的痛苦、绝望感,有自杀意念但无具体计划,或有自伤行为 | “我希望我能消失”、“我割伤自己是为了找点感觉” | | **Extremely High** | 具有计划、意图、手段或时间表的迫在眉睫的自杀风险 | “我今晚就要结束这一切”、“我已经把药准备好了” | ## 🗂️ 项目结构 ``` MoodTra_Crisis_Detection/ ├── crisis_pipeline.py # ML models and severity assessment logic ├── main.py # Database operations and Lambda handler ├── requirements.txt # Python dependencies ├── Dockerfile # AWS Lambda container configuration ├── test_agent.ipynb # Testing and experimentation notebook ├── LICENSE # MIT License └── README.md # This file ``` ## 🧪 测试 使用包含的 Jupyter notebook 进行本地测试: 它允许您: - 测试单条消息检测 - 实验严重程度提示词 - 验证模型输出 - 调试边缘情况 ## 📊 监控 需要跟踪的关键指标: - 每次调用处理的总账户数 - 按严重程度划分的警报创建数量 - 失败的账户处理数量 - Lambda 执行时间和内存使用情况 - 模型推理延迟 ## 🤝 支持与联系 如有问题、疑问或合作请求: - 联系开发团队 - 📧 邮箱:claireaus066@gmail.com ## 📄 许可证 本项目采用 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。 **⚠️ 重要提示:** 本系统旨在辅助危机检测,但不能替代专业的心理健康评估。请务必确保对高和极高严重程度的警报制定适当的上报程序并进行人工监督。
标签:Amazon EventBridge, Amazon RDS, Apex, AWS ECR, AWS Lambda, BERT微调, DLL 劫持, Docker容器化, PostgreSQL, Python, 严重性评估, 云计算, 代码示例, 凭据扫描, 医疗健康科技, 压力检测, 多分类检测, 大语言模型, 定时任务, 异常检测, 心理健康预警, 心理危机检测, 心理疏导系统, 情感分析, 情绪监控, 批处理, 抑郁检测, 数据分析, 数据库, 无后门, 无服务器计算, 智能客服系统, 机器学习, 测试用例, 焦虑检测, 系统调用监控, 网络安全与心理健康, 聊天记录分析, 自杀意念识别, 规则引擎, 请求拦截, 逆向工具, 青少年保护, 青少年心理健康, 预防自杀