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任务的下发、处理和结果返回。系统具备多用户多设备管理能力,支持高并发和零配置部署。
|
||||
|
||||
Reference in New Issue
Block a user