Data Training API 提供了通过REST API创建训练数据集和加载训练数据集的完整解决方案。整个过程分为四个主要步骤,支持全自动执行和分步手动执行两种模式。
训练数据集的创建和加载包含以下四个步骤:
ddl_generation
) - 根据表名生成带有注释的DDL文件和Markdown文档qa_generation
) - 基于DDL和MD文件生成问答对JSON文件sql_validation
) - 验证生成的SQL语句并使用LLM纠正错误training_load
) - 将生成的文件加载到训练数据库中complete
)step
)API: POST /api/v0/data_pipeline/tasks
创建一个新的数据管道任务,获取唯一的task_id用于后续操作。
两种创建方式:
如果创建任务时选择了文件上传模式,需要通过以下两种方式之一提供表清单:
方式一:上传表清单文件
API: POST /api/v0/data_pipeline/tasks/{task_id}/upload-table-list
上传包含目标表名列表的文本文件。
方式二:在线提交表名
a.) 获取目标表的表名:
API: POST /api/v0/database/tables
b.) 直接提交表名列表:
API: POST /api/v0/data_pipeline/tasks/{task_id}/table-list
支持数组格式或逗号分隔格式提交表名列表,系统会自动在task目录下创建table_list.txt文件。
API: GET /api/v0/data_pipeline/tasks/{task_id}/table-list-info
验证表清单文件是否正确上传,查看包含的表数量等信息。
根据业务需求选择执行模式:
全自动执行:
POST /api/v0/data_pipeline/tasks/{task_id}/execute
{
"execution_mode": "complete"
}
分步执行:
POST /api/v0/data_pipeline/tasks/{task_id}/execute
{
"execution_mode": "step",
"step_name": "ddl_generation"
}
这里的step_name只能写一个,它可以是:ddl_generation/qa_generation/sql_validation/training_load
步骤1: DDL/MD生成 (ddl_generation
)
{table_name}.ddl
, {table_name}_detail.md
步骤2: Question-SQL生成 (qa_generation
)
qs_{db_name}_{timestamp}_pair.json
, metadata.txt
, metadata_detail.md
步骤3: SQL验证和修复 (sql_validation
)
步骤4: 训练数据加载 (training_load
)
API: GET /api/v0/data_pipeline/tasks/{task_id}
实时查看任务整体状态和各步骤的执行进度。
状态值说明:
pending
- 等待执行in_progress
- 正在执行completed
- 执行完成failed
- 执行失败partial_completed
- 部分完成API: GET /api/v0/data_pipeline/tasks/{task_id}/logs
获取详细的执行日志,支持按级别过滤和行数限制。
API: GET /api/v0/data_pipeline/tasks/{task_id}/files
查看任务生成的所有文件列表。
API: GET /api/v0/data_pipeline/tasks/{task_id}/files/{file_name}
下载指定的输出文件。
API: GET /api/v0/data_pipeline/tasks
查看历史任务列表,支持状态过滤和分页。
API: POST /api/v0/database/tables
查询业务数据库中的可用表列表,用于构建表清单文件。
API: POST /api/v0/database/table/ddl
获取指定表的ddl定义和LLM生成的字段注释信息
1. POST /api/v0/data_pipeline/tasks
(创建任务,提供table_list_file、business_context等参数)
2. 提供表清单 (二选一):上传*.txt表名列表文件,或者在线提交逗号分隔的表名字符串
方式A: POST /api/v0/data_pipeline/tasks/{task_id}/upload-table-list
(上传表清单文件)
方式B: POST /api/v0/data_pipeline/tasks/{task_id}/table-list
(直接提交表名列表)
3. POST /api/v0/data_pipeline/tasks/{task_id}/execute
(execution_mode: "complete")
4. GET /api/v0/data_pipeline/tasks/{task_id}
(轮询监控执行状态)
5. GET /api/v0/data_pipeline/tasks/{task_id}/files
(完成后查看生成的文件)
1. POST /api/v0/data_pipeline/tasks
(创建任务,不提供table_list_file)
2. 提供表清单 (二选一):上传*.txt表名列表文件,或者在线提交逗号分隔的表名字符串
方式A: POST /api/v0/data_pipeline/tasks/{task_id}/upload-table-list
(上传表清单文件)
方式B: POST /api/v0/data_pipeline/tasks/{task_id}/table-list
(直接提交表名列表)
3. POST /api/v0/data_pipeline/tasks/{task_id}/execute
(execution_mode: "step", step_name: "ddl_generation")
4. GET /api/v0/data_pipeline/tasks/{task_id}
(检查DDL生成结果)
5. POST /api/v0/data_pipeline/tasks/{task_id}/execute
(execution_mode: "step", step_name: "qa_generation")
6. 重复步骤4-5执行剩余步骤 (sql_validation, training_load)
qa_generation
依赖 ddl_generation
完成sql_validation
依赖 qa_generation
完成training_load
依赖前三个步骤完成每个任务在 ./data_pipeline/training_data/{task_id}/
目录下生成以下文件:
{table_name}.ddl
- 包含注释的建表语句{table_name}_detail.md
- 详细的表结构说明qs_{db_name}_{timestamp}_pair.json
- 问答对数据metadata.txt
, metadata_detail.md
- 业务主题元数据data_pipeline.log
- training_load没有专门日志,它写入到data_pipeline.log.其它文件:
task_config.json
- 任务配置信息data_pipeline.log
- 详细执行日志通过文件下载API可获取所有生成的文件用于验证和后续处理。
所有错误信息通过任务状态API和日志API提供详细信息,支持问题诊断和故障排除。