RP_SL1_Chat-恢复点管理聊天界面
一个专业的聊天界面,用于通过MCP工具管理Restorepoint网络设备。
🚀 特性
- 动态工具发现:通过实时同步从MCP服务器自动发现工具
- 智能高速缓存:具有5分钟TTL和自动回退机制的智能工具缓存
- 主题控制:仅处理与Restorepoint相关任务的AI助手
- HTTP架构:与MCP服务器进行干净的基于HTTP的通信(无stdio复杂性)
- z.ai集成:采用GLM-4.6模型进行先进的人工智能处理,具有动态刀具注入功能
- 专业用户界面:为网络工程师设计的简洁界面
- 实时响应:使用工具执行流式聊天体验
- 严格验证:仅用于网络管理的输入和输出验证
- 差错恢复:多个回退层和自动服务恢复
- 健康监测:全面的服务健康跟踪和报告
📋 快速开始
先决条件
- Node.js 18+
- 启用HTTP模式运行的MCP服务器(
ENABLE_HTTP_SERVER=true) - z.ai API密钥(人工智能功能所需)
- 恢复点API凭据(在MCP服务器中配置)
安装
# Clone repository
git clone
cd RP_SL1_Chat
# Run the local setup script
./deployment/scripts/setup-local.sh
# Or manually install dependencies
npm run install:all
# Copy environment template
cp .env.example .env
# IMPORTANT: Edit .env and add your z.ai API key
nano .env
# Add your ZAI_API_KEY to enable AI functionality
# ZAI_API_KEY=your_actual_zai_api_key_here发展
# Start both frontend and backend
npm run dev
# Start individually
npm run dev:frontend # Frontend: http://localhost:3001
npm run dev:backend # Backend: http://localhost:4001🏗️ 项目结构
RP_SL1_Chat/
├── frontend/ # React SPA
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── services/ # API services
│ │ ├── types/ # TypeScript types
│ │ └── utils/ # Utilities and constants
│ ├── public/ # Static files
│ └── package.json # Frontend dependencies
├── backend/ # Node.js API Gateway
│ ├── src/
│ │ ├── middleware/ # Express middleware
│ │ ├── routes/ # API routes
│ │ ├── services/ # Business logic
│ │ ├── types/ # TypeScript types
│ │ └── utils/ # Utilities
│ └── package.json # Backend dependencies
├── deployment/ # Deployment scripts and configs
│ ├── scripts/ # Setup and deployment scripts
│ ├── nginx/ # Nginx configuration
│ └── systemd/ # Systemd service files
├── TODO.md # Implementation tracking
├── package.json # Root package.json
└── .env.example # Environment variables template🏗️ 建筑
基于HTTP的通信
聊天界面使用干净的HTTP架构与MCP服务器进行通信:
Frontend (React) → Backend API → HTTP Client → MCP Server (HTTP mode)
localhost:3001 localhost:4001 localhost:3000关键组件
- 前端:React SPA提供聊天界面
- 后端API:处理聊天请求和AI集成的Express服务器
- z.ai服务:使用动态工具注入处理自然语言并生成工具调用
- 工具发现服务:从MCP服务器动态发现和缓存工具
- MCP HTTP网桥:将工具调用转换为HTTP请求
- MCP服务器:以HTTP模式运行(
ENABLE_HTTP_SERVER=true)
数据流
- 用户通过聊天界面发送消息
- 后端验证主题(仅限恢复点)
- 工具发现服务为z.ai提供动态工具
- z.ai使用实时MCP服务器模式处理消息并生成工具调用
- MCP HTTP桥通过HTTP API执行工具
- 结果被格式化并返回给用户
动态工具发现
该系统现在具有以下功能 实时工具发现 自动:
- 发现 启动时MCP服务器的所有可用工具
- 缓存 具有5分钟TTL的工具定义,以提高性能
- 提示 每2分钟使用一次工具以保持同步
- 倒退 如果MCP服务器不可用,则缓存工具
- 确认 针对实际MCP服务器实现的工具模式
这消除了对静态工具定义的需求,并确保AI始终可以访问具有准确模式的最新可用工具。
配置
- 聊天后端:用途
.envz.ai API密钥和MCP服务器连接的文件 - MCP服务器:用途
config.json用于还原点API凭据 - HTTP模式:MCP服务器必须与一起运行
ENABLE_HTTP_SERVER=true
💬 用法
- 打开http://localhost:3001在浏览器中
- 使用建议的问题或询问:
- 设备管理 - 备份操作 - 命令执行 - 网络监控
示例问题
- “显示网络上的所有设备”
- “哪些设备需要备份?”
- “在设备X上运行备份”
- “显示最近执行的命令”
- “设备Y的状态如何?”
🔒 主题限制
聊天界面仅用于协助Restorepoint网络管理任务。它将拒绝回答一般问题或提供非恢复点协助。
有效主题
- 设备管理(列表、创建、更新、删除)
- 备份操作(列表、获取、创建)
- 命令执行(列表、获取)
- 网络监控和状态
无效主题
- 天气、新闻、常识
- 非网络相关问题
- 笑话、娱乐、个人建议
🛠️ 发展
脚本
# Development
npm run dev # Start both services
npm run dev:frontend # Frontend only
npm run dev:backend # Backend only
# Building
npm run build # Build both
npm run build:frontend # Build frontend only
npm run build:backend # Build backend only
# Testing
npm test # Run all tests
npm run test:frontend # Frontend tests
npm run test:backend # Backend tests
# Code Quality
npm run lint # Lint all code
npm run lint:fix # Auto-fix linting issues
# Maintenance
npm run clean # Clean node_modules and dist
npm run install:all # Install all dependencies🚀 生产部署
先决条件
- AWS EC2实例(Amazon Linux 2)
- 域名(可选)
- SSL证书(可选)
AWS部署
# Deploy to AWS EC2
./deployment/scripts/deploy-chat-to-aws.sh \
--ip 1.2.3.4 \
--key ~/.ssh/my-key.pem \
--repo https://github.com/user/RP_SL1_Chat.git手动部署步骤
- 服务器设置
sudo yum update -y
sudo yum install -y git nginx
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs- 应用程序设置
git clone
cd RP_SL1_Chat
npm run install:all
npm run build
cp .env.example .env
# Edit .env with production values- 服务配置
sudo cp deployment/systemd/chat-backend.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable chat-backend
sudo systemctl start chat-backend- Nginx配置
sudo cp deployment/nginx/chat-app.conf /etc/nginx/conf.d/
sudo rm /etc/nginx/conf.d/default.conf
sudo systemctl restart nginx🔧 配置
环境变量
复制 .env.example 到 .env 并配置:
# Frontend
VITE_APP_API_URL=http://localhost:4001/api
VITE_APP_TITLE=Restorepoint Chat Interface
# Backend
NODE_ENV=development
PORT=4001
ZAI_API_KEY=your_zai_api_key_here
# MCP_SERVER_PATH=../RP_SL1_MCP # DEPRECATED - Use HTTP architecture instead
MCP_SERVER_HOST=localhost
MCP_SERVER_PORT=3000
# Security
ALLOWED_ORIGINS=http://localhost:3001,http://localhost:3000
LOG_LEVEL=debug
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100生产变量
NODE_ENV=production
ZAI_API_KEY=production_zai_key
ALLOWED_ORIGINS=https://your-chat-domain.com
LOG_LEVEL=warn🔍 监控和故障排除
健康检查
- 前端:http://localhost:3001
- 后端API:http://localhost:4001/api/health
日志
# Backend logs
tail -f backend/logs/combined.log
tail -f backend/logs/error.log
# Systemd service logs (production)
sudo journalctl -u chat-backend -f
# Nginx logs
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log服务状态
# Development
npm run dev
# Production
sudo systemctl status chat-backend
sudo systemctl status nginx🧪 测试
API测试
# Health check
curl http://localhost:4001/api/health
# Chat endpoint
curl -X POST http://localhost:4001/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Show me all devices"}'验证测试
# Test invalid input
curl -X POST http://localhost:4001/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "What is the weather?"}'🤝 贡献
- 遵循中定义的编码标准
CLAUDE.md - 提交前运行测试
- 使用带有清晰消息的原子提交
- 创建拉取请求以供审核
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件
🆘 支持
对于问题和疑问:
- 检查登录
backend/logs/ - 验证环境变量是否设置正确
- 确保MCP服务器正在运行且可访问
- 检查服务之间的网络连接
______________________________________________________________________
内置于❤️ 面向网络工程师
