Files
pit-client/README.md
yunxiafei 3e11bf5b82 docs: 更新项目命名
- 英文名: PitChat
- 中文名: 智队

作者: 小白 🐶
2026-03-14 19:59:37 +08:00

378 lines
12 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.
# PitChat智队
> PIT 用户交互层应用 - Personal Intelligent Team Client
**英文名**PitChat
**中文名**:智队
## 项目概述
PitChat智队是 PITPersonal Intelligent Team系统的用户交互层应用提供桌面、Web 和移动端多种访问方式,让用户能够与智能体团队进行交互。
### 核心目标
- 提供统一的用户界面
- 支持 WebSocket 实时通信
- 多平台支持(桌面/Web/移动端)
- 会话管理与历史记录
- Agent 选择与切换
---
## 技术栈
### 桌面应用 (Electron)
| 技术 | 版本 | 说明 |
|------|------|------|
| Electron | 28+ | 跨平台桌面应用框架 |
| React | 18+ | UI 组件库 |
| TypeScript | 5+ | 类型安全 |
| Tailwind CSS | 3+ | 样式框架 |
| Socket.IO Client | 4+ | WebSocket 客户端 |
### Web 应用 (React)
| 技术 | 版本 | 说明 |
|------|------|------|
| React | 18+ | UI 框架 |
| Vite | 5+ | 构建工具 |
| TypeScript | 5+ | 类型安全 |
| Tailwind CSS | 3+ | 样式框架 |
| Socket.IO Client | 4+ | WebSocket 客户端 |
### 移动应用 (React Native)
| 技术 | 版本 | 说明 |
|------|------|------|
| React Native | 0.73+ | 跨平台移动应用框架 |
| TypeScript | 5+ | 类型安全 |
| Socket.IO Client | 4+ | WebSocket 客户端 |
---
## 系统架构
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ 用户交互层 (Clients) │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Windows 桌面 │ │ Android App │ │ Web UI │ │
│ │ Electron │ │ React Native │ │ React + Vite │ │
│ └───────┬───────┘ └───────┬───────┘ └───────┬───────┘ │
│ │ │ │ │
│ ┌───────┴──────────────────┴──────────────────┴───────┐ │
│ │ 共享核心模块 │ │
│ │ - WebSocket 连接管理 │ │
│ │ - 会话状态管理 │ │
│ │ - 消息渲染组件 │ │
│ │ - 用户认证 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
│ WebSocket / HTTP
┌─────────────────────────────────────────────────────────────────────────────┐
│ PIT 网关路由应用 (Gateway Router) │
│ http://1.14.58.157:9000 │
└─────────────────────────────────────────────────────────────────────────────┘
```
---
## 项目结构
```
pit-client/
├── packages/
│ ├── core/ # 共享核心模块
│ │ ├── src/
│ │ │ ├── api/ # API 客户端
│ │ │ │ ├── auth.ts # 认证 API
│ │ │ │ ├── sessions.ts # 会话 API
│ │ │ │ └── agents.ts # Agent API
│ │ │ ├── socket/ # WebSocket 管理
│ │ │ │ ├── client.ts # Socket.IO 客户端
│ │ │ │ └── events.ts # 事件定义
│ │ │ ├── store/ # 状态管理
│ │ │ │ ├── session.ts # 会话状态
│ │ │ │ ├── user.ts # 用户状态
│ │ │ │ └── agent.ts # Agent 状态
│ │ │ ├── types/ # 类型定义
│ │ │ └── utils/ # 工具函数
│ │ └── package.json
│ │
│ ├── desktop/ # Electron 桌面应用
│ │ ├── src/
│ │ │ ├── main/ # 主进程
│ │ │ │ └── index.ts
│ │ │ ├── renderer/ # 渲染进程
│ │ │ │ ├── App.tsx
│ │ │ │ ├── pages/
│ │ │ │ └── components/
│ │ │ └── preload/ # 预加载脚本
│ │ ├── electron-builder.json
│ │ └── package.json
│ │
│ ├── web/ # Web 应用
│ │ ├── src/
│ │ │ ├── App.tsx
│ │ │ ├── pages/
│ │ │ │ ├── Login.tsx
│ │ │ │ ├── Chat.tsx
│ │ │ │ └── Settings.tsx
│ │ │ ├── components/
│ │ │ │ ├── MessageList.tsx
│ │ │ │ ├── MessageInput.tsx
│ │ │ │ ├── AgentSelector.tsx
│ │ │ │ └── SessionList.tsx
│ │ │ └── main.tsx
│ │ ├── vite.config.ts
│ │ └── package.json
│ │
│ └── mobile/ # React Native 移动应用
│ ├── src/
│ │ ├── App.tsx
│ │ ├── screens/
│ │ └── components/
│ └── package.json
├── package.json # Monorepo 根配置
├── pnpm-workspace.yaml # pnpm 工作空间
├── tsconfig.json # TypeScript 配置
└── README.md
```
---
## 核心功能
### 1. 用户认证
- 登录/注册
- JWT Token 管理
- 自动刷新 Token
- 登出
### 2. 会话管理
- 创建新会话
- 查看会话列表
- 切换会话
- 关闭会话
- 会话历史记录
### 3. 消息交互
- 发送文本消息
- 接收实时消息
- 流式消息显示
- 消息历史加载
- 附件发送(图片、文件)
### 4. Agent 管理
- 查看 Agent 列表
- 选择指定 Agent
- 查看 Agent 状态
- Agent 信息展示
---
## API 客户端
### 认证 API
```typescript
// 登录
POST /api/auth/login
Body: { username, password }
Response: { token, user }
// 注册
POST /api/auth/register
Body: { username, password, email }
Response: { token, user }
// 获取当前用户
GET /api/auth/me
Header: Authorization: Bearer <token>
Response: { user }
```
### 会话 API
```typescript
// 获取会话列表
GET /api/sessions
Response: { sessions[] }
// 创建会话
POST /api/sessions
Body: { agent_id?, title? }
Response: { session }
// 获取会话详情
GET /api/sessions/:id
Response: { session, messages[] }
```
---
## WebSocket 事件
### 客户端发送
```typescript
// 创建会话
socket.emit('session.create', { agent_id?, title? })
// 加入会话
socket.emit('session.join', { session_id })
// 发送消息
socket.emit('message.send', { session_id, content })
```
### 服务端推送
```typescript
// 连接成功
socket.on('connected', { user_id })
// 会话创建成功
socket.on('session.created', { session })
// 收到消息
socket.on('message', { session_id, message })
// 错误通知
socket.on('error', { code, message })
```
---
## 开发指南
### 环境要求
- Node.js 18+
- pnpm 8+
- Electron (桌面应用)
### 安装依赖
```bash
# 安装所有依赖
pnpm install
# 只安装 core
pnpm install --filter @pit/core
# 只安装 web
pnpm install --filter @pit/web
```
### 开发模式
```bash
# 启动 Web 应用
pnpm --filter @pit/web dev
# 启动桌面应用
pnpm --filter @pit/desktop dev
# 启动移动应用
pnpm --filter @pit/mobile start
```
### 构建发布
```bash
# 构建 Web 应用
pnpm --filter @pit/web build
# 构建桌面应用
pnpm --filter @pit/desktop build
# 构建移动应用
pnpm --filter @pit/mobile build
```
---
## 界面设计
### 主界面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ PIT Client ─ □ × [用户头像] │
├──────────────┬──────────────────────────────────────────────────┤
│ │ │
│ 会话列表 │ 消息区域 │
│ │ │
│ ┌────────┐ │ ┌────────────────────────────────────────────┐ │
│ │ 会话1 │ │ │ Agent: 小白 │ │
│ │ 会话2 │ │ │ ───────────────────────────────────────── │ │
│ │ 会话3 │ │ │ │ │
│ └────────┘ │ │ [用户] 你好 │ │
│ │ │ │ │
│ [+ 新会话] │ │ [Agent] 你好!有什么可以帮你的? │ │
│ │ │ │ │
│ │ └────────────────────────────────────────────┘ │
│ │ │
│ │ ┌────────────────────────────────────────────┐ │
│ │ │ [附件] [输入消息...] [发送] │ │
│ │ └────────────────────────────────────────────┘ │
└──────────────┴──────────────────────────────────────────────────┘
```
---
## 开发计划
### Phase 1: 核心模块 (2-3 天)
- [ ] 项目结构搭建
- [ ] 共享核心模块
- [ ] API 客户端
- [ ] WebSocket 连接管理
### Phase 2: Web 应用 (3-4 天)
- [ ] 登录/注册页面
- [ ] 聊天界面
- [ ] 会话管理
- [ ] Agent 选择
### Phase 3: 桌面应用 (2-3 天)
- [ ] Electron 集成
- [ ] 原生功能
- [ ] 打包发布
### Phase 4: 移动应用 (3-4 天)
- [ ] React Native 界面
- [ ] 移动端适配
- [ ] 推送通知
---
## 相关项目
- [PIT Router](http://localhost:3000/yunxiafei/pit-router) - 网关路由应用
- [PIT Channel](http://localhost:3000/yunxiafei/PIT_Channel) - OpenClaw Channel 插件
---
## 许可证
MIT License
---
*创建时间: 2026-03-14 | 作者: 小白 🐶*