灾害预警AI系统

一个基于实时天气和地震数据的AI增强灾害预警系统,提供本地交互式聊天界面和云端API服务。

  • by myusegtr
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 myusegtr/mcp-disaster-preparedness-proj-2

使用说明

🌍 防灾人工智能系统

🧭 目标

利用实时天气和地震数据,使用 FastMCP框架,具有混合部署-一个基于本地MCP的交互式聊天机器人和一个托管在上的生产级API服务器 AWS EC2.


📖 项目描述

该项目是一个由两部分组成的人工智能驱动的备灾应用程序,旨在帮助用户获取美国和全球的实时环境危害信息:

  1. 本地交互式MCP聊天界面(client.py)
    一个使用Groq支持的LLM和MCPAgent的命令行对话式人工智能工具,使用户能够按州检索实时天气警报。

    提示:- 要在本地计算机中使用FastMCP运行特定服务器,需要在代码中添加以下行,然后在本地重新启动服务器:- 如果 名字 == "主要的": mcp.run()

    在某些情况下,您必须删除这些行,然后尝试重新启动服务器。 有关更多详细信息,请参阅server/weather.json文件。

  2. 部署的灾难警报API服务器(disaster.py)
    基于FastMCP的API服务器,公开用于获取的工具:

    • 活跃天气警报(通过NOAA的NWS API)
    • 过去24小时内发生的重大地震(通过美国地质调查局GeoJSON Feed)

该系统是模块化的、可扩展的,是集成更多灾难类型、物联网触发器和用户警报渠道(短信、电子邮件、Webhooks)的基础。


🛠️ 使用的工具和技术

🧑‍💻 两部分共有的

  • Python 3.11+
  • FastMCP --构建基于代理和工具的应用程序的框架。
  • LangChain + Groq 公司 --用于LLM聊天集成。
  • httpx --用于数据获取的异步HTTP客户端。
  • MCPAgent/MCPClient --用于管理工具和代理逻辑。
  • 开放性应用程序接口:
    • NOAA国家气象局API
    • 美国地质勘探局地震GeoJSON API

📍 第1部分——本地聊天界面(client.py)

  • LangChain 公司 (Qwen QWQ-32B型号)
  • .env 用于存储API密钥的文件
  • 基于CLI的支持内存的会话系统

☁️ 第2部分——部署的服务器(disaster.py)

  • 通过FastMCP实现FastAPI
  • 托管使用 AWS EC2免费层
  • 可选: uvicorn 为API服务

✅ 推断/结论

这个由人工智能驱动的灾难警报系统提供:

  • 实时、多源警报
  • 灵活部署:本地开发+云生产
  • 模块化工具定义 便于扩展
  • LLM内存支持 用于交互式查询

通过将美国政府的关键数据源与现代人工智能接口集成,它展示了如何使用轻量级Python工具和云计算实现可访问和主动的灾难情报。


🚀 部署(AWS EC2)

使用AWS EC2实例进行部署

Amazon EC2(弹性计算云)充当远程虚拟服务器来运行生产级Python应用程序。

🧱 先决条件

  • AWS帐户(免费层)
  • 包含代码的GitHub存储库
  • .pem EC2访问的密钥对

🔧 逐步设置

  1. 登录AWS控制台

    • 首选https://console.aws.amazon.com
  2. 启动EC2实例

    • EC2 → 启动实例
    • 姓名: mcp-server
    • 操作系统:亚马逊Linux 2023(免费版)
    • 类型: t2.micro
    • 密钥对:创建/下载 .pem 文件
    • 网络:启用 SSH(端口22) 并且可选 HTTP(80)
  3. 通过SSH连接到EC2

    ssh -i "your-key.pem" ec2-user@<your-ec2-public-ip>
    
    
  4. 在EC2上安装Python和Git

    sudo yum update -y
    sudo yum install python3 git -y
    
    
  5. 📥 克隆您的GitHub存储库

    git clone https://github.com/your-username/your-repo.git
    cd your-repo
    
    
  6. 🧪 设置Python虚拟环境

    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt 
    
    
  7. 运行API服务器

    uvicorn disaster:app --host 0.0.0.0 --port 8000
    Open the url received in browser
    
    
  8. 💡 进一步改善

    🌐 使用React或Vue可视化警报的前端仪表板

    📲 推送通知(短信、电子邮件、电报机器人)

    📊 随时间推移的警报严重性分析

    🔒 OAuth集成以实现安全访问

    🛰️ 物联网传感器数据集成(洪水、地震、火灾传感器)

    📁 日志存储和警报历史归档(S3或DynamoDB)

🖥️ 如何在本地使用

克隆Repo

git clone https://github.com/your-username/your-repo.git
cd your-repo

**Initialize Groq api key and install requirements**
 GROQ_API_KEY=your_groq_api_key
 ```bash
 pip install -r requirements.txt

**Run locally in terminal**
 ```bash
 uv run server/client.py
 uv run mcp dev server/multialert.py



![App Screenshot](screenshots.img1)
![App Screenshot](screenshots.img2)
![App Screenshot](screenshots.img3)
![App Screenshot](screenshots.img4)