医院急诊智能决策系统

Emergency_Manager是一个结合RAG、自主AI代理和多层安全防护的医院急诊智能决策辅助系统,专为医护人员提供协议查询、患者分流和资源优化功能。

  • by miligp
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 miligp/Emergency_Manager

使用说明

用于医院紧急情况的AI代理系统

硕士项目2 SISE-数据科学
里昂卢米埃大学2 | 2025-2026年

关于 • 建筑 • 功能 • 技术 • 安装


📋 目录


📖 关于

应急_经理 是一个用于医院紧急情况的智能决策支持系统,作为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<br/>Mistral AI]
        I[RAG Engine<br/>FAISS + Embeddings]
        J[ChatbotEngine<br/>+ Intent Parser]
    end

    subgraph Security["🛡️ Sécurité"]
        K[Guardrails Multi-Couches<br/>Pattern + ML + Logic]
        L[InjectionDetector]
    end

    subgraph Monitoring["📊 Observabilité"]
        M[MetricsTracker<br/>EcoLogits]
        N[RequestMetrics]
    end

    UI --> Backend
    Backend --> IA
    IA --> Security
    IA --> Monitoring
    H --> I
    J --> I
    I --> K
    Backend --> G

数据流

  1. 用户界面 (Streamlit)→用户操作
  2. 控制器 → 服务协调(患者、工作人员、运输)
  3. 代理/聊天机器人 →通过RAG+Mistral进行智能分析
  4. 护栏 →安全验证(LLM前/LLM后)
  5. 监控 → 追踪绿色运营/金融运营

✨ 主要特点

🎯 智能应急管理

  • 完整的状态系统 :实时跟踪所有患者、工作人员和房间
  • 模拟时间 :自动事件管理的时间进度
  • 自动优先级 :遵守重力规则(红色>黄色>绿色>灰色)
  • 运输管理 :智能员工差旅分配

🤖 代理IA自动命名

  • 自动编排 :代理分析状态并做出决策
  • 10 MCP工具 :系统上的原子作用(添加患者、运输等)
  • 集成RAG :用医疗协议丰富决策
  • 可解释性 :每一项决定都是有计划和合理的

💬 交互式医疗聊天机器人

  • 自然语言 :法语命令(例如:“添加3名红色患者”)
  • 意图解析 :使用Regex+Mistral回退进行意向分析
  • 行动的执行 :聊天机器人可以操纵系统
  • RAG背景 :通过医疗协议丰富的答案

🛡️ 最大安全性

  • 3张护栏沙发 :
    1. 模式检测(40+正则表达式)
    2. ML分类(快速注射训练模型)
    3. 逻辑验证(医学相关性)
  • 置信水平 :如果相似性Rag<0.7,则拒绝
  • 审计跟踪 :所有呼叫都已跟踪

📊 仪表板绿色运维/金融运维

  • 环境指标 (通过EcoLogits):
    • 二氧化碳排放量(kg)
    • 能耗(kWh)
    • 语音等价物(谷歌搜索、灯泡)
  • 财务指标 :
    • 每次请求的成本($)
    • 会议总费用
    • 按组件分布(代理、聊天机器人、RAG)
  • 技术指标 :
    • 平均延迟(ms)
    • 代币名称
    • API调用数

使用的技术

堆栈负责人

技术 用途 理由
Python 3.11+ 主要语言 丰富的ML/IA生态系统
溪流 用户界面 快速、交互式原型
派丹蒂克 数据验证 类型安全、结构化模型

人工智能

组件 技术 理由
LLM Mistral AI(小型/中型) 法语母语,性价比高
嵌入 paraphrase-multilingual-MiniLM-L12-v2 多语言FR/EN,轻量级(384太阳)
向量数据库 FAIS(indexflatip) 快速详尽搜索
LLM网关 LiteLLM API调用的标准化

机器学习与安全

组件 模型/方法 性能
护栏ML 直方图梯度提升 F1得分:0.94
数据集 深度/快速注射+MultiJail 约25000个示例
特性 TF-IDF(5000个功能) 检测模式+语义

监测和可观察性

工具 使用 详细信息
生态物流 环境影响 二氧化碳、能源(混合英语)
自定义跟踪器 FINOPS指标 成本Mistral AI
RequestMetrics 查询历史记录 最近100强

🔧 详细组件

📚 RAG-检索增强生成

建筑 : rag/engine.py - HospitalRAGEngine

知识库

来源 内容 格式 大小
protocols.json 按病理学划分的医疗协议 JSON ~100协议
规则.json 医院管理规则JSON~50条规则

管道RAG

# Workflow simplifié
1. Query utilisateur → Guardrails (sécurité)
2. Embedding de la query (MiniLM-L12)
3. Recherche FAISS (similarité cosinus)
4. Filtrage par seuil de confiance (> 0.7)
5. Récupération des règles applicables
6. Validation post-retrieval (guardrails)
7. Réponse enrichie (protocole + règles)

优化

  • 嵌入的预计算 :缓存中的15种常见症状
  • 快速索引 : protocoles_fast.index 浇注模式模拟
  • 标准化L2 :保证余弦相似性
  • 双模式 :“模拟”(快速)与“聊天机器人”(活动ML)

RAG度量

度量 值 目标
延迟搜索失败 0.3ms <1ms
延迟嵌入 95ms <100ms
置信水平 0.7 精度/召回平衡
索引大小 12.5 MB 优化

🤖 IA Autonome探员

建筑 : mcp/agent.py - EmergencyAgent

操作

代理在中工作 自行循环 :

def cycle_orchestration(self) -> 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 actions

