Krishnachakri/LS.ai
GitHub: Krishnachakri/LS.ai
LifeSaver.ai 是一个实时 AI 应急协调平台,将非结构化的紧急语音或文本报告转化为结构化事件摘要并通过可解释的规则引擎自动判定严重程度,帮助调度员更快响应医疗急救。
Stars: 0 | Forks: 0
# LifeSaver.ai (LS.ai)
**LifeSaver.ai (LS.ai)** 是一个实时 AI 驱动的应急协调平台,可将非结构化的紧急语音或文本报告转化为结构化、可执行的事件摘要,供调度员和响应人员使用。通过结合可解释的 AI 解析与确定性的严重程度评分,它优化了分诊路由,从而在关键的初步响应时间内挽救生命。
## 为什么开发此项目
LifeSaver.ai 的创建目的很简单:帮助减少在医疗紧急情况发生的前几分钟内经常出现的沟通延误。
**LS** 这个名字具有个人意义。它代表了我的父母 **Lokesh** 和 **Sasi**。该项目的灵感来源于我的家庭经历,以及我相信在紧急情况下更好的协调能够挽救生命的信念。虽然灵感是个人化的,但使命是普遍的——让紧急情况下的沟通更快、更清晰、更可靠。
## 问题与解决方案
- **问题:** 惊慌失措的紧急情况呼叫者难以传达结构化的事实(事件类型、受害者人数、伤情)。语言障碍和缺乏自动化分诊延误了调度,浪费了宝贵的时间。
- **解决方案:** 一个直接、零安装的移动呼叫者界面,具有自动的多语言语音转录功能,将非结构化数据输入到确定性的分诊引擎中,立即将解析后的紧急情况广播到专业的调度控制台。
## 技术栈
* **前端:** Next.js (App Router)、TypeScript、原生 CSS(灵感来源于 RapidSOS 的仪表板控制台样式)
* **后端:** FastAPI (Python)、Uvicorn ASGI Server
* **AI 摄取(多模态转录):** Gemini API(多模态音频转录)
* **AI 解析器(紧急上下文提取):** Gemini API(结构化 JSON Schema 生成)
* **实时协议:** WebSockets (`/api/v1/incidents/live`)
* **状态管理:** 内存 `collections.deque` 缓存(保存最近的 20 个活跃事件以供实时显示)
## 架构与系统流程
```
Caller Mobile UI (Microphone/Text Input)
│
▼
FastAPI Backend Ingestion API
│
├──► Stage A: Multimodal Audio Transcription (Gemini API)
│ Extracts raw text transcript & detects language (en/te)
│
├──► Stage B: Emergency Context Parser (Gemini API)
│ Extracts structured JSON facts (breathing difficulty, bleeding, etc.)
│
├──► Stage C: Pydantic Validator & Schema Sanitation
│
├──► Stage D: Deterministic Severity Triage Engine
│ Evaluates override triggers and calculates safety priority scores
│
└──► Stage E: Real-time Gateway (FastAPI WebSockets)
│
▼
Responder Dispatch Dashboard Console (Live Updates)
```
## 严重程度逻辑
为了保证 100% 可解释且可复现的决策,我们将语言理解与分诊评分分开。LLM 解析非结构化事实;确定性的 Python 规则引擎计算严重程度:
1. **关键覆盖条件:** 失去意识、严重呼吸困难、胸痛或疑似心脏紧急情况将立即覆盖评分逻辑,并将严重程度设置为 **Critical**(Score 100)。
2. **积分规则:** 如果没有触发覆盖条件,则累加积分:
* 疑似骨骼骨折:**+15 分**
* 头部受伤:**+15 分**
* 多名受害者 (>2):**+10 分**
3. **阈值分类:**
* **Critical:** 触发覆盖条件或积分 >= 40
* **Urgent:** 积分 15 - 39
* **Stable:** 积分 < 15
## 设置与本地运行说明
### 1. 前置条件
- Python 3.10+
- Node.js 18+
### 2. 环境变量配置
在 `backend/` 目录下创建一个 `.env` 文件:
```
GEMINI_API_KEY=your_gemini_api_key_here
GEMINI_MODEL=gemini-3.5-flash
CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
```
在 `frontend/` 目录下创建一个 `.env.local` 文件:
```
NEXT_PUBLIC_API_URL=http://127.0.0.1:8000
```
### 3. 运行后端
在根工作区目录下执行:
```
cd backend
python -m venv venv
# 在 Windows PowerShell 上:
.\venv\Scripts\Activate
# 在 macOS/Linux 上:
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 127.0.0.1 --port 8000 --reload
```
### 4. 运行前端
在根工作区目录下打开一个新的终端标签页执行:
```
cd frontend
npm install
npm run dev
```
打开 [http://localhost:3000/caller](http://localhost:3000/caller) 进入移动呼叫者门户,以及 [http://localhost:3000/dashboard](http://localhost:3000/dashboard) 查看调度仪表板。
## 当前已知限制
标签:AI信息提取, AV绕过, FastAPI, IPv6支持, WebSockets, 多模odal转录, 应急救援, 逆向工具