Files
JoyD/Claw/.trae/documents/project_structure_plan.md
2026-03-16 15:47:55 +08:00

393 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Claw项目 - 工程项目结构实施计划
## 项目背景
Claw项目是一个企业微信智控未来系统包含两台服务器
* 服务器A公网服务器47.109.191.115 - pactgo.cn配置SSL证书外网可访问
* 服务器B内网服务器安装LMStudio只能访问外网外网无法直接访问
目标是使用Rust和官方原生微信小程序技术栈实现用户通过企业微信应用"智控未来"和微信小程序进行聊天下发任务。任务经服务器A网关通过WebSocket反向连接转发到服务器BSmartClawB上的LMStudio进行AI处理后返回结果给用户。
核心架构WebSocket反向连接B主动连接AEmbedded-Redis仅A启动HeedDB嵌入式数据库原生小程序WXML+WXSS+JS
## 项目结构设计
### 整体结构
```
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 # 项目说明
```
### 模块功能描述
| 模块 | 功能描述 |
| ---------------------- | ------------------------------------------------------------------------------------------- |
| **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** | 脚本文件目录,存放构建脚本、部署脚本等。 |
## 实施任务
### \[ ] Task 1: 创建项目基础结构
* **Priority**: P0
* **Depends On**: None
* **Description**:
* 创建项目的基础目录结构包括Server、client、build、docs、scripts等目录
* 初始化Git仓库
* 创建.gitignore文件忽略编译产出目录和构建产物目录
* **Success Criteria**:
* 项目目录结构创建完成,包括所有必要的子目录
* Git仓库初始化成功
* .gitignore文件配置合理忽略编译产出和构建产物
* **Test Requirements**:
* `programmatic` TR-1.1: 目录结构符合设计要求,包含所有必要的目录
* `programmatic` TR-1.2: .gitignore文件存在且配置合理
* `human-judgement` TR-1.3: 目录结构清晰、合理
* **Notes**: 按照整体结构设计创建目录,确保包含编译产出和构建产物目录
### [ ] Task 2: 初始化Server项目
- **Priority**: P0
- **Depends On**: Task 1
- **Description**:
- 初始化网关服务gateway的Rust项目
- 初始化智能控制服务SmartClaw的Rust项目
- 初始化共享代码的Rust项目
- 创建各自的Cargo.toml配置文件
- 设置依赖项
- **Success Criteria**:
- 所有Rust项目初始化成功
- 各自的Cargo.toml配置正确
- 依赖项设置合理
- 编译产出目录结构正确
- **Test Requirements**:
- `programmatic` TR-2.1: 各项目的Cargo.toml文件存在且配置正确
- `programmatic` TR-2.2: 依赖项能正确安装
- `programmatic` TR-2.3: 项目能成功编译,生成编译产出
- **Notes**: 使用Cargo初始化Rust项目确保每个项目都有独立的编译产出目录
### [ ] Task 3: 开发网关服务
- **Priority**: P1
- **Depends On**: Task 2
- **Description**:
- 创建网关服务gateway的代码
- 实现HTTP接口
- 实现与SmartClaw服务的WebSocket反向连接通信
- 实现Embedded-Redis多用户多设备状态管理
- 实现企业微信和小程序的HTTPS回调处理
- **Success Criteria**:
- 网关服务代码开发完成
- HTTP接口实现正确
- 与SmartClaw服务的通信功能正常
- 企业微信和小程序的回调处理正常
- **Test Requirements**:
- `programmatic` TR-3.1: 服务能正常启动
- `programmatic` TR-3.2: HTTP接口能正确响应
- `human-judgement` TR-3.3: 代码结构清晰、注释完善
- **Notes**: 使用Actix Web框架集成WebSocket服务端、Embedded-Redis多用户多设备状态管理、HTTPS接口、企业微信和小程序回调处理
### [ ] Task 4: 开发SmartClaw服务
- **Priority**: P1
- **Depends On**: Task 2
- **Description**:
- 创建SmartClaw服务的代码
- 实现WebSocket客户端主动连接网关服务
- 实现智能控制核心逻辑
- 集成LMStudio API流式响应SSE
- 集成HeedDB嵌入式数据存储
- **Success Criteria**:
- SmartClaw服务代码开发完成
- WebSocket客户端主动连接功能正常
- 智能控制核心逻辑实现正确
- LMStudio API集成成功支持SSE流式响应
- HeedDB嵌入式数据存储功能正常
- **Test Requirements**:
- `programmatic` TR-4.1: 服务能正常启动
- `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 APISSE流式响应、HeedDB嵌入式数据库
### \[ ] Task 5: 开发微信应用
* **Priority**: P1
* **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
* **Notes**: 使用官方原生微信小程序技术栈WXML+WXSS+JavaScript
### \[ ] Task 6: 配置企业微信应用
* **Priority**: P2
* **Depends On**: Task 3
* **Description**:
* 配置企业微信应用
* 设置回调地址
* 实现消息推送处理
* **Success Criteria**:
* 企业微信应用配置完成
* 回调地址设置正确
* 消息推送处理功能实现正确
* **Test Requirements**:
* `programmatic` TR-6.1: 企业微信回调能正确处理
* `human-judgement` TR-6.2: 配置过程顺利
* **Notes**: 使用企业微信JS-SDK配置回调地址为`https://pactgo.cn/wecom`
### [ ] Task 7: 编写构建和部署脚本
- **Priority**: P2
- **Depends On**: Task 3, Task 4, Task 5
- **Description**:
- 编写构建脚本,生成构建产物
- 编写网关服务的部署脚本,部署构建产物
- 编写SmartClaw服务的部署脚本部署构建产物
- 编写配置文件
- **Success Criteria**:
- 构建脚本编写完成,能生成构建产物
- 部署脚本编写完成
- 配置文件创建完成
- 部署过程顺利
- **Test Requirements**:
- `programmatic` TR-7.1: 构建脚本能正常执行,生成构建产物
- `programmatic` TR-7.2: 部署脚本能正常执行
- `human-judgement` TR-7.3: 部署过程文档清晰
- * **Notes**: 考虑Windows Server 2012的环境确保构建产物能正确部署。网关服务需配置Embedded-RedisSmartClaw服务需配置HeedDB和LMStudio连接。
### \[ ] Task 8: 编写项目文档
* **Priority**: P2
* **Depends On**: All
* **Description**:
* 编写项目说明文档
* 编写API文档
* 编写部署文档
* 编写使用文档
* **Success Criteria**:
* 项目文档编写完成
* API文档完整
* 部署文档清晰
* 使用文档详细
* **Test Requirements**:
* `human-judgement` TR-8.1: 文档内容完整、清晰
* `human-judgement` TR-8.2: 文档格式规范
* **Notes**: 使用Markdown格式
## 技术选型
### 后端
* **语言**: Rust 1.70+
* **框架**: Actix Web 4.0+
* **异步运行时**: Tokio 1.0+
* **序列化/反序列化**: Serde 1.0+
* **HTTP客户端**: Reqwest 0.11+
* **缓存和消息队列**: Embedded-Redis仅网关服务启动
* **数据存储**: HeedDB嵌入式K/V数据库Sled底层
### 前端
* **微信小程序**: WXML + WXSS + JavaScript官方原生技术栈
* **企业微信网页**: 企业微信JS-SDK + HTML + CSS + JavaScript
* **开发工具**: 微信开发者工具官方IDE
* **HTTP客户端**: 原生wx.request() API
* **WebSocket**: 原生wx.connectSocket() API
## 实施步骤
1. **准备阶段**:
* 创建项目基础结构
* 初始化Git仓库
* 初始化Rust和前端项目
2. **后端开发**:
* 开发服务器A后端
* 开发服务器B后端
* 测试服务器间通信
3. **前端开发**:
* 开发微信小程序官方原生技术栈WXML+WXSS+JS
* 配置企业微信应用企业微信JS-SDK
4. **部署与测试**:
* 编写部署脚本
* 部署到服务器
* 功能测试
* 性能测试
* 安全测试
5. **文档编写**:
* 编写项目文档
* 编写API文档
* 编写部署文档
* 编写使用文档
## 注意事项
1. **网络通信**:
* 服务器B在内网中使用WebSocket反向连接方案SmartClaw服务主动连接网关服务的WebSocket
2. **安全考虑**:
* 所有通信使用HTTPS加密企业微信强制要求
* 服务器A配置防火墙只开放443端口HTTPS
* 服务器B只允许来自服务器A的WebSocket连接
* 实现认证与授权机制AppID、CorpID、API密钥
* 使用有效SSL证书Let's Encrypt
3. **性能考虑**:
* 优化WebSocket反向连接实现长连接和心跳检测
* 合理使用Embedded-Redis进行多用户状态管理
* 合理使用LMStudio支持流式响应SSE
* 实现异步处理,提供任务状态反馈
* 使用HeedDB嵌入式数据库零配置高性能
4. **兼容性**:
* 考虑Windows Server 2012的环境静态链接编译
* 确保代码在目标环境中能正常运行
* 网关服务需配置Embedded-Redis和SSL证书
* SmartClaw服务需配置HeedDB和LMStudio连接
## 结论
通过以上实施计划可以构建一个完整的企业微信智控未来系统采用WebSocket反向连接架构使用官方原生微信小程序技术栈实现用户通过企业微信和微信小程序与系统进行交互完成AI任务的下发、处理和结果返回。系统具备多用户多设备管理能力支持高并发和零配置部署。