Claw 项目完整结构提交
This commit is contained in:
@@ -4,11 +4,12 @@
|
||||
|
||||
Claw项目是一个企业微信智控未来系统,包含两台服务器:
|
||||
|
||||
* 服务器A:局域网服务器,有固定IP,外网可以访问
|
||||
* 服务器A:公网服务器(47.109.191.115 - pactgo.cn),配置SSL证书,外网可访问
|
||||
* 服务器B:内网服务器,安装LMStudio,只能访问外网,外网无法直接访问
|
||||
|
||||
* 服务器B:阿里云主机,在内网中,外网不能访问,安装了LMStudio
|
||||
目标是使用Rust和官方原生微信小程序技术栈实现:用户通过企业微信应用"智控未来"和微信小程序进行聊天,下发任务。任务经服务器A(网关)通过WebSocket反向连接转发到服务器B(SmartClaw),B上的LMStudio进行AI处理后返回结果给用户。
|
||||
|
||||
目标是使用Rust和React实现以下功能:用户通过企业微信应用"智控未来"和微信小程序进行聊天,下发任务。任务经服务器A转到服务器B,B上的自建龙虾处理后返回结果给用户。
|
||||
核心架构:WebSocket反向连接(B主动连接A),Embedded-Redis(仅A启动),HeedDB嵌入式数据库,原生小程序(WXML+WXSS+JS)。
|
||||
|
||||
## 项目结构设计
|
||||
|
||||
@@ -30,13 +31,21 @@ Claw/
|
||||
│ ├── target/ # 编译产出
|
||||
│ └── Cargo.toml # 项目配置
|
||||
├── client/ # 客户端代码
|
||||
│ ├── wechat_app/ # 微信应用代码
|
||||
│ │ ├── src/ # 源代码
|
||||
│ │ └── dist/ # 编译产出
|
||||
│ └── web/ # 网页版客户端代码(可选)
|
||||
│ ├── src/ # 源代码
|
||||
│ ├── dist/ # 编译产出
|
||||
│ └── package.json # 项目配置
|
||||
│ ├── wechat_app/ # 微信小程序(官方原生技术栈)
|
||||
│ │ ├── pages/ # 页面目录(index, chat, task, user)
|
||||
│ │ ├── utils/ # 工具函数(api.js, util.js, constant.js)
|
||||
│ │ ├── components/ # 自定义组件(message, task-card, user-avatar)
|
||||
│ │ ├── assets/ # 静态资源(images, icons)
|
||||
│ │ ├── app.js # 应用入口文件
|
||||
│ │ ├── app.json # 应用配置文件
|
||||
│ │ ├── app.wxss # 应用全局样式
|
||||
│ │ ├── project.config.json # 项目配置文件
|
||||
│ │ └── sitemap.json # 站点地图配置
|
||||
│ └── web/ # 企业微信网页应用(可选)
|
||||
│ ├── index.html # 网页入口
|
||||
│ ├── css/ # 样式文件
|
||||
│ ├── js/ # JavaScript文件
|
||||
│ └── assets/ # 静态资源
|
||||
├── build/ # 构建产物
|
||||
│ ├── gateway/ # 网关服务构建产物
|
||||
│ ├── SmartClaw/ # 智能控制服务构建产物
|
||||
@@ -47,8 +56,11 @@ Claw/
|
||||
│ ├── deploy_gateway.sh # 网关服务部署脚本
|
||||
│ └── deploy_smart_claw.sh # 智能控制服务部署脚本
|
||||
├── .gitignore # Git忽略文件
|
||||
├── Cargo.toml # 根Rust项目配置
|
||||
├── package.json # 客户端项目配置
|
||||
├── Cargo.toml # 根Rust项目配置(workspace)
|
||||
├── nginx.conf # nginx反向代理配置
|
||||
├── ssl/ # SSL证书目录
|
||||
│ ├── pactgo.cn-chain.pem # SSL证书链
|
||||
│ └── pactgo.cn-key.pem # SSL私钥
|
||||
└── README.md # 项目说明
|
||||
```
|
||||
|
||||
@@ -56,11 +68,11 @@ Claw/
|
||||
|
||||
| 模块 | 功能描述 |
|
||||
| ---------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| **Server/gateway** | 网关服务(服务器A),负责接收企业微信和微信小程序的请求,转发到SmartClaw服务,返回处理结果。实现HTTP接口、与SmartClaw服务的通信、企业微信和小程序的回调处理。 |
|
||||
| **Server/SmartClaw** | 智能控制服务(服务器B),负责接收网关服务的请求,处理用户任务,调用LMStudio进行AI处理,返回处理结果。实现与网关服务的通信、智能控制核心逻辑、LMStudio API集成。 |
|
||||
| **Server/shared** | 共享代码,包含网关服务和SmartClaw服务共用的代码,如数据结构、工具函数、常量定义等。 |
|
||||
| **client/wechat\_app** | 微信应用代码,包括企业微信应用"智控未来"和微信小程序,提供用户交互界面,实现消息发送和任务下发功能。 |
|
||||
| **client/web** | 网页版客户端代码(可选),提供基于网页的用户界面,实现与微信应用相同的功能,方便用户在电脑端操作。使用与微信应用相同的后端服务(网关服务),不需要额外的IIS服务器。 |
|
||||
| **Server/gateway** | 网关服务(服务器A),负责接收企业微信和微信小程序的HTTPS请求,通过WebSocket反向连接转发到SmartClaw服务,返回处理结果。实现HTTP接口、Embedded-Redis(多用户多设备状态管理)、企业微信和小程序的回调处理。 |
|
||||
| **Server/SmartClaw** | 智能控制服务(服务器B),负责通过WebSocket主动连接网关服务,接收任务请求,调用LMStudio进行AI处理,返回处理结果。实现WebSocket客户端、LMStudio API集成、HeedDB嵌入式数据存储、内网管理接口。 |
|
||||
| **Server/shared** | 共享代码,包含网关服务和SmartClaw服务共用的代码,如数据结构、工具函数、常量定义、WebSocket消息格式等。 |
|
||||
| **client/wechat\_app** | 微信小程序(官方原生技术栈:WXML+WXSS+JS),提供用户交互界面,实现用户登录、WebSocket实时通信、任务提交和状态查看功能。 |
|
||||
| **client/web** | 企业微信网页应用(可选),使用企业微信JS-SDK,提供与微信小程序相同的功能,方便用户在电脑端操作。 |
|
||||
| **build** | 构建产物目录,存放各服务和客户端的构建结果。 |
|
||||
| **docs** | 项目文档目录,存放项目说明、API文档、部署文档、使用文档等。 |
|
||||
| **scripts** | 脚本文件目录,存放构建脚本、部署脚本等。 |
|
||||
@@ -125,8 +137,9 @@ Claw/
|
||||
- **Description**:
|
||||
- 创建网关服务(gateway)的代码
|
||||
- 实现HTTP接口
|
||||
- 实现与智能控制服务(SmartClaw)的通信
|
||||
- 实现企业微信和小程序的回调处理
|
||||
- 实现与SmartClaw服务的WebSocket反向连接通信
|
||||
- 实现Embedded-Redis(多用户多设备状态管理)
|
||||
- 实现企业微信和小程序的HTTPS回调处理
|
||||
- **Success Criteria**:
|
||||
- 网关服务代码开发完成
|
||||
- HTTP接口实现正确
|
||||
@@ -136,26 +149,30 @@ Claw/
|
||||
- `programmatic` TR-3.1: 服务能正常启动
|
||||
- `programmatic` TR-3.2: HTTP接口能正确响应
|
||||
- `human-judgement` TR-3.3: 代码结构清晰、注释完善
|
||||
- **Notes**: 使用Actix Web框架
|
||||
- **Notes**: 使用Actix Web框架,集成WebSocket服务端、Embedded-Redis(多用户多设备状态管理)、HTTPS接口、企业微信和小程序回调处理
|
||||
|
||||
### [ ] Task 4: 开发SmartClaw服务
|
||||
- **Priority**: P1
|
||||
- **Depends On**: Task 2
|
||||
- **Description**:
|
||||
- 创建SmartClaw服务的代码
|
||||
- 实现与网关服务(gateway)的通信
|
||||
- 实现WebSocket客户端主动连接网关服务
|
||||
- 实现智能控制核心逻辑
|
||||
- 集成LMStudio API
|
||||
- 集成LMStudio API(流式响应SSE)
|
||||
- 集成HeedDB嵌入式数据存储
|
||||
- **Success Criteria**:
|
||||
- SmartClaw服务代码开发完成
|
||||
- 与网关服务的通信功能正常
|
||||
- WebSocket客户端主动连接功能正常
|
||||
- 智能控制核心逻辑实现正确
|
||||
- LMStudio API集成成功
|
||||
- LMStudio API集成成功(支持SSE流式响应)
|
||||
- HeedDB嵌入式数据存储功能正常
|
||||
- **Test Requirements**:
|
||||
- `programmatic` TR-4.1: 服务能正常启动
|
||||
- `programmatic` TR-4.2: 与网关服务的通信正常
|
||||
- `human-judgement` TR-4.3: 代码结构清晰、注释完善
|
||||
- **Notes**: 使用Actix Web框架,集成LMStudio API
|
||||
- `programmatic` TR-4.2: WebSocket客户端主动连接功能正常
|
||||
- `programmatic` TR-4.3: LMStudio API集成成功(支持SSE流式响应)
|
||||
- `programmatic` TR-4.4: HeedDB嵌入式数据存储功能正常
|
||||
- `human-judgement` TR-4.5: 代码结构清晰、注释完善
|
||||
- **Notes**: 使用Actix Web框架,集成WebSocket客户端、LMStudio API(SSE流式响应)、HeedDB嵌入式数据库
|
||||
|
||||
### \[ ] Task 5: 开发微信应用
|
||||
|
||||
@@ -164,34 +181,29 @@ Claw/
|
||||
* **Depends On**: Task 3
|
||||
|
||||
* **Description**:
|
||||
|
||||
* 初始化微信应用项目
|
||||
|
||||
* 开发用户界面
|
||||
|
||||
* 实现与网关服务的通信
|
||||
|
||||
* 实现消息发送和任务下发功能
|
||||
* 初始化微信小程序项目(官方原生技术栈:WXML+WXSS+JavaScript)
|
||||
* 开发用户界面(首页、聊天页、任务页、用户中心)
|
||||
* 实现用户登录授权(wx.login + wx.getUserProfile)
|
||||
* 实现与网关服务的WebSocket实时通信
|
||||
* 实现任务提交和状态查看功能
|
||||
* 配置小程序后台(服务器域名、业务域名)
|
||||
|
||||
* **Success Criteria**:
|
||||
|
||||
* 微信应用项目初始化成功
|
||||
|
||||
* 用户界面开发完成
|
||||
|
||||
* 与网关服务的通信功能正常
|
||||
|
||||
* 消息发送和任务下发功能实现正确
|
||||
* 微信小程序项目初始化成功(WXML+WXSS+JS)
|
||||
* 用户界面开发完成(首页、聊天、任务、用户中心)
|
||||
* 用户登录授权功能正常(wx.login + wx.getUserProfile)
|
||||
* WebSocket实时通信功能正常(wx.connectSocket)
|
||||
* 任务提交和状态查看功能实现正确
|
||||
* 小程序后台配置完成(服务器域名、WebSocket域名)
|
||||
|
||||
* **Test Requirements**:
|
||||
* `programmatic` TR-5.1: 微信小程序能正常运行(WXML+WXSS+JS)
|
||||
* `programmatic` TR-5.2: 用户登录授权功能正常(wx.login)
|
||||
* `programmatic` TR-5.3: WebSocket实时通信正常(wx.connectSocket)
|
||||
* `programmatic` TR-5.4: 任务提交和状态查看功能正常
|
||||
* `human-judgement` TR-5.5: 界面美观、交互流畅(原生小程序UI)
|
||||
|
||||
* `programmatic` TR-5.1: 微信应用能正常运行
|
||||
|
||||
* `programmatic` TR-5.2: 与网关服务的通信正常
|
||||
|
||||
* `human-judgement` TR-5.3: 界面美观、交互流畅
|
||||
|
||||
* **Notes**: 使用React和微信应用框架
|
||||
* **Notes**: 使用官方原生微信小程序技术栈(WXML+WXSS+JavaScript)
|
||||
|
||||
### \[ ] Task 6: 配置企业微信应用
|
||||
|
||||
@@ -221,7 +233,7 @@ Claw/
|
||||
|
||||
* `human-judgement` TR-6.2: 配置过程顺利
|
||||
|
||||
* **Notes**: 参考企业微信开发文档
|
||||
* **Notes**: 使用企业微信JS-SDK,配置回调地址为`https://pactgo.cn/wecom`
|
||||
|
||||
### [ ] Task 7: 编写构建和部署脚本
|
||||
- **Priority**: P2
|
||||
@@ -240,7 +252,7 @@ Claw/
|
||||
- `programmatic` TR-7.1: 构建脚本能正常执行,生成构建产物
|
||||
- `programmatic` TR-7.2: 部署脚本能正常执行
|
||||
- `human-judgement` TR-7.3: 部署过程文档清晰
|
||||
- **Notes**: 考虑Windows Server 2012的环境,确保构建产物能正确部署
|
||||
- * **Notes**: 考虑Windows Server 2012的环境,确保构建产物能正确部署。网关服务需配置Embedded-Redis,SmartClaw服务需配置HeedDB和LMStudio连接。
|
||||
|
||||
### \[ ] Task 8: 编写项目文档
|
||||
|
||||
@@ -290,23 +302,16 @@ Claw/
|
||||
|
||||
* **HTTP客户端**: Reqwest 0.11+
|
||||
|
||||
* **缓存和消息队列**: Redis 7.0+
|
||||
|
||||
* **数据存储**: PostgreSQL 14.0+
|
||||
* **缓存和消息队列**: Embedded-Redis(仅网关服务启动)
|
||||
* **数据存储**: HeedDB(嵌入式K/V数据库,Sled底层)
|
||||
|
||||
### 前端
|
||||
|
||||
* **框架**: React 18.0+
|
||||
|
||||
* **类型系统**: TypeScript 5.0+
|
||||
|
||||
* **构建工具**: Vite 4.0+
|
||||
|
||||
* **样式框架**: Tailwind CSS 3.0+
|
||||
|
||||
* **HTTP客户端**: Axios 1.0+
|
||||
|
||||
* **开发工具**: WeChat Developer Tools 最新版
|
||||
* **微信小程序**: WXML + WXSS + JavaScript(官方原生技术栈)
|
||||
* **企业微信网页**: 企业微信JS-SDK + HTML + CSS + JavaScript
|
||||
* **开发工具**: 微信开发者工具(官方IDE)
|
||||
* **HTTP客户端**: 原生wx.request() API
|
||||
* **WebSocket**: 原生wx.connectSocket() API
|
||||
|
||||
## 实施步骤
|
||||
|
||||
@@ -328,9 +333,8 @@ Claw/
|
||||
|
||||
3. **前端开发**:
|
||||
|
||||
* 开发微信小程序
|
||||
|
||||
* 配置企业微信应用
|
||||
* 开发微信小程序(官方原生技术栈:WXML+WXSS+JS)
|
||||
* 配置企业微信应用(企业微信JS-SDK)
|
||||
|
||||
4. **部署与测试**:
|
||||
|
||||
@@ -358,32 +362,31 @@ Claw/
|
||||
|
||||
1. **网络通信**:
|
||||
|
||||
* 服务器B在内网中,需要使用反向代理和WebSocket实现与服务器A的通信
|
||||
* 服务器B在内网中,使用WebSocket反向连接方案:SmartClaw服务主动连接网关服务的WebSocket
|
||||
|
||||
2. **安全考虑**:
|
||||
|
||||
* 所有通信使用HTTPS加密
|
||||
|
||||
* 服务器A配置防火墙,只开放必要的端口
|
||||
|
||||
* 服务器B只允许来自服务器A的连接
|
||||
|
||||
* 实现认证与授权机制
|
||||
* 所有通信使用HTTPS加密(企业微信强制要求)
|
||||
* 服务器A配置防火墙,只开放443端口(HTTPS)
|
||||
* 服务器B只允许来自服务器A的WebSocket连接
|
||||
* 实现认证与授权机制(AppID、CorpID、API密钥)
|
||||
* 使用有效SSL证书(Let's Encrypt)
|
||||
|
||||
3. **性能考虑**:
|
||||
|
||||
* 优化服务器间通信
|
||||
|
||||
* 合理使用LMStudio
|
||||
|
||||
* 优化WebSocket反向连接,实现长连接和心跳检测
|
||||
* 合理使用Embedded-Redis进行多用户状态管理
|
||||
* 合理使用LMStudio,支持流式响应(SSE)
|
||||
* 实现异步处理,提供任务状态反馈
|
||||
* 使用HeedDB嵌入式数据库,零配置高性能
|
||||
|
||||
4. **兼容性**:
|
||||
|
||||
* 考虑Windows Server 2012的环境
|
||||
|
||||
* 考虑Windows Server 2012的环境(静态链接编译)
|
||||
* 确保代码在目标环境中能正常运行
|
||||
* 网关服务需配置Embedded-Redis和SSL证书
|
||||
* SmartClaw服务需配置HeedDB和LMStudio连接
|
||||
|
||||
## 结论
|
||||
|
||||
通过以上实施计划,可以构建一个完整的企业微信智控未来系统,实现用户通过企业微信和微信小程序与系统进行交互,完成任务的下发、处理和结果返回。
|
||||
通过以上实施计划,可以构建一个完整的企业微信智控未来系统,采用WebSocket反向连接架构,使用官方原生微信小程序技术栈,实现用户通过企业微信和微信小程序与系统进行交互,完成AI任务的下发、处理和结果返回。系统具备多用户多设备管理能力,支持高并发和零配置部署。
|
||||
|
||||
274
Claw/.trae/rules/项目规则.md
Normal file
274
Claw/.trae/rules/项目规则.md
Normal file
@@ -0,0 +1,274 @@
|
||||
# 企业微信智控未来系统项目规则
|
||||
|
||||
## 1. 项目背景与目标
|
||||
|
||||
- **项目背景**:用户拥有一个未经认证的企业微信,包含应用"智控未来",以及两台服务器(服务器A:公网服务器47.109.191.115 - pactgo.cn,配置SSL证书,外网可访问;服务器B:内网服务器,安装LMStudio,只能访问外网,外网无法直接访问)
|
||||
|
||||
- **项目目标**:使用Rust和官方原生微信小程序技术栈实现:用户通过企业微信应用"智控未来"和微信小程序进行聊天,下发任务。任务经服务器A(网关)通过WebSocket反向连接转发到服务器B(SmartClaw),B上的LMStudio进行AI处理后返回结果给用户。
|
||||
|
||||
- **核心架构**:WebSocket反向连接(B主动连接A),Embedded-Redis(仅A启动),HeedDB嵌入式数据库,原生小程序(WXML+WXSS+JS)。
|
||||
|
||||
## 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: HTTPS回调请求
|
||||
Gateway->>SmartClaw: WebSocket转发任务
|
||||
SmartClaw->>SmartClaw: 处理任务(智能控制核心逻辑)
|
||||
SmartClaw->>LMStudio: HTTP调用LMStudio API
|
||||
LMStudio-->>SmartClaw: SSE流式返回结果
|
||||
SmartClaw-->>Gateway: WebSocket回传结果
|
||||
Gateway-->>WeChat: HTTPS回调响应
|
||||
WeChat-->>User: 显示结果
|
||||
```
|
||||
|
||||
### 2.2 组件说明
|
||||
|
||||
| 组件 | 职责 | 技术栈 |
|
||||
|------|------|--------|
|
||||
| 企业微信应用 | 用户交互界面,接收用户消息和任务 | 企业微信JS-SDK |
|
||||
| 微信小程序 | 用户交互界面,接收用户消息和任务 | WXML + WXSS + JavaScript(官方原生) |
|
||||
| 网关服务(服务器A) | 接收HTTPS请求,WebSocket反向连接,Embedded-Redis多用户管理 | Rust + Actix Web + Embedded-Redis |
|
||||
| SmartClaw服务(服务器B) | WebSocket客户端,处理任务,调用LMStudio,HeedDB存储 | Rust + Actix Web + HeedDB |
|
||||
| 智能控制核心逻辑 | 核心业务逻辑,处理用户任务,调用LMStudio | Rust |
|
||||
| LMStudio | 提供AI能力,SSE流式响应 | 第三方工具 |
|
||||
|
||||
## 3. 技术选型
|
||||
|
||||
### 3.1 后端技术栈
|
||||
|
||||
| 技术 | 版本 | 用途 |
|
||||
|------|------|------|
|
||||
| Rust | 1.70+ | 后端开发语言 |
|
||||
| Actix Web | 4.0+ | Web框架,处理HTTP/WebSocket请求 |
|
||||
| Tokio | 1.0+ | 异步运行时 |
|
||||
| Serde | 1.0+ | 序列化/反序列化 |
|
||||
| Reqwest | 0.11+ | HTTP客户端 |
|
||||
| Embedded-Redis | 最新版 | 嵌入式Redis(仅网关服务启动) |
|
||||
| HeedDB | 最新版 | 嵌入式K/V数据库(Sled底层) |
|
||||
|
||||
### 3.2 前端技术栈
|
||||
|
||||
| 技术 | 版本 | 用途 |
|
||||
|------|------|------|
|
||||
| WXML + WXSS + JavaScript | 最新版 | 微信小程序官方原生技术栈 |
|
||||
| 企业微信JS-SDK | 最新版 | 企业微信网页开发 |
|
||||
| 微信开发者工具 | 最新版 | 官方IDE,完整API支持 |
|
||||
| wx.request() | 原生API | HTTP客户端 |
|
||||
| wx.connectSocket() | 原生API | WebSocket通信 |
|
||||
|
||||
## 4. 网络通信方案
|
||||
|
||||
### 4.1 企业微信/小程序与网关服务通信
|
||||
|
||||
- **企业微信**:使用企业微信回调机制,网关服务提供HTTPS接口接收企业微信的消息推送,回调地址:`https://pactgo.cn/wecom`
|
||||
- **微信小程序**:使用HTTPS接口与网关服务通信,实现消息发送和任务下发,接口地址:`https://pactgo.cn/api/v1/`
|
||||
|
||||
### 4.2 网关服务与SmartClaw服务通信
|
||||
|
||||
由于SmartClaw服务在内网中,外网不能访问它,采用**WebSocket反向连接方案**:
|
||||
|
||||
1. **SmartClaw服务主动连接**:服务器B启动时,主动WebSocket连接到服务器A(wss://pactgo.cn/ws/control)
|
||||
2. **长连接保持**:维持持久WebSocket连接,支持心跳检测和断线重连
|
||||
3. **双向通信**:服务器A通过WebSocket发送任务,服务器B处理完成后回传结果
|
||||
4. **零配置**:使用Embedded-Redis(仅网关服务启动),无需独立Redis服务
|
||||
|
||||
### 4.3 SmartClaw服务与LMStudio通信
|
||||
|
||||
- 使用LMStudio提供的HTTP API接口进行通信
|
||||
- 支持SSE流式响应,实时返回AI处理结果
|
||||
- 服务器B上的LMStudio监听地址:http://127.0.0.1:1234
|
||||
|
||||
## 5. 安全考虑
|
||||
|
||||
### 5.1 网络安全
|
||||
|
||||
- 所有通信使用HTTPS加密(企业微信强制要求)
|
||||
- 服务器A配置防火墙,只开放443端口(HTTPS)
|
||||
- 服务器B只允许来自服务器A的WebSocket连接
|
||||
- 使用有效SSL证书(Let's Encrypt)
|
||||
|
||||
### 5.2 认证与授权
|
||||
|
||||
- 企业微信应用使用CorpID和Secret进行认证,回调地址:`https://pactgo.cn/wecom`
|
||||
- 微信小程序使用AppID和AppSecret进行认证,接口地址:`https://pactgo.cn/api/v1/`
|
||||
- 服务器间WebSocket通信使用预共享密钥认证
|
||||
- 多用户多设备状态管理使用Embedded-Redis
|
||||
|
||||
### 5.3 数据安全
|
||||
|
||||
- 敏感数据加密存储(HeedDB嵌入式数据库支持事务)
|
||||
- 定期备份数据
|
||||
- 实现访问控制,确保只有授权用户能访问相关功能
|
||||
- 多用户多设备状态管理使用Embedded-Redis
|
||||
|
||||
## 6. 项目结构
|
||||
|
||||
```
|
||||
Claw/
|
||||
├── Server/ # 后端服务
|
||||
│ ├── gateway/ # 网关服务(服务器A)
|
||||
│ │ ├── src/ # 源代码
|
||||
│ │ ├── target/ # 编译产出
|
||||
│ │ └── Cargo.toml # 项目配置
|
||||
│ ├── SmartClaw/ # 智能控制服务(服务器B)
|
||||
│ │ ├── src/ # 源代码
|
||||
│ │ ├── target/ # 编译产出
|
||||
│ │ └── Cargo.toml # 项目配置
|
||||
│ └── shared/ # 共享代码
|
||||
│ ├── src/ # 源代码
|
||||
│ ├── target/ # 编译产出
|
||||
│ └── Cargo.toml # 项目配置
|
||||
├── client/ # 客户端代码
|
||||
│ ├── wechat_app/ # 微信小程序(官方原生技术栈)
|
||||
│ │ ├── pages/ # 页面目录(index, chat, task, user)
|
||||
│ │ ├── utils/ # 工具函数(api.js, util.js, constant.js)
|
||||
│ │ ├── components/ # 自定义组件(message, task-card, user-avatar)
|
||||
│ │ ├── assets/ # 静态资源(images, icons)
|
||||
│ │ ├── app.js # 应用入口文件
|
||||
│ │ ├── app.json # 应用配置文件
|
||||
│ │ ├── app.wxss # 应用全局样式
|
||||
│ │ ├── project.config.json # 项目配置文件
|
||||
│ │ └── sitemap.json # 站点地图配置
|
||||
│ └── web/ # 企业微信网页应用(可选)
|
||||
│ ├── index.html # 网页入口
|
||||
│ ├── css/ # 样式文件
|
||||
│ ├── js/ # JavaScript文件
|
||||
│ └── assets/ # 静态资源
|
||||
├── build/ # 构建产物
|
||||
│ ├── gateway/ # 网关服务构建产物
|
||||
│ ├── SmartClaw/ # 智能控制服务构建产物
|
||||
│ └── client/ # 客户端构建产物
|
||||
├── docs/ # 项目文档
|
||||
├── scripts/ # 脚本文件
|
||||
│ ├── build.sh # 构建脚本
|
||||
│ ├── deploy_gateway.sh # 网关服务部署脚本
|
||||
│ └── deploy_smart_claw.sh # 智能控制服务部署脚本
|
||||
├── .gitignore # Git忽略文件
|
||||
├── Cargo.toml # 根Rust项目配置(workspace)
|
||||
├── nginx.conf # nginx反向代理配置
|
||||
├── ssl/ # SSL证书目录
|
||||
│ ├── pactgo.cn-chain.pem # SSL证书链
|
||||
│ └── pactgo.cn-key.pem # SSL私钥
|
||||
└── README.md # 项目说明
|
||||
```
|
||||
|
||||
## 7. 实施步骤
|
||||
|
||||
1. **准备阶段**:
|
||||
* 创建项目基础结构
|
||||
* 初始化Git仓库
|
||||
* 初始化Rust和前端项目
|
||||
|
||||
2. **后端开发**:
|
||||
* 开发服务器A后端(网关服务)
|
||||
* 开发服务器B后端(SmartClaw服务)
|
||||
* 测试服务器间通信
|
||||
|
||||
3. **前端开发**:
|
||||
* 开发微信小程序(官方原生技术栈:WXML+WXSS+JS)
|
||||
* 配置企业微信应用(企业微信JS-SDK)
|
||||
|
||||
4. **部署与测试**:
|
||||
* 编写部署脚本
|
||||
* 部署到服务器
|
||||
* 功能测试
|
||||
* 性能测试
|
||||
* 安全测试
|
||||
|
||||
5. **文档编写**:
|
||||
* 编写项目文档
|
||||
* 编写API文档
|
||||
* 编写部署文档
|
||||
* 编写使用文档
|
||||
|
||||
## 8. 注意事项
|
||||
|
||||
1. **网络通信**:
|
||||
* 服务器B在内网中,使用WebSocket反向连接方案:SmartClaw服务主动连接网关服务的WebSocket
|
||||
* 维持持久WebSocket连接,支持心跳检测和断线重连
|
||||
* 使用Embedded-Redis进行多用户多设备状态管理
|
||||
|
||||
2. **安全考虑**:
|
||||
* 所有通信使用HTTPS加密(企业微信强制要求)
|
||||
* 服务器A配置防火墙,只开放443端口(HTTPS)
|
||||
* 服务器B只允许来自服务器A的WebSocket连接
|
||||
* 使用有效SSL证书(Let's Encrypt)
|
||||
* 实现认证与授权机制(AppID、CorpID、API密钥)
|
||||
|
||||
3. **性能考虑**:
|
||||
* 优化WebSocket反向连接,实现长连接和心跳检测
|
||||
* 合理使用Embedded-Redis进行多用户状态管理
|
||||
* 合理使用LMStudio,支持流式响应(SSE)
|
||||
* 使用HeedDB嵌入式数据库,零配置高性能
|
||||
* 实现异步处理,提供任务状态反馈
|
||||
|
||||
4. **兼容性**:
|
||||
* 考虑Windows Server 2012的环境(静态链接编译)
|
||||
* 确保代码在目标环境中能正常运行
|
||||
* 网关服务需配置Embedded-Redis和SSL证书
|
||||
* SmartClaw服务需配置HeedDB和LMStudio连接
|
||||
|
||||
5. **部署环境**:
|
||||
* 服务器A:Windows Server 2012系统
|
||||
* 服务器B:Windows Server 2012系统,安装LMStudio
|
||||
|
||||
## 9. 开发计划
|
||||
|
||||
### 9.1 阶段一:基础设施搭建
|
||||
|
||||
- 配置服务器环境
|
||||
- 安装必要的软件和依赖
|
||||
- 搭建开发环境
|
||||
|
||||
### 9.2 阶段二:后端开发
|
||||
|
||||
- 开发网关服务(服务器A)的Web服务(Embedded-Redis多用户管理)
|
||||
- 开发SmartClaw服务(服务器B)的Web服务(WebSocket客户端)
|
||||
- 实现WebSocket反向连接通信(B主动连接A)
|
||||
- 开发智能控制核心逻辑
|
||||
- 集成LMStudio API(SSE流式响应)
|
||||
|
||||
### 9.3 阶段三:前端开发
|
||||
|
||||
- 开发微信小程序(官方原生技术栈:WXML+WXSS+JS)
|
||||
- 配置企业微信应用(企业微信JS-SDK)
|
||||
|
||||
### 9.4 阶段四:测试与部署
|
||||
|
||||
- 功能测试
|
||||
- 性能测试
|
||||
- 安全测试
|
||||
- 部署到生产环境
|
||||
|
||||
### 9.5 阶段五:运维与监控
|
||||
|
||||
- 配置监控系统
|
||||
- 制定运维计划
|
||||
- 建立故障处理流程
|
||||
|
||||
## 10. 风险评估
|
||||
|
||||
| 风险 | 影响 | 应对措施 |
|
||||
|------|------|----------|
|
||||
| 企业微信未经认证 | 可能限制部分功能 | 尽量使用企业微信开放的基础功能,避免需要认证的高级功能 |
|
||||
| SmartClaw服务在内网 | 外网无法直接访问 | 使用WebSocket反向连接方案:B主动连接A |
|
||||
| LMStudio性能 | 可能影响处理速度 | 优化智能控制核心逻辑,支持SSE流式响应 |
|
||||
| 网络延迟 | 可能影响用户体验 | 优化WebSocket长连接,实现心跳检测和断线重连 |
|
||||
| SSL证书配置 | 影响企业微信回调 | 使用Let's Encrypt自动化证书管理 |
|
||||
| 多用户并发 | 可能影响系统性能 | 使用Embedded-Redis进行多用户状态管理 |
|
||||
|
||||
## 11. 结论
|
||||
|
||||
基于以上分析,本项目在技术、网络和成本方面都是可行的。采用WebSocket反向连接架构,使用官方原生微信小程序技术栈,实现用户通过企业微信和微信小程序与系统进行交互,完成AI任务的下发、处理和结果返回。系统具备多用户多设备管理能力,支持高并发和零配置部署。
|
||||
|
||||
建议按照开发计划分阶段实施,确保系统的稳定性和可靠性。同时,要注意安全防护,保护用户数据和系统资源。
|
||||
Reference in New Issue
Block a user