mahek-builds/CrisisLink-AI
GitHub: mahek-builds/CrisisLink-AI
紧急响应平台,利用 Flutter 与 FastAPI 聚合 SOS 报告并以 AI 辅助优先级调度。
Stars: 0 | Forks: 1
# CrisisLink-AI 平台
CrisisLink-AI 是一个紧急响应平台,结合 Flutter 客户端和 FastAPI 后端,用于捕获 SOS 报告、聚类附近事件、优先响应紧急程度,并为调度团队提供 AI 支持的建议。
## 目录
- [1. 业务背景](#1-business-context)
- [2. 核心架构与创新](#2-core-architecture-and-innovations)
- [3. 系统设计](#3-system-design)
- [4. 技术栈](#4-technology-stack)
- [5. 仓库结构](#5-repository-structure)
- [6. 安装](#6-installation)
- [7. 运维运行手册](#7-operation-runbook)
- [8. API 接口](#8-api-surface)
- [9. 测试与质量](#9-testing-and-quality)
- [10. 安全与合规说明](#10-security-and-compliance-notes)
- [11. 已知约束与改进待办](#11-known-constraints-and-improvement-backlog)
## 1. 业务背景
紧急呼叫中心在高压力事件中会收到大量非结构化报告。CrisisLink-AI 通过以下方式解决此问题:
- 将基于位置的重复 SOS 报告合并为统一的事件记录。
- 跟踪唯一上报者以估算事件置信度与紧急程度。
- 使用 AI 支持的建议和欺诈风险信号指导调度团队。
- 为市民、响应人员和管理员提供角色导向的移动体验。
## 2. 核心架构与创新
### 2.1 高级组件
1. **Flutter 客户端 (`crisislink_ai_app`)**
- 多屏幕紧急工作流程,用于报告摄入和基于角色的仪表盘。
- 使用连接性和位置服务支持实时和离线感知行为。
- 通过 HTTP API 与后端通信。
2. **FastAPI 后端 (`backend_python`)**
- 提供 SOS、事件生命周期、分配、管理员洞察和 AI 分析所需的 REST 端点。
- 使用 SQLAlchemy 会话与 PostgreSQL 兼容的连接。
- 封装用于优先级预测、建议和可疑模式检查的 AI 逻辑。
3. **关系数据层**
- 核心实体包括事件、报告和响应者。
- 事件状态转换(活跃 -> 进行中 -> 已解决)支持操作流程。
### 2.2 架构创新
- **摄入时间的实例聚类:** 使用坐标邻近逻辑将传入的 SOS 请求匹配到附近的活动事件,以减少重复事件创建。
- **从人群信号进行优先级升级:** 唯一上报者数量被转换为优先级级别(`LOW`、`MEDIUM`、`HIGH`、`CRITICAL`)。
- **可操作的 AI 建议:** 响应人员和指挥中心接收针对事件类型的具体建议(团队/设备/升级提示)。
- **欺诈风险启发式:** 标记可疑上报模式以供人工分诊。
- **模块化 API 分段:** 业务能力拆分到专用路由器(`sos`、`assign`、`ai`、`incident`、`admin`、`report`)以提升可维护性。
## 3. 系统设计
### 3.1 逻辑流程
1. 公民从移动应用提交 SOS。
2. 后端验证有效负载并查找附近的活动事件。
3. 如果找到,请求作为报告附加;否则,打开新事件。
4. 同一电话号码对同一事件的重复报告将被忽略。
5. 重新计算唯一上报者数量并映射到更新后的优先级。
6. 调度/管理员模块查询活动事件并分配响应者。
7. AI 分析端点生成建议和欺诈风险信号。
### 3.2 组件交互图
```
flowchart LR
U[User Mobile App] -->|HTTP JSON| API[FastAPI Backend]
API --> SOS[Router: /api/sos]
API --> INC[Router: /api/incidents]
API --> ASN[Router: /api/assign]
API --> ADM[Router: /api/admin]
API --> AI[Router: /api/ai]
API --> RPT[Router: /api/reports]
SOS --> DB[(PostgreSQL / SQL layer)]
INC --> DB
ASN --> DB
ADM --> DB
AI --> DB
AI --> ML[AI Rules + Heuristics]
```
### 3.3 数据与领域模型(运营)
- **事件**
- 位置、类型、状态、优先级、唯一上报者数量。
- **报告**
- 事件引用、电话号码、报告类型、时间戳。
- **响应者**
- 可用状态、类别/类型、最后位置、当前事件绑定。
## 4. 技术栈
### 4.1 客户端
- Flutter / Dart(应用配置中的 SDK 约束)。
- 核心包:`geolocator`、`flutter_map`、`latlong2`、`http`、`shared_preferences`。
### 4.2 后端
- FastAPI + Uvicorn。
- SQLAlchemy + psycopg2。
- Pydantic 和 pydantic-settings。
- 使用 Pytest 进行集成和 API 工作流测试。
### 4.3 平台
- Flutter 目标平台:Android、iOS、macOS、Linux、Windows、Web(包含项目脚手架)。
## 5. 仓库结构
```
CrisisLink-AI/
|-- crisislink_ai_app/
| |-- lib/
| | |-- main.dart
| | |-- app.dart
| | |-- screens/
| | |-- services/
| | |-- widgets/
| | `-- utils/
| |-- test/
| |-- android/ ios/ macos/ linux/ windows/ web/
| `-- pubspec.yaml
|
`-- backend_python/
|-- app/
| |-- main.py
| |-- api/
| |-- ai/
| |-- db/
| |-- config/
| |-- services/
| |-- schemas/
| `-- utils/
|-- tests/
|-- requirements.txt
`-- pytest.ini
```
## 6. 安装
### 6.1 先决条件
- Flutter SDK(推荐稳定通道)。
- Python 3.10+。
- PostgreSQL 兼容的数据库(或基于 Supabase 的 Postgres)。
### 6.2 后端设置
从 `backend_python`:
```
python -m venv .venv
source .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
在 `backend_python` 中创建 `.env`:
```
DATABASE_URL=postgresql://:@:/
```
运行后端:
```
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
```
### 6.3 Flutter 应用设置
从 `crisislink_ai_app`:
```
flutter pub get
flutter run
```
生产构建示例:
```
flutter build apk
flutter build windows
```
## 7. 运维运行手册
### 7.1 启动顺序(本地)
1. 启动后端 API 服务。
2. 验证健康端点:`GET /`。
3. 启动 Flutter 应用目标(模拟器/设备/桌面)。
4. 对 SOS 创建和事件可见性进行冒烟测试。
### 7.2 标准运行检查
- 确认 API 可用性和响应时间。
- 验证数据库连接(通过后端数据库工具路径执行 `SELECT 1`)。
- 确认新 SOS 请求到达时事件计数更新。
- 验证响应者分配与释放生命周期。
### 7.3 事件操作生命周期
1. 摄入:SOS 请求进入系统。
2. 相关性:报告被链接或创建新事件。
3. 优先级:重新计算唯一上报者并映射。
4. 调度:调用响应者分配端点。
5. 解决:通过管理员流程将事件设为已解决。
## 8. API 接口
基础 URL(本地):`http://127.0.0.1:8000`
挂载路由器:
- `/api/sos`
- `POST /create`
- `/api/admin`
- `GET /stats`
- `GET /live-incidents`
- `POST /resolve/{incident_id}`
- `/api/ai`
- `GET /analyze/{incident_id}`
- `POST /predict-text`
- `/api/assign`
- `POST /to-incident`
- `GET /nearby-responders`
- `POST /release/{responder_id}`
- `/api/incidents`
- `GET /active`
- `GET /{incident_id}`
- `/api/reports`
- `GET /incident/{incident_id}`
- `GET /user/{phone_number}`
交互式文档:
- Swagger UI:`http://127.0.0.1:8000/docs`
- ReDoc:`http://127.0.0.1:8000/redoc`
## 9. 测试与质量
后端测试:
```
cd backend_python
python -m pytest tests -v
```
Flutter 测试:
```
cd crisislink_ai_app
flutter test
```
推荐的 CI 门槛:
- 单元测试和集成测试。
- 静态检查(`flutter analyze`、Python linting)。
- 关键端点的 API 契约验证。
## 10. 安全与合规说明
- 不要提交 `.env` 或秘密凭证。
- 在生产上线前按环境限制 CORS 来源。
- 为管理员和分配端点实现 API 认证/授权。
- 为服务用户应用数据库最小权限角色。
- 在受监管的部署中添加事件状态转换的审计跟踪。
## 11. 已知约束与改进待办
- 可通过直接在路由器函数签名中使用 Pydantic 架构进一步强化 API 契约类型。
- AI 文本预测输入处理应与生产级 NLP 行为的数据形状期望对齐
- 可将地理匹配从边界框近似升级为基于真实半径或 PostGIS 索引。
- 添加可观测性堆栈(指标、追踪、告警)以支持企业 SLA 运营。
## 所有权与贡献
本仓库旨在用于紧急响应产品生命周期内的受控开发与部署。团队贡献标准请保持分支工作流、同行评审和环境特定的发布审批。
标签:AI推荐, AI辅助决策, AV绕过, FastAPI, Flutter, HTTP API, PostgreSQL, SOS, SQLAlchemy, 事件聚类, 优先级排序, 后台系统, 多角色平台, 实时定位, 库, 应急响应, 欺诈风险, 测试用例, 离线支持, 移动应用, 紧急事件, 紧急调度, 角色权限, 逆向工具