项目简介
空气监测界面系统 (AMI) 是一个基于Django框架构建的Web应用,主要功能是接收、存储、可视化和导出环境传感器(如温度、湿度、CO2、PM1.0、PM2.5、PM10.0)的数据。作为一个特色功能,它集成了一个AI聊天机器人,该机器人利用 Model Context Protocol (MCP) 与AMI系统的MCP服务器组件通信。MCP服务器将AMI系统的部分核心功能(如数据查询、问题报告、用户配置管理)封装成标准化的工具(Tools),供LLM客户端调用,从而实现通过自然语言与系统交互的能力。
主要功能点
- 传感器数据接收与存储: 提供API端点接收来自各种环境传感器的数据,并将数据持久化存储。
- 传感器数据查询与可视化: 提供RESTful API查询存储的数据,支持按时间范围过滤。Web界面通过图表展示数据趋势。
- 数据导出: 允许用户将指定时间范围和传感器类型的数据导出为CSV或JSON格式文件。
- 用户认证与管理: 实现用户注册、登录、登出、个人资料和密码修改等基本用户管理功能。
- 阈值邮件通知: 用户可设定传感器读数阈值,当超过阈值时系统会发送邮件提醒。
- 数据分析与推荐: 提供当前和历史传感器数据的分析报告,并基于数据提供改善室内环境的建议。
- AI聊天机器人 (LLM集成): 集成外部LLM(如DeepSeek AI),用户可以通过聊天界面查询传感器数据、获取分析结果、报告系统问题或更新个人设置。这些高级交互通过LLM调用MCP服务器提供的工具实现。
- MCP服务器组件: 作为AMI系统的一部分,暴露了访问传感器数据和用户相关操作的工具接口,遵循MCP标准,与LLM客户端通信。
安装步骤
本项目是一个完整的Web应用,包含MCP服务器组件。MCP服务器通常需要通过MCPO工具作为代理运行。
- 克隆仓库:
git clone https://github.com/panhyer36/sensor_monitor.git cd sensor_monitor - 创建并激活Python虚拟环境:
python -m venv venv # 在 Linux/macOS 上: source venv/bin/activate # 在 Windows 上: venv\Scripts\activate - 安装依赖:
请确保已安装 'mcpo' ('pip install mcpo'),这是运行MCP服务器所必需的代理工具。pip install -r requirements.txt - 设置邮箱环境变量:
创建 '.env' 文件在项目根目录下(与 'manage.py' 同级),并添加以下变量用于邮件通知功能:
请参考Google文档创建应用密码。EMAIL_HOST_USER=你的Gmail邮箱地址 EMAIL_HOST_PASSWORD=你的Gmail应用密码 - 创建管理员用户和迁移数据库:
运行以下命令设置数据库和创建默认管理员用户:
python create_admin.py # 或使用 Django 命令: # python manage.py createsuperuser python manage.py makemigrations python manage.py migrate # 可选:运行管理命令为现有用户创建UserProfile(通常新用户注册时会自动创建) # python manage.py create_user_profiles - 运行Django Web服务器:
在一个终端窗口中运行:
python manage.py runserver - 运行MCP服务器 (通过MCPO代理):
在一个新的终端窗口中运行MCPO工具,启动AMI的MCP服务器脚本:
注意: '--host' 和 '--port' 参数是MCPO监听的地址和端口,LLM客户端(例如项目自带的Chatbot或外部客户端)将连接到这个地址来调用MCP服务器提供的工具。'-- python MCP_server/mcp_server.py' 是实际启动MCP服务器进程的命令及其参数。mcpo --host 127.0.0.1 --port 8002 -- python MCP_server/mcp_server.py
服务器配置 (供MCP客户端使用)
本项目中的MCP服务器是 'MCP_server/mcp_server.py' 脚本,它设计为通过Stdio传输协议与MCPO代理通信。MCPO作为中间层,负责将外部请求(例如来自Chatbot的HTTP请求或来自其他MCP客户端的JSON-RPC over Stdio/WebSocket/SSE请求)转发给 'mcp_server.py' 进程。
对于希望连接到此MCP服务器的MCP客户端,需要知道如何启动并连接到这个特定的服务器进程。通常这通过配置客户端连接参数实现,这些参数描述了如何找到或启动服务器进程。
以下是 MCP 客户端可能需要配置的关键信息:
- 服务器名称 (Server Name): 'sensor_data_mcp' (在 'MCP_server/mcp_server.py' 中定义)
- 服务器启动命令 (Command): 'python' (执行Python脚本的解释器)
- 命令参数 (Args): 'MCP_server/mcp_server.py' (MCP服务器脚本的路径)
- 传输协议 (Transport): 'stdio' (项目 MCP 服务器默认使用的协议)
- 连接地址 (Address): 通常由MCPO代理负责,如果MCPO配置为监听特定网络端口,客户端可能需要配置相应的地址(例如 'http://127.0.0.1:8002')。本项目自带的Chatbot客户端使用了一种内部机制来管理MCPO代理进程,并直接或间接与其通信。
请注意: MCP客户端的实际配置格式和方式取决于所使用的客户端库或框架。上述信息是启动和连接到AMI系统MCP服务器的核心要素。
基本使用方法
- 确保Django Web服务器和MCPO代理(以及其启动的MCP服务器)都在运行。
- 通过浏览器访问Django Web服务器地址(通常是 'http://127.0.0.1:8000')。
- 注册并登录AMI系统。
- 通过导航菜单访问不同的页面:
- 仪表板/主页: 查看最新传感器数据(需要传感器数据写入)。
- 数据导出: 导出历史传感器数据。
- 数据分析: 查看传感器数据的统计分析和环境建议。
- 个人资料: 修改个人信息、设置邮件通知和传感器阈值、配置LLM API Key。
- 报告问题: 提交系统问题或建议。
- Chatbot/DeepSeek Chat: 与AI聊天机器人互动,通过自然语言查询传感器数据或执行工具操作。
- (可选)实现一个传感器数据发送客户端,向 '/api/sensor/' 端点发送POST请求,以填充数据库并看到数据可视化和分析结果。
信息
分类
AI与计算