Skip to content

Commit 99cbed7

Browse files
committed
docs: 添加中文版文档
- 创建中文版 README 文件:backend/README-zh.md, runtime/README-zh.md, DEVELOPMENT-zh.md, ARCHITECTURE-zh.md - 更新主 README-zh.md 的文档索引,指向中文版文档 - 更新主 README.md 的文档索引,指向中文版文档
1 parent fe1804b commit 99cbed7

10 files changed

Lines changed: 1705 additions & 0 deletions

File tree

ARCHITECTURE-zh.md

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
# DataMate 架构
2+
3+
## 概述
4+
5+
DataMate 是一个基于微服务的数据管理平台,用于模型微调和 RAG 检索。它采用多语言架构,包含 Java 后端、Python 运行时和 React 前端。
6+
7+
## 高层架构
8+
9+
```
10+
┌─────────────────────────────────────────────────────────┐
11+
│ 前端 (React) │
12+
│ localhost:5173 │
13+
└────────────────┬────────────────────────────────────────┘
14+
│ HTTP/REST
15+
16+
┌─────────────────────────────────────────────────────────┐
17+
│ API Gateway │
18+
│ (Spring Cloud) │
19+
│ localhost:8080 │
20+
│ ┌──────────────────────────────────────────────────┐ │
21+
│ │ 认证 (JWT) │ │
22+
│ │ 路由转发 │ │
23+
│ │ 限流 │ │
24+
│ └──────────────────────────────────────────────────┘ │
25+
└────────────────┬────────────────────────────────────────┘
26+
27+
├─────────────────┬─────────────────┐
28+
▼ ▼ ▼
29+
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
30+
│ 主应用 │ │ 数据管理服务 │ │ RAG 索引器 │
31+
│ (Spring Boot) │ │ Service │ │ Service │
32+
│ - 数据清洗 │ │ - 数据集管理 │ │ - 知识库管理 │ │
33+
│ - 算子市场 │ │ - 文件操作 │ │ - 向量搜索 │ │
34+
│ - 数据收集 │ │ - 标签管理 │ │ - Milvus 集成 │ │
35+
└─────────┬───────────┘ └─────────┬───────────┘ └─────────┬───────────┘
36+
│ │ │
37+
▼ ▼ ▼
38+
┌─────────────────────────────────────────────────────────────────────────────────┐
39+
│ PostgreSQL (元数据) │
40+
│ Redis (缓存) │
41+
│ Milvus (向量) │
42+
│ MinIO (文件) │
43+
└─────────────────────────────────────────────────────────────────────────────────┘
44+
45+
46+
┌─────────────────────────────────────────────────────────┐
47+
│ Python 运行时 (FastAPI) │
48+
│ localhost:18000 │
49+
│ ┌──────────────────────────────────────────────────┐ │
50+
│ │ 数据合成 │ │
51+
│ │ 数据标注 (Label Studio 集成) │ │
52+
│ │ 数据评估 │ │
53+
│ │ RAG 索引 │ │
54+
│ └──────────────────────────────────────────────────┘ │
55+
└────────────────┬────────────────────────────────────────┘
56+
57+
58+
┌─────────────────────────────────────────────────────────┐
59+
│ Ray 执行器 (分布式) │
60+
│ ┌──────────────────────────────────────────────────┐ │
61+
│ │ 算子执行 │ │
62+
│ │ 任务调度 │ │
63+
│ │ 分布式计算 │ │
64+
│ └──────────────────────────────────────────────────┘ │
65+
└─────────────────────────────────────────────────────────┘
66+
```
67+
68+
## 组件
69+
70+
### 前端层
71+
- **框架**: React 18 + TypeScript + Vite
72+
- **UI 库**: Ant Design
73+
- **样式**: TailwindCSS v4
74+
- **状态管理**: Redux Toolkit
75+
- **路由**: React Router v7
76+
77+
### 后端层(Java)
78+
- **API Gateway**: Spring Cloud Gateway
79+
- 路由转发
80+
- JWT 认证
81+
- 限流
82+
83+
- **主应用**: Spring Boot 3.5
84+
- 数据清洗管道
85+
- 算子市场
86+
- 数据收集任务
87+
88+
- **数据管理服务**: Spring Boot 3.5
89+
- 数据集 CRUD
90+
- 文件操作
91+
- 标签管理
92+
93+
- **RAG 索引器服务**: Spring Boot 3.5
94+
- 知识库管理
95+
- 向量搜索
96+
- Milvus 集成
97+
98+
### 运行时层(Python)
99+
- **FastAPI 后端**: 端口 18000
100+
- 数据合成(QA 生成)
101+
- 数据标注(Label Studio 集成)
102+
- 模型评估
103+
- RAG 索引
104+
105+
- **Ray 执行器**: 分布式执行
106+
- 算子执行
107+
- 任务调度
108+
- 多节点并行性
109+
110+
### 算子生态
111+
- **filter**: 数据过滤(去重、敏感内容、质量)
112+
- **mapper**: 数据转换(清洗、归一化)
113+
- **slicer**: 数据切片(文本分割、幻灯片提取)
114+
- **formatter**: 格式转换(PDF → text, slide → JSON)
115+
- **llms**: LLM 算子(质量评估、条件检查)
116+
117+
## 数据流
118+
119+
### 1. 数据摄入
120+
```
121+
用户上传 → 前端 → API Gateway → 数据管理服务 → PostgreSQL/MinIO
122+
```
123+
124+
### 2. 数据处理
125+
```
126+
数据集 → 前端 → API Gateway → 主应用 → Python 运行时
127+
→ Ray 执行器 → 算子 → 处理后的数据 → PostgreSQL/MinIO
128+
```
129+
130+
### 3. RAG 索引
131+
```
132+
处理后的数据 → Python 运行时 → RAG 索引器服务 → Milvus (向量)
133+
```
134+
135+
### 4. RAG 检索
136+
```
137+
查询 → 前端 → API Gateway → RAG 索引器服务 → Milvus → 结果
138+
```
139+
140+
## 技术栈
141+
142+
| 层级 | 技术 |
143+
|--------|------|
144+
| **前端** | React 18, TypeScript, Vite, Ant Design, TailwindCSS |
145+
| **后端** | Spring Boot 3.5, Java 21, MyBatis-Plus, PostgreSQL |
146+
| **运行时** | FastAPI, Python 3.12, Ray, SQLAlchemy |
147+
| **向量数据库** | Milvus |
148+
| **缓存** | Redis |
149+
| **对象存储** | MinIO |
150+
| **部署** | Docker Compose, Kubernetes/Helm |
151+
152+
## 通信模式
153+
154+
### 服务间通信
155+
- **REST API**: 前端和后端之间的 HTTP/JSON
156+
- **gRPC**: (如有)后端服务之间
157+
- **消息队列**: (如有)用于异步任务
158+
159+
### 后端到运行时
160+
- **HTTP/REST**: Java 后端调用 Python 运行时 runtime APIs
161+
- **Ray**: Python 运行时提交任务到 Ray 执行器
162+
163+
## 安全
164+
165+
### 认证
166+
- **JWT**: 基于 Token 的认证,通过 API Gateway
167+
- **会话**: (如有)会话管理
168+
169+
### 授权
170+
- **基于角色的**: (如有)RBAC
171+
- **基于资源的**: (如有)资源级访问控制
172+
173+
## 可扩展性
174+
175+
### 水平扩展
176+
- **后端服务**: Kubernetes pod 扩展(通过 Helm)
177+
- **Ray 执行器**: 多节点 Ray 集群
178+
- **前端**: 静态资源服务 + CDN
179+
180+
### 垂直扩展
181+
- **数据库**: PostgreSQL 连接池
182+
- **缓存**: Redis 集群
183+
- **向量数据库**: Milvus 集群
184+
185+
## 部署
186+
187+
### Docker Compose
188+
```bash
189+
make install INSTALLER=docker
190+
```
191+
192+
### Kubernetes/Helm
193+
```bash
194+
make install INSTALLER=k8s
195+
```
196+
197+
## 监控
198+
199+
### 指标
200+
- **Spring Boot Actuator**: `/actuator/metrics`
201+
- **Prometheus**: (如已配置)指标收集
202+
- **Ray**: Ray dashboard 用于执行器监控
203+
204+
### 日志
205+
- **Java**: Log4j2
206+
- **Python**: Ray dashboard for executor monitoring
207+
208+
## 架构决策
209+
210+
### 为什么选择多语言?
211+
- **Java 后端**: 企业级、成熟生态系统、强类型
212+
- **Python 运行时**: 丰富的 ML/AI 生态系统、灵活、快速原型开发
213+
- **React 前端**: 现代 UI、组件化、大型生态系统
214+
215+
### 为什么选择微服务?
216+
- **可扩展性**: 服务独立扩展
217+
- **可维护性**: 清晰的服务边界
218+
- **技术多样性**: 为每个任务使用最佳工具
219+
220+
### 为什么选择 Ray?
221+
- **分布式计算**: 无缝多节点执行
222+
- **容错**: 自动任务重试和恢复
223+
- **资源管理**: 动态资源分配
224+
225+
## 未来增强
226+
227+
- [ ] 服务网格(Istio/Linkerd)
228+
- [ ] 事件总线(Kafka/Pulsar)
229+
- [ ] GraphQL API
230+
- [ ] 实时更新(WebSocket)
231+
- [ ] 高级监控(Grafana, Loki)
232+
233+
## 引用
234+
235+
- [后端架构](./backend/README.md)
236+
- [运行时架构](./runtime/README.md)
237+
- [前端架构](./frontend/README.md)
238+
- [AGENTS.md](./AGENTS.md)

0 commit comments

Comments
 (0)