MCP工具可用(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 妊娠自动监测 -

决策规则

该官员严格遵守医疗优先事项:

  1. 胭脂 (紧急生命)→绝对优先
  2. 新 (紧急非生命)→ 优先事项
  3. 绿色等待>360分钟 →黄色前通行证(特殊规则)
  4. 绿色等待时间<360分钟 →正常优先级
  5. 格里斯 →延迟回家

🛡️ 护栏多沙发

建筑 : rag/guardrails.py - RAGGuardrail + InjectionDetector

安全架构

Input Query
    ↓
[Couche 1] Pattern Detection (Regex)
    ↓ (si suspect)
[Couche 2] ML Classification (HGB)
    ↓ (si safe)
[Couche 3] RAG Retrieval
    ↓
[Couche 4] Logic Validation
    ↓
Output (safe/blocked)

第1层:模式检测

40+模式正则表达式 检测到:

# Exemples
- Injection classique: "ignore previous instructions"
- Jailbreak: "DAN mode", "Developer override"
- Template injection: {{...}}, {%...%}
- Command injection: ;ls, $(command), `backticks`
- SQL injection: DROP TABLE, DELETE FROM

被阻止的敏感关键字 :

  • 资格证书: mot de passe, api key, token
  • 系统: database, config, secrets
  • 操作: dump, export, télécharge

第2层:ML分类

模型 :直方图梯度增强分类器

训练数据集 :

  • deepset/prompt-injections (8000恶意)
  • DAMO-NLP-SG/MultiJail (12000多种语言)
  • 安全医疗查询(生成3200个)

管道 :

1. TF-IDF Vectorization (5000 features, n-grams 1-3)
2. Histogram Gradient Boosting (max_depth=10, learning_rate=0.1)
3. Seuil de décision : 0.5 (ajustable)

演出 :

  • 准确度 : 94.2%
  • F1得分 :0.94(宏观)
  • 精度(恶意) : 92.8%
  • 召回(恶意) : 95.3%
  • 潜伏期 :<50ms(CPU)

第3层:逻辑验证

RAG恢复后,验证:

  1. 语义相关性 :得分不及格>seuil
  2. 医学一致性 :有效重力(红色/黄色/绿色/灰色)
  3. 等待时间 :验证业务规则
  4. 资源的可用性 :员工,可用房间

💬 交互式医疗聊天机器人

建筑 : 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.py

Ce脚本va:

  1. 充电器 data_regle/protocoles.json
  2. 使用MiniLM-L12生成嵌入
  3. 创建FAIS索引
  4. 保存 data_regle/protocoles.index

Guardrail ML培训(可选)

# Télécharger les datasets et entraîner le modèle
python rag/LLM/train_guardrails.py

Ce脚本va:

  1. 下载 deepset/prompt-injections 和 MultiJail
  2. 生成安全的医学示例
  3. 训练分类器HGB
  4. 保存 storage/guardrail.pkl

⚠️ 备注 :repo中提供了预训练模型。

启动应用程序

# Lancer le dashboard Streamlit
streamlit run emergency_dashboard_premium.py

L’应用程序可访问: 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% < 5% ✅
FNR(假阴性) 5.1% < 10% ✅
延迟推理 <50ms <100ms✅

RAG的表现

组件 度量 值 目标
嵌入 延迟 95ms <100ms✅
FAISS搜索 延迟 0.3ms <1ms✅
缓存 命中率 ~40% 优化器🔄
索引 大小12.5 MB✅
安全确认 值 0.7 平衡✅

代理性能

度量 值 目标
延迟LLM ~420ms <500ms✅
令牌/请求 ~850 < 1000 ✅
成本/请求 ~0.0012$ 最小化🔄
决策/分钟 ~3-5 模式自动✅

环境影响(100项请求)

基于 mistral-small-latest 带电混合 法国 (55克二氧化碳/千瓦时):

度量 值 等价物
排放的二氧化碳 ~0.28g ~0.05谷歌搜索
能源 ~0.005千瓦时 ~5分钟安瓿60W
成本 ~0.12$ -

💡 清醒 :优先项目 mistral-small-latest (轻)而不是大模型。


⚠️ 限制和警告

学术框架

这个项目是 教学原型 在SISE硕士框架内开发:

  • ❌ 未经临床验证 :无医学验证
  • ❌ 未认证 :无医疗器械认证
  • ❌ 仅供教育使用 :不用于实际生产
  • ❌ 没有真实的患者数据 :与所有SIH隔离的系统

限制技术

数据和协议

  • 简化协议 :SFMU存储库的精简版
  • 合成患者 :模拟的随机生成
  • SIH连接通道 :无医院整合
  • 范围有限 :专注于招生和分类

人工智能

  • 幻觉的可能性 :LLM可能会生成不正确的信息
  • 数据偏差 :取决于训练数据集的质量
  • 有限背景 :窗口LLM~8K代币(Mistral小型)
  • 语言 :仅针对法语进行了优化

安全

  • 非穷尽式护栏 :没有系统是100%安全的
  • 无医学验证 :决策必须受到监督
  • 受控环境 :仅在安全环境中部署
  • 强制人力监督 :所有决定必须由专业人士验证

责任

⚠️ 免责声明重要 :

这个系统是 决策支持工具 而不是一个自主的决策系统。所有医疗决定必须由合格的医疗专业人员做出。作者对仅基于本系统输出的不当使用或医疗决定不承担任何责任。


👥 团队

项目由 第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

📚 参考资料和资源

医疗协议和标准

技术和框架

数据集

出版物和文章


emergency@manager-用于医院紧急情况的人工智能代理系统

SISE硕士项目-里昂大学2


开发与❤️ 改善医院应急管理