From 99aceb58e695aaff07817fa2c0703dcf4f52e2e9 Mon Sep 17 00:00:00 2001 From: zqm Date: Thu, 12 Mar 2026 14:48:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E8=83=BD=E5=BA=94=E7=94=A8=E9=83=A8?= =?UTF-8?q?=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.trae/documents/project_structure_plan.md | 389 ++++++++++++++++++ Claw/可行性方案.md | 197 +++++++++ 2 files changed, 586 insertions(+) create mode 100644 Claw/.trae/documents/project_structure_plan.md create mode 100644 Claw/可行性方案.md diff --git a/Claw/.trae/documents/project_structure_plan.md b/Claw/.trae/documents/project_structure_plan.md new file mode 100644 index 0000000..1df7f69 --- /dev/null +++ b/Claw/.trae/documents/project_structure_plan.md @@ -0,0 +1,389 @@ +# Claw项目 - 工程项目结构实施计划 + +## 项目背景 + +Claw项目是一个企业微信智控未来系统,包含两台服务器: + +* 服务器A:局域网服务器,有固定IP,外网可以访问 + +* 服务器B:阿里云主机,在内网中,外网不能访问,安装了LMStudio + +目标是使用Rust和React实现以下功能:用户通过企业微信应用"智控未来"和微信小程序进行聊天,下发任务。任务经服务器A转到服务器B,B上的自建龙虾处理后返回结果给用户。 + +## 项目结构设计 + +### 整体结构 + +``` +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的环境 + + * 确保代码在目标环境中能正常运行 + +## 结论 + +通过以上实施计划,可以构建一个完整的企业微信智控未来系统,实现用户通过企业微信和微信小程序与系统进行交互,完成任务的下发、处理和结果返回。 diff --git a/Claw/可行性方案.md b/Claw/可行性方案.md new file mode 100644 index 0000000..67339c6 --- /dev/null +++ b/Claw/可行性方案.md @@ -0,0 +1,197 @@ +# 企业微信智控未来系统可行性方案 + +## 1. 项目背景 + +用户拥有一个未经认证的企业微信,包含应用"智控未来",以及两台服务器: +- 服务器A:局域网服务器,有固定IP,外网可以访问,相当于"大门和快递员" +- 服务器B:阿里云主机,在内网中,外网不能访问,安装了LMStudio,相当于"工厂和生产线" + +目标是使用Rust和React实现以下功能:用户通过企业微信应用"智控未来"和微信小程序进行聊天,下发任务。任务经服务器A转到服务器B,B上的自建龙虾处理后返回结果给用户。 + +## 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: 回调请求 + Gateway->>SmartClaw: 转发任务 + SmartClaw->>SmartClaw: 处理任务(智能控制核心逻辑) + SmartClaw->>LMStudio: 调用LMStudio + LMStudio-->>SmartClaw: 返回结果 + SmartClaw-->>Gateway: 转发结果 + Gateway-->>WeChat: 回调响应 + WeChat-->>User: 显示结果 +``` + +### 2.2 组件说明 + +| 组件 | 职责 | 技术栈 | +|------|------|--------| +| 企业微信应用 | 用户交互界面,接收用户消息和任务 | 企业微信开发框架 | +| 微信小程序 | 用户交互界面,接收用户消息和任务 | React + 微信小程序框架 | +| 网关服务(服务器A) | 接收企业微信和小程序的请求,转发到SmartClaw服务,返回结果 | Rust + Actix Web | +| SmartClaw服务(服务器B) | 接收网关服务的请求,处理用户任务,调用LMStudio,返回结果 | Rust + Actix Web | +| 智能控制核心逻辑 | 核心业务逻辑,处理用户任务,调用LMStudio | Rust | +| LMStudio | 提供AI能力,辅助处理任务 | 第三方工具 | + +## 3. 技术选型 + +### 3.1 后端技术栈 + +| 技术 | 版本 | 用途 | +|------|------|------| +| Rust | 1.70+ | 后端开发语言 | +| Actix Web | 4.0+ | Web框架,处理HTTP请求 | +| Tokio | 1.0+ | 异步运行时 | +| Serde | 1.0+ | 序列化/反序列化 | +| Reqwest | 0.11+ | HTTP客户端,用于服务器间通信 | +| Redis | 7.0+ | 缓存和消息队列 | +| PostgreSQL | 14.0+ | 数据存储 | + +### 3.2 前端技术栈 + +| 技术 | 版本 | 用途 | +|------|------|------| +| React | 18.0+ | 前端开发框架 | +| TypeScript | 5.0+ | 类型系统 | +| Vite | 4.0+ | 构建工具 | +| Tailwind CSS | 3.0+ | 样式框架 | +| Axios | 1.0+ | HTTP客户端 | +| WeChat Developer Tools | 最新版 | 微信小程序开发工具 | + +## 4. 网络通信方案 + +### 4.1 企业微信/小程序与网关服务通信 + +- **企业微信**:使用企业微信回调机制,网关服务提供HTTPS接口接收企业微信的消息推送 +- **微信小程序**:使用HTTPS接口与网关服务通信,实现消息发送和任务下发 + +### 4.2 网关服务与SmartClaw服务通信 + +由于SmartClaw服务在内网中,外网不能访问它,因此采用以下方案: + +1. **反向代理**:SmartClaw服务主动连接网关服务,建立长连接 +2. **WebSocket**:使用WebSocket实现网关服务和SmartClaw服务之间的双向通信 +3. **消息队列**:使用Redis作为消息队列,存储待处理的任务 + +### 4.3 SmartClaw服务与LMStudio通信 + +- 使用LMStudio提供的API接口进行通信 +- 可能需要根据LMStudio的具体API进行适配 + +## 5. 安全考虑 + +### 5.1 网络安全 + +- 所有通信使用HTTPS加密 +- 服务器A配置防火墙,只开放必要的端口 +- 服务器B只允许来自服务器A的连接 + +### 5.2 认证与授权 + +- 企业微信应用使用CorpID和Secret进行认证 +- 微信小程序使用AppID和AppSecret进行认证 +- 服务器间通信使用API密钥进行认证 + +### 5.3 数据安全 + +- 敏感数据加密存储 +- 定期备份数据 +- 实现访问控制,确保只有授权用户能访问相关功能 + +## 6. 部署方案 + +### 6.1 网关服务(服务器A)部署 + +1. 安装Windows Server 2012系统 +2. 安装Rust环境和必要的依赖 +3. 部署网关服务,配置HTTPS +4. 配置企业微信和小程序的回调地址 +5. 启动服务并设置为自启动 + +### 6.2 SmartClaw服务(服务器B)部署 + +1. 安装Windows Server 2012系统 +2. 安装LMStudio +3. 安装Rust环境和必要的依赖 +4. 部署SmartClaw服务 +5. 配置与网关服务的通信 +6. 启动服务并设置为自启动 + +## 7. 开发计划 + +### 7.1 阶段一:基础设施搭建 + +- 配置服务器环境 +- 安装必要的软件和依赖 +- 搭建开发环境 + +### 7.2 阶段二:后端开发 + +- 开发网关服务(服务器A)的Web服务 +- 开发SmartClaw服务(服务器B)的Web服务 +- 实现网关服务与SmartClaw服务之间的通信 +- 开发智能控制核心逻辑 +- 集成LMStudio API + +### 7.3 阶段三:前端开发 + +- 开发微信小程序 +- 配置企业微信应用 + +### 7.4 阶段四:测试与部署 + +- 功能测试 +- 性能测试 +- 安全测试 +- 部署到生产环境 + +### 7.5 阶段五:运维与监控 + +- 配置监控系统 +- 制定运维计划 +- 建立故障处理流程 + +## 8. 可行性分析 + +### 8.1 技术可行性 + +- Rust语言性能优异,适合高并发场景 +- React生态成熟,适合开发前端应用 +- 企业微信和微信小程序都提供了完善的开发文档和API +- LMStudio提供了API接口,可以与自建系统集成 + +### 8.2 网络可行性 + +- 服务器A有固定IP,外网可以访问,适合作为入口 +- 服务器B可以访问外网,可以主动连接服务器A +- 使用WebSocket可以实现服务器间的实时通信 + +### 8.3 成本可行性 + +- 主要成本是服务器硬件和网络费用 +- 软件方面,Rust和React都是开源的,没有 licensing 费用 +- LMStudio可能需要相应的硬件资源,但可以根据实际需求进行配置 + +### 8.4 风险评估 + +| 风险 | 影响 | 应对措施 | +|------|------|----------| +| 企业微信未经认证 | 可能限制部分功能 | 尽量使用企业微信开放的基础功能,避免需要认证的高级功能 | +| SmartClaw服务在内网 | 外网无法直接访问 | 使用反向代理和WebSocket实现服务器间通信 | +| LMStudio性能 | 可能影响处理速度 | 优化智能控制核心逻辑,合理使用LMStudio | +| 网络延迟 | 可能影响用户体验 | 实现异步处理,提供任务状态反馈 | + +## 9. 结论 + +基于以上分析,本项目在技术、网络和成本方面都是可行的。通过合理的架构设计和技术选型,可以实现用户通过企业微信和微信小程序与系统进行交互,完成任务的下发、处理和结果返回。 + +建议按照开发计划分阶段实施,确保系统的稳定性和可靠性。同时,要注意安全防护,保护用户数据和系统资源。 \ No newline at end of file