147 lines
4.1 KiB
Markdown
147 lines
4.1 KiB
Markdown
# DeepData 运行时
|
||
|
||
## 概述
|
||
|
||
DeepData 运行时提供数据处理、算子执行、数据收集等核心功能,基于 Python 3.12+ 和 FastAPI 框架。
|
||
|
||
## 架构
|
||
|
||
```
|
||
runtime/
|
||
├── deepdata-python/ # FastAPI 后端服务(端口 18000)
|
||
├── python-executor/ # Ray 分布式执行器
|
||
├── ops/ # 算子生态
|
||
├── datax/ # DataX 数据读写框架
|
||
└── deepflow/ # DeepFlow 服务
|
||
```
|
||
|
||
## 组件
|
||
|
||
### 1. deepdata-python (FastAPI 后端)
|
||
**端口**: 18000
|
||
|
||
核心 Python 服务,提供以下功能:
|
||
- **数据合成**: QA 生成、文档处理
|
||
- **数据标注**: Label Studio 集成、自动标注
|
||
- **数据评估**: 模型评估、质量检查
|
||
- **数据清洗**: 数据清洗管道
|
||
- **算子市场**: 算子管理、上传
|
||
- **RAG 索引**: 向量索引、知识库管理
|
||
- **数据收集**: 定时任务、数据源集成
|
||
|
||
**技术栈**:
|
||
- FastAPI 0.124+
|
||
- SQLAlchemy 2.0+ (async)
|
||
- Pydantic 2.12+
|
||
- PostgreSQL (via asyncpg)
|
||
- Milvus (via pymilvus)
|
||
- APScheduler (定时任务)
|
||
|
||
### 2. python-executor (Ray 执行器)
|
||
Ray 分布式执行框架,负责:
|
||
- **算子执行**: 执行数据处理算子
|
||
- **任务调度**: 异步任务管理
|
||
- **分布式计算**: 多节点并行处理
|
||
|
||
**技术栈**:
|
||
- Ray 2.7.0
|
||
- FastAPI (执行器 API)
|
||
- Data-Juicer (数据处理)
|
||
|
||
### 3. ops (算子生态)
|
||
算子生态,包含:
|
||
- **filter**: 数据过滤(去重、敏感内容、质量过滤)
|
||
- **mapper**: 数据转换(清洗、归一化)
|
||
- **slicer**: 数据切片(文本分割、幻灯片提取)
|
||
- **formatter**: 格式转换(PDF → text, slide → JSON)
|
||
- **llms**: LLM 算子(质量评估、条件检查)
|
||
- **annotation**: 标注算子(目标检测、分割)
|
||
|
||
**见**: `runtime/ops/README.md` 获取算子开发指南
|
||
|
||
### 4. datax (DataX 框架)
|
||
DataX 数据读写框架,支持多种数据源:
|
||
- **Readers**: MySQL, PostgreSQL, Oracle, MongoDB, Elasticsearch, HDFS, S3, NFS, GlusterFS, API, 等
|
||
- **Writers**: 同上,支持写入目标
|
||
|
||
**技术栈**: Java (Maven 构建)
|
||
|
||
### 5. deepflow (DeepFlow 服务)
|
||
DeepFlow 服务(配置见 `conf.yaml`)。
|
||
|
||
## 快速开始
|
||
|
||
### 前置条件
|
||
- Python 3.12+
|
||
- Poetry (for deepdata-python)
|
||
- Ray 2.7.0+ (for python-executor)
|
||
|
||
### 运行 deepdata-python
|
||
```bash
|
||
cd runtime/deepdata-python
|
||
poetry install
|
||
poetry run uvicorn app.main:app --reload --port 18000
|
||
```
|
||
|
||
### 运行 python-executor
|
||
```bash
|
||
cd runtime/python-executor
|
||
poetry install
|
||
ray start --head
|
||
```
|
||
|
||
## 开发
|
||
|
||
### deepdata-python 模块结构
|
||
```
|
||
app/
|
||
├── core/ # 日志、异常、配置
|
||
├── db/
|
||
│ ├── models/ # SQLAlchemy 模型
|
||
│ └── session.py # 异步会话
|
||
├── module/
|
||
│ ├── annotation/ # Label Studio 集成
|
||
│ ├── collection/ # 数据收集
|
||
│ ├── cleaning/ # 数据清洗
|
||
│ ├── dataset/ # 数据集管理
|
||
│ ├── evaluation/ # 模型评估
|
||
│ ├── generation/ # QA 合成
|
||
│ ├── operator/ # 算子市场
|
||
│ ├── rag/ # RAG 索引
|
||
│ └── shared/ # 共享 schemas
|
||
└── main.py # FastAPI 入口
|
||
```
|
||
|
||
### 代码约定
|
||
- **路由**: `APIRouter` 在 `interface/*.py`
|
||
- **依赖注入**: `Depends(get_db)` 获取会话
|
||
- **错误**: `raise BusinessError(ErrorCode.XXX, context)`
|
||
- **事务**: `async with transaction(db):`
|
||
- **模型**: Extend `BaseEntity` (审计字段自动填充)
|
||
|
||
## 测试
|
||
|
||
```bash
|
||
cd runtime/deepdata-python
|
||
poetry run pytest
|
||
```
|
||
|
||
## 配置
|
||
|
||
### 环境变量
|
||
- `DATABASE_URL`: PostgreSQL 连接字符串
|
||
- `LABEL_STUDIO_BASE_URL`: Label Studio URL
|
||
- `RAY_ENABLED`: 启用 Ray 执行器
|
||
- `RAY_ADDRESS`: Ray 集群地址
|
||
|
||
## 文档
|
||
|
||
- **API 文档**: http://localhost:18000/redoc
|
||
- **算子指南**: 见 `runtime/ops/README.md` 获取算子开发
|
||
|
||
## 相关链接
|
||
|
||
- [FastAPI 文档](https://fastapi.tiangolo.com/)
|
||
- [Ray 文档](https://docs.ray.io/)
|
||
- [SQLAlchemy 文档](https://docs.sqlalchemy.org/)
|