Claw 项目完整结构提交

This commit is contained in:
zqm
2026-03-16 15:47:55 +08:00
parent ca4970bcbf
commit fb0aeb6ca2
118 changed files with 28648 additions and 281 deletions

View File

@@ -4,11 +4,12 @@
Claw项目是一个企业微信智控未来系统包含两台服务器
* 服务器A局域网服务器有固定IP,外网可访问
* 服务器A网服务器47.109.191.115 - pactgo.cn配置SSL证书,外网可访问
* 服务器B内网服务器安装LMStudio只能访问外网外网无法直接访问
* 服务器B阿里云主机在内网中外网不能访问安装了LMStudio
目标是使用Rust和官方原生微信小程序技术栈实现用户通过企业微信应用"智控未来"和微信小程序进行聊天下发任务。任务经服务器A网关通过WebSocket反向连接转发到服务器BSmartClawB上的LMStudio进行AI处理后返回结果给用户。
目标是使用Rust和React实现以下功能用户通过企业微信应用"智控未来"和微信小程序进行聊天下发任务。任务经服务器A转到服务器BB上的自建龙虾处理后返回结果给用户
核心架构WebSocket反向连接B主动连接AEmbedded-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 APISSE流式响应、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-RedisSmartClaw服务需配置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任务的下发、处理和结果返回。系统具备多用户多设备管理能力,支持高并发和零配置部署。