deepdata: core product code (backend, frontend, runtime, deepflow module)

This commit is contained in:
figmar
2026-08-30 19:23:38 +08:00
commit bd3db30be9
1405 changed files with 271727 additions and 0 deletions
@@ -0,0 +1,138 @@
# Operator Market Service - Python Implementation
## 概述
这是 `operator-market-service` 的 Python 实现,已集成到 `runtime/deepdata-python` 项目中。
## 功能
- **算子管理**:创建、查询、更新、删除算子
- **分类管理**:树状分类结构查询
- **文件上传**:支持算子文件上传和解析(支持 tar/zip 格式)
- **MCP 工具集成**:通过 fastapi-mcp 提供 MCP 工具接口
## 目录结构
```
app/module/operator_market/
├── __init__.py # 模块入口
├── constants.py # 常量定义
├── exceptions.py # 异常定义
├── schema/ # Pydantic Schema 定义
│ ├── __init__.py
│ ├── operator.py # 算子相关 Schema
│ ├── category.py # 分类相关 Schema
│ └── release.py # 发布版本 Schema
├── parsers/ # 文件解析器
│ ├── __init__.py
│ ├── abstract_parser.py # 抽象解析器基类
│ ├── tar_parser.py # TAR 文件解析器
│ ├── zip_parser.py # ZIP 文件解析器
│ └── parser_holder.py # 解析器持有者
├── repository/ # 数据访问层
│ ├── __init__.py
│ ├── operator_repository.py
│ ├── category_repository.py
│ ├── category_relation_repository.py
│ └── operator_release_repository.py
├── service/ # 服务层
│ ├── __init__.py
│ ├── operator_service.py
│ └── category_service.py
└── interface/ # API 接口层
├── __init__.py
├── operator_routes.py
└── category_routes.py
```
## API 端点
### 算子相关 (`/api/operator-market/operators`)
| 方法 | 路径 | 描述 |
|------|--------|------|
| POST | `/list` | 查询算子列表(支持分页、分类过滤、关键词搜索) |
| GET | `/{operator_id}` | 获取算子详情 |
| PUT | `/{operator_id}` | 更新算子信息 |
| POST | `/create` | 创建新算子 |
| POST | `/upload` | 上传算子文件 |
| POST | `/upload/pre-upload` | 预上传(获取请求 ID) |
| POST | `/upload/chunk` | 分块上传 |
| DELETE | `/{operator_id}` | 删除算子 |
| GET | `/examples/download` | 下载示例算子 |
### 分类相关 (`/api/operator-market/categories`)
| 方法 | 路径 | 描述 |
|------|--------|------|
| GET | `/tree` | 获取分类树状结构 |
## 数据库表
- `t_operator` - 算子表
- `t_operator_category` - 分类表
- `t_operator_category_relation` - 分类关系表
- `t_operator_release` - 算子发布版本表
- `v_operator` - 算子视图(包含分类信息)
## 文件格式支持
算子文件需包含 `metadata.yml` 文件,格式如下:
```yaml
raw_id: "operator-id"
name: "算子名称"
description: "算子描述"
version: "1.0.0"
language: "python" # python, java
modal: "text" # text, image, audio, video
vendor: "deepdata" # deepdata, data-juicer, or other
inputs: {...}
outputs: {...}
runtime: {...}
settings: {...}
metrics: {...}
release:
- "更新日志1"
- "更新日志2"
```
## 待实现功能
- [ ] 算子收藏功能完善
- [ ] 标签过滤功能
## 使用示例
### 查询算子列表
```bash
curl -X POST "http://localhost:18000/api/operator-market/operators/list" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"size": 10,
"keyword": "test",
"isStar": false
}'
```
### 获取分类树
```bash
curl -X GET "http://localhost:18000/api/operator-market/categories/tree"
```
### 创建算子
```bash
curl -X POST "http://localhost:18000/api/operator-market/operators/create" \
-H "Content-Type: application/json" \
-d '{
"id": "new-operator-id",
"name": "新算子",
"description": "这是一个新算子",
"version": "1.0.0",
"fileName": "operator.tar"
}'
```