🌍 防灾人工智能系统
🧭 目标
利用实时天气和地震数据,使用 FastMCP框架,具有混合部署-一个基于本地MCP的交互式聊天机器人和一个托管在上的生产级API服务器 AWS EC2.
______________________________________________________________________
📖 项目描述
该项目是一个由两部分组成的人工智能驱动的备灾应用程序,旨在帮助用户获取美国和全球的实时环境危害信息:
- 本地交互式MCP聊天界面(
client.py)\
一个使用Groq支持的LLM和MCPAgent的命令行对话式人工智能工具,使用户能够按州检索实时天气警报。
提示:- 要在本地计算机中使用FastMCP运行特定服务器,需要在代码中添加以下行,然后在本地重新启动服务器:- 如果 __名字__ == "__主要的__": mcp.run()
在某些情况下,您必须删除这些行,然后尝试重新启动服务器。 有关更多详细信息,请参阅server/weather.json文件。
- 部署的灾难警报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存储库
.pemEC2访问的密钥对
🔧 逐步设置
- 登录AWS控制台
- 首选https://console.aws.amazon.com
- 启动EC2实例
- EC2 → 启动实例 - 姓名: mcp-server - 操作系统:亚马逊Linux 2023(免费版) - 类型: t2.micro - 密钥对:创建/下载 .pem 文件 - 网络:启用 SSH(端口22) 并且可选 HTTP(80)
- 通过SSH连接到EC2
ssh -i "your-key.pem" ec2-user@
- 在EC2上安装Python和Git
sudo yum update -y
sudo yum install python3 git -y
- 📥 克隆您的GitHub存储库
git clone https://github.com/your-username/your-repo.git
cd your-repo
- 🧪 设置Python虚拟环境
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- 运行API服务器
uvicorn disaster:app --host 0.0.0.0 --port 8000
Open the url received in browser
- 💡 进一步改善
🌐 使用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_keypip install -r requirements.txt
Run locally in terminal
uv run server/client.py
uv run mcp dev server/multialert.py




