Files
JoyD/Claw/.trae/documents/project_structure_plan.md
2026-03-12 14:48:56 +08:00

390 lines
12 KiB
Markdown
Raw Permalink 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局域网服务器有固定IP外网可以访问
* 服务器B阿里云主机在内网中外网不能访问安装了LMStudio
目标是使用Rust和React实现以下功能用户通过企业微信应用"智控未来"和微信小程序进行聊天下发任务。任务经服务器A转到服务器BB上的自建龙虾处理后返回结果给用户。
## 项目结构设计
### 整体结构
```
Claw/
├── Server/ # 后端服务
│ ├── gateway/ # 网关服务服务器A
│ │ ├── src/ # 源代码
│ │ ├── target/ # 编译产出
│ │ └── Cargo.toml # 项目配置
│ ├── SmartClaw/ # 智能控制服务服务器B
│ │ ├── src/ # 源代码
│ │ ├── target/ # 编译产出
│ │ └── Cargo.toml # 项目配置
│ └── shared/ # 共享代码
│ ├── src/ # 源代码
│ ├── target/ # 编译产出
│ └── Cargo.toml # 项目配置
├── client/ # 客户端代码
│ ├── wechat_app/ # 微信应用代码
│ │ ├── src/ # 源代码
│ │ └── dist/ # 编译产出
│ └── web/ # 网页版客户端代码(可选)
│ ├── src/ # 源代码
│ ├── dist/ # 编译产出
│ └── package.json # 项目配置
├── build/ # 构建产物
│ ├── gateway/ # 网关服务构建产物
│ ├── SmartClaw/ # 智能控制服务构建产物
│ └── client/ # 客户端构建产物
├── docs/ # 项目文档
├── scripts/ # 脚本文件
│ ├── build.sh # 构建脚本
│ ├── deploy_gateway.sh # 网关服务部署脚本
│ └── deploy_smart_claw.sh # 智能控制服务部署脚本
├── .gitignore # Git忽略文件
├── Cargo.toml # 根Rust项目配置
├── package.json # 客户端项目配置
└── README.md # 项目说明
```
### 模块功能描述
| 模块 | 功能描述 |
| ---------------------- | ------------------------------------------------------------------------------------------- |
| **Server/gateway** | 网关服务服务器A负责接收企业微信和微信小程序的请求转发到SmartClaw服务返回处理结果。实现HTTP接口、与SmartClaw服务的通信、企业微信和小程序的回调处理。 |
| **Server/SmartClaw** | 智能控制服务服务器B负责接收网关服务的请求处理用户任务调用LMStudio进行AI处理返回处理结果。实现与网关服务的通信、智能控制核心逻辑、LMStudio API集成。 |
| **Server/shared** | 共享代码包含网关服务和SmartClaw服务共用的代码如数据结构、工具函数、常量定义等。 |
| **client/wechat\_app** | 微信应用代码,包括企业微信应用"智控未来"和微信小程序,提供用户交互界面,实现消息发送和任务下发功能。 |
| **client/web** | 网页版客户端代码可选提供基于网页的用户界面实现与微信应用相同的功能方便用户在电脑端操作。使用与微信应用相同的后端服务网关服务不需要额外的IIS服务器。 |
| **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的通信
- 实现企业微信和小程序的回调处理
- **Success Criteria**:
- 网关服务代码开发完成
- HTTP接口实现正确
- 与SmartClaw服务的通信功能正常
- 企业微信和小程序的回调处理正常
- **Test Requirements**:
- `programmatic` TR-3.1: 服务能正常启动
- `programmatic` TR-3.2: HTTP接口能正确响应
- `human-judgement` TR-3.3: 代码结构清晰、注释完善
- **Notes**: 使用Actix Web框架
### [ ] Task 4: 开发SmartClaw服务
- **Priority**: P1
- **Depends On**: Task 2
- **Description**:
- 创建SmartClaw服务的代码
- 实现与网关服务gateway的通信
- 实现智能控制核心逻辑
- 集成LMStudio API
- **Success Criteria**:
- SmartClaw服务代码开发完成
- 与网关服务的通信功能正常
- 智能控制核心逻辑实现正确
- LMStudio API集成成功
- **Test Requirements**:
- `programmatic` TR-4.1: 服务能正常启动
- `programmatic` TR-4.2: 与网关服务的通信正常
- `human-judgement` TR-4.3: 代码结构清晰、注释完善
- **Notes**: 使用Actix Web框架集成LMStudio API
### \[ ] Task 5: 开发微信应用
* **Priority**: P1
* **Depends On**: Task 3
* **Description**:
* 初始化微信应用项目
* 开发用户界面
* 实现与网关服务的通信
* 实现消息发送和任务下发功能
* **Success Criteria**:
* 微信应用项目初始化成功
* 用户界面开发完成
* 与网关服务的通信功能正常
* 消息发送和任务下发功能实现正确
* **Test Requirements**:
* `programmatic` TR-5.1: 微信应用能正常运行
* `programmatic` TR-5.2: 与网关服务的通信正常
* `human-judgement` TR-5.3: 界面美观、交互流畅
* **Notes**: 使用React和微信应用框架
### \[ ] Task 6: 配置企业微信应用
* **Priority**: P2
* **Depends On**: Task 3
* **Description**:
* 配置企业微信应用
* 设置回调地址
* 实现消息推送处理
* **Success Criteria**:
* 企业微信应用配置完成
* 回调地址设置正确
* 消息推送处理功能实现正确
* **Test Requirements**:
* `programmatic` TR-6.1: 企业微信回调能正确处理
* `human-judgement` TR-6.2: 配置过程顺利
* **Notes**: 参考企业微信开发文档
### [ ] 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的环境确保构建产物能正确部署
### \[ ] 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+
* **缓存和消息队列**: Redis 7.0+
* **数据存储**: PostgreSQL 14.0+
### 前端
* **框架**: React 18.0+
* **类型系统**: TypeScript 5.0+
* **构建工具**: Vite 4.0+
* **样式框架**: Tailwind CSS 3.0+
* **HTTP客户端**: Axios 1.0+
* **开发工具**: WeChat Developer Tools 最新版
## 实施步骤
1. **准备阶段**:
* 创建项目基础结构
* 初始化Git仓库
* 初始化Rust和前端项目
2. **后端开发**:
* 开发服务器A后端
* 开发服务器B后端
* 测试服务器间通信
3. **前端开发**:
* 开发微信小程序
* 配置企业微信应用
4. **部署与测试**:
* 编写部署脚本
* 部署到服务器
* 功能测试
* 性能测试
* 安全测试
5. **文档编写**:
* 编写项目文档
* 编写API文档
* 编写部署文档
* 编写使用文档
## 注意事项
1. **网络通信**:
* 服务器B在内网中需要使用反向代理和WebSocket实现与服务器A的通信
2. **安全考虑**:
* 所有通信使用HTTPS加密
* 服务器A配置防火墙只开放必要的端口
* 服务器B只允许来自服务器A的连接
* 实现认证与授权机制
3. **性能考虑**:
* 优化服务器间通信
* 合理使用LMStudio
* 实现异步处理,提供任务状态反馈
4. **兼容性**:
* 考虑Windows Server 2012的环境
* 确保代码在目标环境中能正常运行
## 结论
通过以上实施计划,可以构建一个完整的企业微信智控未来系统,实现用户通过企业微信和微信小程序与系统进行交互,完成任务的下发、处理和结果返回。