智能应用部署

This commit is contained in:
zqm
2026-03-12 14:48:56 +08:00
parent 9e81bed829
commit 99aceb58e6
2 changed files with 586 additions and 0 deletions

197
Claw/可行性方案.md Normal file
View File

@@ -0,0 +1,197 @@
# 企业微信智控未来系统可行性方案
## 1. 项目背景
用户拥有一个未经认证的企业微信,包含应用"智控未来",以及两台服务器:
- 服务器A局域网服务器有固定IP外网可以访问相当于"大门和快递员"
- 服务器B阿里云主机在内网中外网不能访问安装了LMStudio相当于"工厂和生产线"
目标是使用Rust和React实现以下功能用户通过企业微信应用"智控未来"和微信小程序进行聊天下发任务。任务经服务器A转到服务器BB上的自建龙虾处理后返回结果给用户。
## 2. 系统架构
### 2.1 整体架构
```mermaid
sequenceDiagram
participant User as 用户
participant WeChat as 企业微信/小程序
participant Gateway as 网关服务服务器A
participant SmartClaw as SmartClaw服务服务器B
participant LMStudio as LMStudio
User->>WeChat: 发送消息/任务
WeChat->>Gateway: 回调请求
Gateway->>SmartClaw: 转发任务
SmartClaw->>SmartClaw: 处理任务(智能控制核心逻辑)
SmartClaw->>LMStudio: 调用LMStudio
LMStudio-->>SmartClaw: 返回结果
SmartClaw-->>Gateway: 转发结果
Gateway-->>WeChat: 回调响应
WeChat-->>User: 显示结果
```
### 2.2 组件说明
| 组件 | 职责 | 技术栈 |
|------|------|--------|
| 企业微信应用 | 用户交互界面,接收用户消息和任务 | 企业微信开发框架 |
| 微信小程序 | 用户交互界面,接收用户消息和任务 | React + 微信小程序框架 |
| 网关服务服务器A | 接收企业微信和小程序的请求转发到SmartClaw服务返回结果 | Rust + Actix Web |
| SmartClaw服务服务器B | 接收网关服务的请求处理用户任务调用LMStudio返回结果 | Rust + Actix Web |
| 智能控制核心逻辑 | 核心业务逻辑处理用户任务调用LMStudio | Rust |
| LMStudio | 提供AI能力辅助处理任务 | 第三方工具 |
## 3. 技术选型
### 3.1 后端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Rust | 1.70+ | 后端开发语言 |
| Actix Web | 4.0+ | Web框架处理HTTP请求 |
| Tokio | 1.0+ | 异步运行时 |
| Serde | 1.0+ | 序列化/反序列化 |
| Reqwest | 0.11+ | HTTP客户端用于服务器间通信 |
| Redis | 7.0+ | 缓存和消息队列 |
| PostgreSQL | 14.0+ | 数据存储 |
### 3.2 前端技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| React | 18.0+ | 前端开发框架 |
| TypeScript | 5.0+ | 类型系统 |
| Vite | 4.0+ | 构建工具 |
| Tailwind CSS | 3.0+ | 样式框架 |
| Axios | 1.0+ | HTTP客户端 |
| WeChat Developer Tools | 最新版 | 微信小程序开发工具 |
## 4. 网络通信方案
### 4.1 企业微信/小程序与网关服务通信
- **企业微信**使用企业微信回调机制网关服务提供HTTPS接口接收企业微信的消息推送
- **微信小程序**使用HTTPS接口与网关服务通信实现消息发送和任务下发
### 4.2 网关服务与SmartClaw服务通信
由于SmartClaw服务在内网中外网不能访问它因此采用以下方案
1. **反向代理**SmartClaw服务主动连接网关服务建立长连接
2. **WebSocket**使用WebSocket实现网关服务和SmartClaw服务之间的双向通信
3. **消息队列**使用Redis作为消息队列存储待处理的任务
### 4.3 SmartClaw服务与LMStudio通信
- 使用LMStudio提供的API接口进行通信
- 可能需要根据LMStudio的具体API进行适配
## 5. 安全考虑
### 5.1 网络安全
- 所有通信使用HTTPS加密
- 服务器A配置防火墙只开放必要的端口
- 服务器B只允许来自服务器A的连接
### 5.2 认证与授权
- 企业微信应用使用CorpID和Secret进行认证
- 微信小程序使用AppID和AppSecret进行认证
- 服务器间通信使用API密钥进行认证
### 5.3 数据安全
- 敏感数据加密存储
- 定期备份数据
- 实现访问控制,确保只有授权用户能访问相关功能
## 6. 部署方案
### 6.1 网关服务服务器A部署
1. 安装Windows Server 2012系统
2. 安装Rust环境和必要的依赖
3. 部署网关服务配置HTTPS
4. 配置企业微信和小程序的回调地址
5. 启动服务并设置为自启动
### 6.2 SmartClaw服务服务器B部署
1. 安装Windows Server 2012系统
2. 安装LMStudio
3. 安装Rust环境和必要的依赖
4. 部署SmartClaw服务
5. 配置与网关服务的通信
6. 启动服务并设置为自启动
## 7. 开发计划
### 7.1 阶段一:基础设施搭建
- 配置服务器环境
- 安装必要的软件和依赖
- 搭建开发环境
### 7.2 阶段二:后端开发
- 开发网关服务服务器A的Web服务
- 开发SmartClaw服务服务器B的Web服务
- 实现网关服务与SmartClaw服务之间的通信
- 开发智能控制核心逻辑
- 集成LMStudio API
### 7.3 阶段三:前端开发
- 开发微信小程序
- 配置企业微信应用
### 7.4 阶段四:测试与部署
- 功能测试
- 性能测试
- 安全测试
- 部署到生产环境
### 7.5 阶段五:运维与监控
- 配置监控系统
- 制定运维计划
- 建立故障处理流程
## 8. 可行性分析
### 8.1 技术可行性
- Rust语言性能优异适合高并发场景
- React生态成熟适合开发前端应用
- 企业微信和微信小程序都提供了完善的开发文档和API
- LMStudio提供了API接口可以与自建系统集成
### 8.2 网络可行性
- 服务器A有固定IP外网可以访问适合作为入口
- 服务器B可以访问外网可以主动连接服务器A
- 使用WebSocket可以实现服务器间的实时通信
### 8.3 成本可行性
- 主要成本是服务器硬件和网络费用
- 软件方面Rust和React都是开源的没有 licensing 费用
- LMStudio可能需要相应的硬件资源但可以根据实际需求进行配置
### 8.4 风险评估
| 风险 | 影响 | 应对措施 |
|------|------|----------|
| 企业微信未经认证 | 可能限制部分功能 | 尽量使用企业微信开放的基础功能,避免需要认证的高级功能 |
| SmartClaw服务在内网 | 外网无法直接访问 | 使用反向代理和WebSocket实现服务器间通信 |
| LMStudio性能 | 可能影响处理速度 | 优化智能控制核心逻辑合理使用LMStudio |
| 网络延迟 | 可能影响用户体验 | 实现异步处理,提供任务状态反馈 |
## 9. 结论
基于以上分析,本项目在技术、网络和成本方面都是可行的。通过合理的架构设计和技术选型,可以实现用户通过企业微信和微信小程序与系统进行交互,完成任务的下发、处理和结果返回。
建议按照开发计划分阶段实施,确保系统的稳定性和可靠性。同时,要注意安全防护,保护用户数据和系统资源。