11 KiB
11 KiB
API 文档
概述
低代码智能体平台提供RESTful API和WebSocket API,支持工作流管理、执行管理、数据源管理等功能。
Base URL: http://localhost:8037 或 http://101.43.95.130:8037
API版本: v1
文档地址:
- Swagger UI:
http://localhost:8037/docs - ReDoc:
http://localhost:8037/redoc
认证
大部分API需要JWT认证。认证流程:
- 用户注册或登录获取token
- 在请求头中添加:
Authorization: Bearer <token>
获取Token
POST /api/v1/auth/login
Content-Type: application/x-www-form-urlencoded
username=your_username&password=your_password
响应:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
API端点
认证API (/api/v1/auth)
用户注册
POST /api/v1/auth/register
Content-Type: application/json
{
"username": "testuser",
"email": "test@example.com",
"password": "password123"
}
响应: 201 Created
{
"id": "uuid",
"username": "testuser",
"email": "test@example.com",
"role": "user",
"created_at": "2024-01-01T00:00:00"
}
用户登录
POST /api/v1/auth/login
Content-Type: application/x-www-form-urlencoded
username=testuser&password=password123
响应: 200 OK
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
获取当前用户信息
GET /api/v1/auth/me
Authorization: Bearer <token>
响应: 200 OK
{
"id": "uuid",
"username": "testuser",
"email": "test@example.com",
"role": "user"
}
工作流API (/api/v1/workflows)
获取工作流列表
GET /api/v1/workflows?skip=0&limit=10&search=关键词&status=draft&sort_by=created_at&sort_order=desc
Authorization: Bearer <token>
查询参数:
skip: 跳过记录数(分页,默认0)limit: 每页记录数(默认100,最大100)search: 搜索关键词(按名称或描述搜索)status: 状态筛选(draft/published/running/stopped)sort_by: 排序字段(name/created_at/updated_at)sort_order: 排序方向(asc/desc)
响应: 200 OK
[
{
"id": "uuid",
"name": "工作流名称",
"description": "描述",
"nodes": [...],
"edges": [...],
"version": 1,
"status": "draft",
"created_at": "2024-01-01T00:00:00"
}
]
创建工作流
POST /api/v1/workflows
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "工作流名称",
"description": "描述",
"nodes": [
{
"id": "start-1",
"type": "start",
"position": {"x": 0, "y": 0},
"data": {"label": "开始"}
}
],
"edges": []
}
响应: 201 Created
获取工作流详情
GET /api/v1/workflows/{workflow_id}
Authorization: Bearer <token>
响应: 200 OK
更新工作流
PUT /api/v1/workflows/{workflow_id}
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "更新后的名称",
"description": "更新后的描述",
"nodes": [...],
"edges": [...]
}
响应: 200 OK
删除工作流
DELETE /api/v1/workflows/{workflow_id}
Authorization: Bearer <token>
响应: 200 OK
{
"message": "工作流已删除"
}
执行工作流
POST /api/v1/workflows/{workflow_id}/execute
Authorization: Bearer <token>
Content-Type: application/json
{
"input_data": {
"key": "value"
}
}
响应: 201 Created
{
"id": "execution_id",
"workflow_id": "workflow_id",
"status": "pending",
"task_id": "celery_task_id"
}
验证工作流
POST /api/v1/workflows/validate
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "工作流名称",
"nodes": [...],
"edges": [...]
}
响应: 200 OK
{
"valid": true,
"errors": [],
"warnings": []
}
获取工作流模板列表
GET /api/v1/workflows/templates
Authorization: Bearer <token>
从模板创建工作流
POST /api/v1/workflows/templates/{template_id}/create?name=工作流名称&description=描述
Authorization: Bearer <token>
导出工作流
GET /api/v1/workflows/{workflow_id}/export
Authorization: Bearer <token>
响应: 200 OK
{
"workflow": {...},
"exported_at": "2024-01-01T00:00:00"
}
导入工作流
POST /api/v1/workflows/import
Authorization: Bearer <token>
Content-Type: application/json
{
"workflow": {...}
}
获取工作流版本列表
GET /api/v1/workflows/{workflow_id}/versions
Authorization: Bearer <token>
获取工作流版本详情
GET /api/v1/workflows/{workflow_id}/versions/{version}
Authorization: Bearer <token>
回滚工作流版本
POST /api/v1/workflows/{workflow_id}/versions/{version}/rollback
Authorization: Bearer <token>
Content-Type: application/json
{
"comment": "回滚原因"
}
执行管理API (/api/v1/executions)
创建执行任务
POST /api/v1/executions
Authorization: Bearer <token>
Content-Type: application/json
{
"workflow_id": "workflow_id",
"input_data": {
"key": "value"
}
}
响应: 201 Created
获取执行记录列表
GET /api/v1/executions?skip=0&limit=10&workflow_id=uuid&status=completed&search=关键词
Authorization: Bearer <token>
查询参数:
skip: 跳过记录数(分页)limit: 每页记录数(最大100)workflow_id: 工作流ID筛选status: 状态筛选(pending/running/completed/failed)search: 搜索关键词
响应: 200 OK
[
{
"id": "uuid",
"workflow_id": "uuid",
"status": "completed",
"input_data": {...},
"output_data": {...},
"execution_time": 1234,
"created_at": "2024-01-01T00:00:00"
}
]
获取执行详情
GET /api/v1/executions/{execution_id}
Authorization: Bearer <token>
响应: 200 OK
获取执行状态
GET /api/v1/executions/{execution_id}/status
Authorization: Bearer <token>
响应: 200 OK
{
"status": "running",
"progress": 50,
"current_node": "llm-1"
}
执行日志API (/api/v1/execution-logs)
获取执行日志
GET /api/v1/execution-logs/executions/{execution_id}?level=info&node_id=node-1&skip=0&limit=100
Authorization: Bearer <token>
查询参数:
level: 日志级别筛选(info/warn/error/debug)node_id: 节点ID筛选skip: 跳过记录数limit: 每页记录数
响应: 200 OK
{
"logs": [
{
"id": "uuid",
"node_id": "node-1",
"node_type": "llm",
"level": "info",
"message": "节点开始执行",
"timestamp": "2024-01-01T00:00:00",
"duration_ms": 1234
}
],
"total": 100,
"skip": 0,
"limit": 100
}
获取执行日志摘要
GET /api/v1/execution-logs/executions/{execution_id}/summary
Authorization: Bearer <token>
响应: 200 OK
{
"total_logs": 100,
"level_stats": {
"info": 80,
"warn": 10,
"error": 5,
"debug": 5
},
"node_stats": [
{
"node_id": "node-1",
"node_type": "llm",
"log_count": 10,
"total_duration_ms": 5000
}
],
"error_logs": [...]
}
数据源API (/api/v1/data-sources)
获取数据源列表
GET /api/v1/data-sources?skip=0&limit=10&type=mysql&status=active
Authorization: Bearer <token>
创建数据源
POST /api/v1/data-sources
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "MySQL数据源",
"type": "mysql",
"description": "描述",
"config": {
"host": "localhost",
"port": 3306,
"database": "test",
"username": "user",
"password": "password"
}
}
获取数据源详情
GET /api/v1/data-sources/{data_source_id}
Authorization: Bearer <token>
更新数据源
PUT /api/v1/data-sources/{data_source_id}
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "更新后的名称",
"config": {...}
}
删除数据源
DELETE /api/v1/data-sources/{data_source_id}
Authorization: Bearer <token>
测试数据源连接
POST /api/v1/data-sources/{data_source_id}/test
Authorization: Bearer <token>
响应: 200 OK
{
"status": "success",
"message": "连接成功"
}
查询数据源数据
POST /api/v1/data-sources/{data_source_id}/query
Authorization: Bearer <token>
Content-Type: application/json
{
"query": "SELECT * FROM table LIMIT 10"
}
响应: 200 OK
{
"data": [...],
"count": 10
}
WebSocket API
连接WebSocket
const ws = new WebSocket('ws://localhost:8037/api/v1/ws/executions/{execution_id}?token=<token>');
接收消息
{
"type": "status",
"data": {
"status": "running",
"progress": 50,
"current_node": "llm-1"
}
}
错误码
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 201 | 创建成功 |
| 400 | 请求参数错误 |
| 401 | 未授权(需要登录) |
| 403 | 禁止访问(权限不足) |
| 404 | 资源不存在 |
| 422 | 验证错误 |
| 500 | 服务器内部错误 |
错误响应格式
{
"detail": "错误描述",
"error_code": "ERROR_CODE",
"status_code": 400
}
节点类型
支持的节点类型
start- 开始节点input- 输入节点llm- LLM节点(调用AI模型)condition- 条件节点(条件判断)transform- 转换节点(数据转换)loop- 循环节点(循环处理)agent- Agent节点(执行智能Agent)output- 输出节点end- 结束节点
LLM节点配置
{
"id": "llm-1",
"type": "llm",
"data": {
"provider": "deepseek",
"model": "deepseek-chat",
"prompt": "请回答:{input}",
"temperature": 0.7,
"max_tokens": 1000
}
}
条件节点配置
{
"id": "condition-1",
"type": "condition",
"data": {
"expression": "{value} > 10"
}
}
循环节点配置
{
"id": "loop-1",
"type": "loop",
"data": {
"items_path": "items",
"item_variable": "item",
"error_handling": "continue"
}
}
数据源类型
支持的数据源类型:
mysql- MySQL数据库postgresql- PostgreSQL数据库api- RESTful APIjson- JSON文件
示例
完整工作流示例
{
"name": "文本处理工作流",
"description": "处理用户输入的文本",
"nodes": [
{
"id": "start-1",
"type": "start",
"position": {"x": 0, "y": 0},
"data": {"label": "开始"}
},
{
"id": "llm-1",
"type": "llm",
"position": {"x": 200, "y": 0},
"data": {
"label": "LLM处理",
"provider": "deepseek",
"model": "deepseek-chat",
"prompt": "请总结以下文本:{input}"
}
},
{
"id": "end-1",
"type": "end",
"position": {"x": 400, "y": 0},
"data": {"label": "结束"}
}
],
"edges": [
{
"id": "e1",
"source": "start-1",
"target": "llm-1"
},
{
"id": "e2",
"source": "llm-1",
"target": "end-1"
}
]
}
更多信息
详细的API文档请访问:
- Swagger UI:
http://localhost:8037/docs - ReDoc:
http://localhost:8037/redoc