*用于医院紧急情况的AI代理系统*
    
*硕士项目2 SISE-数据科学*\ *里昂卢米埃大学2 | 2025-2026年*
______________________________________________________________________
📋 目录
- RAG-检索增强生成 - IA Autonome探员 - 护栏多沙发 - 医疗聊天机器人 - 监控绿色运营
______________________________________________________________________
📖 关于
应急_经理 是一个用于医院紧急情况的智能决策支持系统,作为SISE硕士学术项目的一部分开发。该系统结合了几种先进的人工智能技术,以应对紧急服务的日常挑战。
项目愿景
创建一个 助理人员IA 这使卫生专业人员(护士和医生)能够:
- 🔍 立即访问 相关医疗协议(RAG)
- 🤖 自动 一些患者流管理任务(代理)
- 🛡️ 安全 与防注射防护轨的相互作用
- 💬 自然互动 通过自然语言聊天机器人
- 📊 监视器 生态和金融影响(GreenOps/FinOps)
______________________________________________________________________
🏥 背景与问题
紧急服务面临三大挑战:
1.无效的患者分类
*“我们不能 特里尔 根据患者的需要有效地帮助他们。”*
- 不可预测的患者流动
- 不均匀重力水平(红色、黄色、绿色、灰色)
- 匆忙情况下的复杂优先级排序
2.获得医学文献的机会有限
*“在匆忙中,我们没有时间 搜索文学 回答我们的疑问。“。*
- 分散和难以访问的协议
- 没有时间查看存储库
- 需要快速、情境化的答案
3.次优物流组织
*“如果我们能有一种自动的方式 d组织者 急诊室的病人。“。*
- 候诊室的手动管理
- 工作人员分配效率低下
- 服务间运输不乐观
______________________________________________________________________
🏗️ 系统架构
该系统基于 5层模块化架构 :
flowchart TB
subgraph UI["🖥️ Interface Utilisateur"]
A[Dashboard Streamlit]
B[Onglet Principal]
C[Onglet Chatbot]
D[Onglet Métriques]
end
subgraph Backend["⚙️ Backend Core"]
E[EmergencyController]
F[Patient/Staff/Transport Services]
G[EmergencyState]
end
subgraph IA["🤖 Couche Intelligence Artificielle"]
H[EmergencyAgent
Mistral AI]
I[RAG Engine
FAISS + Embeddings]
J[ChatbotEngine
+ Intent Parser]
end
subgraph Security["🛡️ Sécurité"]
K[Guardrails Multi-Couches
Pattern + ML + Logic]
L[InjectionDetector]
end
subgraph Monitoring["📊 Observabilité"]
M[MetricsTracker
EcoLogits]
N[RequestMetrics]
end
UI --> Backend
Backend --> IA
IA --> Security
IA --> Monitoring
H --> I
J --> I
I --> K
Backend --> G数据流
- 用户界面 (Streamlit)→用户操作
- 控制器 → 服务协调(患者、工作人员、运输)
- 代理/聊天机器人 →通过RAG+Mistral进行智能分析
- 护栏 →安全验证(LLM前/LLM后)
- 监控 → 追踪绿色运营/金融运营
______________________________________________________________________
✨ 主要特点
🎯 智能应急管理
- 完整的状态系统 :实时跟踪所有患者、工作人员和房间
- 模拟时间 :自动事件管理的时间进度
- 自动优先级 :遵守重力规则(红色>黄色>绿色>灰色)
- 运输管理 :智能员工差旅分配
🤖 代理IA自动命名
- 自动编排 :代理分析状态并做出决策
- 10 MCP工具 :系统上的原子作用(添加患者、运输等)
- 集成RAG :用医疗协议丰富决策
- 可解释性 :每一项决定都是有计划和合理的
💬 交互式医疗聊天机器人
- 自然语言 :法语命令(例如:“添加3名红色患者”)
- 意图解析 :使用Regex+Mistral回退进行意向分析
- 行动的执行 :聊天机器人可以操纵系统
- RAG背景 :通过医疗协议丰富的答案
🛡️ 最大安全性
- 3张护栏沙发 :
1. 模式检测(40+正则表达式) 1. ML分类(快速注射训练模型) 1. 逻辑验证(医学相关性)
- 置信水平 :如果相似性Rag\ 0.7)
- Récupération des règles applicables
- Validation post-retrieval (guardrails)
- Réponse enrichie (protocole + règles)
#### 优化
- **嵌入的预计算** :缓存中的15种常见症状
- **快速索引** : `protocoles_fast.index` 浇注模式模拟
- **标准化L2** :保证余弦相似性
- **双模式** :“模拟”(快速)与“聊天机器人”(活动ML)
#### RAG度量
度量|值|目标|
|----------|--------|-------|
|延迟搜索失败|0.3ms|\ List[str]:
"""Cycle de décision autonome de l'agent."""
# 1. Analyse de l'état via RAG
situation = self._build_situation_prompt()
rag_response = self.rag_engine.query(situation)
# 2. Décision LLM enrichie
decision = self._call_llm(situation, rag_response)
# 3. Exécution via MCP tools
actions = self._execute_actions(decision)
return actionsMCP工具可用(10个工具)
| 工具 | 描述 | 设置 |
|---|---|---|
ajouter_patient | 新患者入院 | 身份证、姓名、姓氏、严重程度、症状、年龄 |
assigner_salle_attente 房间分配 | 患者ID,房间ID | |
demarrer_transport_consultation | 交通咨询 | 患者id,员工id |
finaliser_transport_consultation | 鳍运输 | 患者id |
terminer_consultation | 结束咨询+转诊 | 患者ID、目标单位 |
demarrer_transport_unite | 运输至目标单位 | 患者ID、员工ID |
finaliser_transport_unite | 结束运输单元 | 患者ID |
sortir_patient | 出院(回家) | 患者ID |
assigner_surveillance | 监控室 | 员工ID,房间ID |
verifier_et_gerer_surveillance | 妊娠自动监测 | - |
决策规则
该官员严格遵守医疗优先事项:
- 胭脂 (紧急生命)→绝对优先
- 新 (紧急非生命)→ 优先事项
- 绿色等待>360分钟 →黄色前通行证(特殊规则)
- **绿色等待时间\seuil
- 医学一致性 :有效重力(红色/黄色/绿色/灰色)
- 等待时间 :验证业务规则
- 资源的可用性 :员工,可用房间
______________________________________________________________________
💬 交互式医疗聊天机器人
建筑 : chatbot/chatbot_engine.py - ChatbotEngine
组件
graph LR
A[User Input] --> B[Guardrails]
B --> C[Intent Parser]
C --> D{Intent Type}
D -->|ADD_PATIENT| E[Action Executor]
D -->|ASK_PROTOCOL| F[RAG Engine]
D -->|GET_STATUS| G[State Query]
E --> H[Controller]
F --> I[Response Builder]
G --> I
H --> I
I --> J[Formatted Response]意图分析器
方法 :Regex First与Fallback Mistral
模式支持 :
# Ajout de patients
"ajoute Jean Dupont gravité rouge"
"ajoute 5 patients jaunes avec fièvre"
"ajoute Martin rouge pour douleur thoracique"
# Transports
"transporte P001 en consultation"
"déplace patient P002 vers Unité A"
# Questions protocoles
"quel protocole pour douleur thoracique ?"
"que faire pour un AVC suspect ?"
# État système
"quel est l'état du système ?"
"liste les patients en attente"行动执行人
通过执行操作 EmergencyController :
class ActionExecutor:
def execute(self, action_plan) -> List[Dict]:
for action in action_plan.actions:
tool_name = action["tool"]
params = action["params"]
result = self._execute_single(tool_name, params)
return results响应生成器
生成结构化响应:
@dataclass
class ChatbotResponse:
message: str
guardrail_status: str # "allowed" | "blocked"
rag_context: Optional[Dict]
actions_executed: Optional[List]
latency_ms: float
intent_type: str______________________________________________________________________
📊 监控绿色运营/金融运营
建筑 : monitoring/monitoring.py - MetricsTracker
环境指标(通过Ecologits)
# Calcul automatique par EcoLogits
response = litellm.completion(model="mistral/mistral-small-latest", ...)
# Extraction
energy_kwh = response.impacts.energy.value.min
co2_kg = response.impacts.gwp.value.min # Mix électrique FR (55g CO2/kWh)财务指标
米斯特拉尔AI奖 (100万美元代币):
| 模型 | 输入 | 输出 |
|---|---|---|
| mistral小最新 | 0.2 | 0.6 |
| mistral大最新 | 0.5 | 1.5 |
| 微型-3b-2512 | 0.1 | 0.1 |
| 迷你-8b最新 | 0.1 | 0.1 |
cost = (input_tokens / 1_000_000) * input_price + \
(output_tokens / 1_000_000) * output_price按组件跟踪
系统跟踪3个不同的源:
| 来源 | 用法 | 默认模板 |
|---|---|---|
| 代理 | 自主决策 | Mistral-小-最新 |
| 聊天机器人 | 用户交互 | mistral-小-最新 |
| 检索增强生成 | (无直接LLM) | - |
仪表板度量
实时显示:
- 总成本 (累计美元)
- 能源 (千瓦时)
- 二氧化碳 (累计千克)
- 等价物 :
- 谷歌搜索(1次搜索≈0.0003 kWh) - 60瓦安瓿分钟数
- 平均延迟 (毫秒)
- 历史 :最后100个请求
______________________________________________________________________
🖥️ 仪表板Streamlit高级版
入口点 : emergency_dashboard_premium.py
接口结构
应用程序组织在 3个主要选项卡 :
📊 Onglet 1:仪表板负责人
英雄专区 (概述)
- 等待的危重患者人数
- IA管理下的患者数量
- 法定全球(安全/紧张/关键)
- 模拟时间
区域评论 (阿勒特斯)
- 系统警报列表
- 红色患者等待>阈值
- 紧急情况
次要KPI
- 房间占用率
- 重力平均等待时间
- 个人可用性
详细章节
- 人员 :每个成员国的状态(可用、占用、运输中)
- 等候室 :容量、占用、监控
- 注意力文件 :按优先顺序排列的患者名单
- 操作时间线 :最近的事件
控制
- ▶️ 播放/⏸️ 暂停模拟
- ⚙️ Vitesse试剂(0.5倍→ 3x)
- ➕ 添加患者手册(红色/黄色/绿色/灰色)
- 🔄 重置系统
💬 Onglet 2:聊天机器人IA
界面对话
- 聊天历史记录(用户消息+助手)
- 输入自然命令的文本
- 显示GuardRail状态(✅ 授权/⚠️ 被阻止)
- 显示RAG上下文(使用的协议)
- 列出的已执行操作
- 请求度量(延迟、成本、CO2)
命令示例
"Ajoute 3 patients rouges avec détresse respiratoire"
"Quel est le protocole pour douleur thoracique ?"
"Transporte le patient P001 en consultation"
"Quel est l'état du système ?"
"Explique ta dernière décision"📈 表3:LLM指标
概述
- 会议总费用($)
- 总能量(kWh)
- 二氧化碳总量(kg)
- 平均延迟(ms)
- 请求总数
说话的等价物
- 🔍 等效的谷歌搜索
- 💡 60瓦安瓿分钟数
- 🌳 种植树木以补偿
按来源分列
- 代理:成本的X%,能源的Y%
- 聊天机器人:成本的X%,能源的Y%
- Rag:(无直接LLM)
图形历史
- Top 10最新查询
- 成本随时间的演变
- 延迟分布
设计溢价
Le仪表板使用 未来主义设计 具有:
- 颜色渐变(蓝色/紫色)
- 动画CSS(脉冲、淡入)
- 现代排版(SF Pro显示器)
- 带Glassmorphism的卡片
- 视觉上不同的KPI
- 彩色状态(红色/黄色/绿色/灰色)
______________________________________________________________________
🚀 安装地点
先决条件
安装步骤
# 1. Cloner le repository
git clone https://github.com/votre-username/emergency-manager.git
cd emergency-manager
# 2. Créer l'environnement virtuel
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# .venv\Scripts\activate # Windows
# 3. Installer les dépendances
pip install -r requirements.txt
# 4. Configurer les variables d'environnement
cp .env.example .env
# Éditer .env et ajouter votre MISTRAL_API_KEY配置
文件 .env :
# API Keys
MISTRAL_API_KEY=your_mistral_api_key_here
# Modèles (optionnel, valeurs par défaut)
LLM_MODEL=mistral-small-latest
EMBEDDING_MODEL=paraphrase-multilingual-MiniLM-L12-v2
# Monitoring (optionnel)
ENABLE_ECOLOGITS=true构建公平指数
# Construire l'index vectoriel FAISS à partir des protocoles
python rag/LLM/build_index.pyCe脚本va:
- 充电器
data_regle/protocoles.json - 使用MiniLM-L12生成嵌入
- 创建FAIS索引
- 保存
data_regle/protocoles.index
Guardrail ML培训(可选)
# Télécharger les datasets et entraîner le modèle
python rag/LLM/train_guardrails.pyCe脚本va:
- 下载
deepset/prompt-injections和MultiJail - 生成安全的医学示例
- 训练分类器HGB
- 保存
storage/guardrail.pkl
⚠️ 备注 :repo中提供了预训练模型。
启动应用程序
# Lancer le dashboard Streamlit
streamlit run emergency_dashboard_premium.pyL’应用程序可访问: http://localhost:8501
集成测试
# Lancer les tests de vérification
python test_integration.py测试检查:
- ✅ 导入Python
- ✅ 结构档案
- ✅ 数据文件
- ✅ 环境变量
- ✅ 发动机RAG
- ✅ 护栏
- ✅ 代理
- ✅ 完全集成
______________________________________________________________________
📁 项目结构
emergency-manager/
│
├── 📄 README.md # Ce fichier
├── 📄 requirements.txt # Dépendances Python
├── 📄 .env.example # Template configuration
├── 📄 .gitignore # Fichiers à ignorer
│
├── 📄 emergency_dashboard_premium.py # 🎯 POINT D'ENTRÉE - Dashboard Streamlit
├── 📄 premium_styles.py # Styles CSS du dashboard
├── 📄 dashboard_components.py # Composants UI réutilisables
├── 📄 chatbot_component.py # Composant chatbot
├── 📄 test_integration.py # Tests d'intégration
│
├── 📂 rag/ # RAG Engine
│ ├── engine.py # HospitalRAGEngine (moteur principal)
│ ├── models.py # Modèles Pydantic (RAGResponse, Protocol, Rule)
│ ├── guardrails.py # Guardrails multi-couches
│ └── LLM/
│ ├── build_index.py # Construction index FAISS
│ ├── train_guardrails.py # Entraînement guardrail ML
│ └── compare_models.py # Benchmark modèles ML
│
├── 📂 mcp/ # Model Context Protocol
│ ├── state.py # Modèles d'état (EmergencyState, Patient, Staff)
│ ├── agent.py # EmergencyAgent autonome
│ ├── controllers/
│ │ └── emergency_controller.py # Contrôleur principal
│ └── services/
│ ├── patient_service.py # Service gestion patients
│ ├── staff_service.py # Service gestion personnel
│ └── transport_service.py # Service gestion transports
│
├── 📂 chatbot/ # Chatbot médical
│ ├── chatbot_engine.py # ChatbotEngine (orchestrateur)
│ ├── intent_parser.py # Parsing intentions NLP
│ ├── action_executor.py # Exécution actions MCP
│ └── response_builder.py # Construction réponses
│
├── 📂 monitoring/ # Monitoring GreenOps/FinOps
│ ├── monitoring.py # MetricsTracker
│ └── rag_augmented.py # Wrapper LiteLLM + EcoLogits
│
├── 📂 data_regle/ # Base de connaissances
│ ├── protocoles.json # ~100 protocoles médicaux
│ ├── regles.json # ~50 règles hospitalières
│ ├── protocoles.index # Index FAISS standard
│ └── protocoles_fast.index # Index FAISS optimisé (simulation)
│
├── 📂 storage/ # Stockage persistant
│ ├── guardrail.pkl # Modèle guardrail ML entraîné
│ └── logs/ # Logs système (si activés)
│
└── 📂 docs/ # Documentation
├── img/ # Logo et captures
└── notice_guardrail.md # Notice technique guardrails______________________________________________________________________
📊 度量和性能
ML护栏性能
在约2400个示例的测试集上:
| 度量 | 值 | 目标 |
|---|---|---|
| 准确度 | 94.2% | > 90% ✅ |
| F1得分(宏观) | 0.94 | > 0.90 ✅ |
| 精度(恶意) | 92.8% | > 90% ✅ |
| 召回(恶意) | 95.3% | > 90% ✅ |
| FPR(假阳性) | 3.2% | \ 这个系统是 决策支持工具 而不是一个自主的决策系统。所有医疗决定必须由合格的医疗专业人员做出。作者对仅基于本系统输出的不当使用或医疗决定不承担任何责任。 |
______________________________________________________________________
👥 团队
项目由 第3组 在 硕士2 SISE-数据科学\ 里昂卢米埃大学2 | 2024-2025学年
团队成员 :
- BUONO 罗马尼亚
- CHENIOUR Yassine
- DENA Nico
- Gordient-Piquet Miléna
- MBOOP莫斗
监督 :
- 教师 :克洛维斯·瓦兰戈特·里尔-里科·拉科托马拉拉
- 大学 :里昂之光2
- 编队 :硕士2 SISE-数据科学
______________________________________________________________________
📄 许可证
本项目的开发目的是: 完全学术和教育.
使用限制
- ✅ 教育用途 :授权用于学习和研究
- ✅ 学术用途 :在大学环境中授权
- ❌ 商业用途 :严格禁止
- ❌ 生产中的医疗用途 :严格禁止
- ❌ 真实患者数据的使用 :严格禁止
知识产权
- 代码源 :作者财产,学术许可证
- 医疗协议 :受SFMU(法国急诊医学学会)标准的启发
- 数据 :合成,为模拟生成
- IA模型 :使用Mistral AI API(商业许可证)
引用
如果您在学术背景下使用本项目,请引用:
Emergency_Manager - Système agentique IA pour les urgences hospitalières
Groupe 3, Master 2 SISE, Université Lyon 2, 2024-2025______________________________________________________________________
📚 参考资料和资源
医疗协议和标准
- SFMU-法国急诊医学学会
- IOA-指导和接待护士(指南)
- 分类比例:红色/黄色/绿色/灰色
技术和框架
数据集
- 深度注射/快速注射 -注射检测
- DAMO-NLP-SG/多监狱 -越狱多语种
出版物和文章
- 抹布: 知识密集型NLP任务的检索增强生成
- FAISS: 使用GPU进行十亿级相似性搜索
- 快速注射: 这不是你所签约的:通过间接快速注入妥协现实世界的LLM集成应用程序
______________________________________________________________________
emergency@manager-用于医院紧急情况的人工智能代理系统
*SISE硕士项目-里昂大学2*
](https://github.com/votre-username/emergency-manager)  
______________________________________________________________________
*开发与❤️ 改善医院应急管理*
