671 lines
11 KiB
Markdown
671 lines
11 KiB
Markdown
|
|
# 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认证。认证流程:
|
|||
|
|
|
|||
|
|
1. 用户注册或登录获取token
|
|||
|
|
2. 在请求头中添加:`Authorization: Bearer <token>`
|
|||
|
|
|
|||
|
|
### 获取Token
|
|||
|
|
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/auth/login
|
|||
|
|
Content-Type: application/x-www-form-urlencoded
|
|||
|
|
|
|||
|
|
username=your_username&password=your_password
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|||
|
|
"token_type": "bearer"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## API端点
|
|||
|
|
|
|||
|
|
### 认证API (`/api/v1/auth`)
|
|||
|
|
|
|||
|
|
#### 用户注册
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/auth/register
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"username": "testuser",
|
|||
|
|
"email": "test@example.com",
|
|||
|
|
"password": "password123"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 201 Created
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id": "uuid",
|
|||
|
|
"username": "testuser",
|
|||
|
|
"email": "test@example.com",
|
|||
|
|
"role": "user",
|
|||
|
|
"created_at": "2024-01-01T00:00:00"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 用户登录
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/auth/login
|
|||
|
|
Content-Type: application/x-www-form-urlencoded
|
|||
|
|
|
|||
|
|
username=testuser&password=password123
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|||
|
|
"token_type": "bearer"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取当前用户信息
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/auth/me
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id": "uuid",
|
|||
|
|
"username": "testuser",
|
|||
|
|
"email": "test@example.com",
|
|||
|
|
"role": "user"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 工作流API (`/api/v1/workflows`)
|
|||
|
|
|
|||
|
|
#### 获取工作流列表
|
|||
|
|
```http
|
|||
|
|
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
|
|||
|
|
```json
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"id": "uuid",
|
|||
|
|
"name": "工作流名称",
|
|||
|
|
"description": "描述",
|
|||
|
|
"nodes": [...],
|
|||
|
|
"edges": [...],
|
|||
|
|
"version": 1,
|
|||
|
|
"status": "draft",
|
|||
|
|
"created_at": "2024-01-01T00:00:00"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 创建工作流
|
|||
|
|
```http
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
#### 获取工作流详情
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/workflows/{workflow_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
|
|||
|
|
#### 更新工作流
|
|||
|
|
```http
|
|||
|
|
PUT /api/v1/workflows/{workflow_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"name": "更新后的名称",
|
|||
|
|
"description": "更新后的描述",
|
|||
|
|
"nodes": [...],
|
|||
|
|
"edges": [...]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
|
|||
|
|
#### 删除工作流
|
|||
|
|
```http
|
|||
|
|
DELETE /api/v1/workflows/{workflow_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"message": "工作流已删除"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 执行工作流
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/workflows/{workflow_id}/execute
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"input_data": {
|
|||
|
|
"key": "value"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 201 Created
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id": "execution_id",
|
|||
|
|
"workflow_id": "workflow_id",
|
|||
|
|
"status": "pending",
|
|||
|
|
"task_id": "celery_task_id"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 验证工作流
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/workflows/validate
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"name": "工作流名称",
|
|||
|
|
"nodes": [...],
|
|||
|
|
"edges": [...]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"valid": true,
|
|||
|
|
"errors": [],
|
|||
|
|
"warnings": []
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取工作流模板列表
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/workflows/templates
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 从模板创建工作流
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/workflows/templates/{template_id}/create?name=工作流名称&description=描述
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 导出工作流
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/workflows/{workflow_id}/export
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"workflow": {...},
|
|||
|
|
"exported_at": "2024-01-01T00:00:00"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 导入工作流
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/workflows/import
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"workflow": {...}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取工作流版本列表
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/workflows/{workflow_id}/versions
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取工作流版本详情
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/workflows/{workflow_id}/versions/{version}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 回滚工作流版本
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/workflows/{workflow_id}/versions/{version}/rollback
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"comment": "回滚原因"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 执行管理API (`/api/v1/executions`)
|
|||
|
|
|
|||
|
|
#### 创建执行任务
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/executions
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"workflow_id": "workflow_id",
|
|||
|
|
"input_data": {
|
|||
|
|
"key": "value"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 201 Created
|
|||
|
|
|
|||
|
|
#### 获取执行记录列表
|
|||
|
|
```http
|
|||
|
|
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
|
|||
|
|
```json
|
|||
|
|
[
|
|||
|
|
{
|
|||
|
|
"id": "uuid",
|
|||
|
|
"workflow_id": "uuid",
|
|||
|
|
"status": "completed",
|
|||
|
|
"input_data": {...},
|
|||
|
|
"output_data": {...},
|
|||
|
|
"execution_time": 1234,
|
|||
|
|
"created_at": "2024-01-01T00:00:00"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取执行详情
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/executions/{execution_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
|
|||
|
|
#### 获取执行状态
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/executions/{execution_id}/status
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"status": "running",
|
|||
|
|
"progress": 50,
|
|||
|
|
"current_node": "llm-1"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 执行日志API (`/api/v1/execution-logs`)
|
|||
|
|
|
|||
|
|
#### 获取执行日志
|
|||
|
|
```http
|
|||
|
|
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
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取执行日志摘要
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/execution-logs/executions/{execution_id}/summary
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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`)
|
|||
|
|
|
|||
|
|
#### 获取数据源列表
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/data-sources?skip=0&limit=10&type=mysql&status=active
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 创建数据源
|
|||
|
|
```http
|
|||
|
|
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"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 获取数据源详情
|
|||
|
|
```http
|
|||
|
|
GET /api/v1/data-sources/{data_source_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 更新数据源
|
|||
|
|
```http
|
|||
|
|
PUT /api/v1/data-sources/{data_source_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"name": "更新后的名称",
|
|||
|
|
"config": {...}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 删除数据源
|
|||
|
|
```http
|
|||
|
|
DELETE /api/v1/data-sources/{data_source_id}
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 测试数据源连接
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/data-sources/{data_source_id}/test
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"status": "success",
|
|||
|
|
"message": "连接成功"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 查询数据源数据
|
|||
|
|
```http
|
|||
|
|
POST /api/v1/data-sources/{data_source_id}/query
|
|||
|
|
Authorization: Bearer <token>
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"query": "SELECT * FROM table LIMIT 10"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**响应**: 200 OK
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"data": [...],
|
|||
|
|
"count": 10
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### WebSocket API
|
|||
|
|
|
|||
|
|
#### 连接WebSocket
|
|||
|
|
```javascript
|
|||
|
|
const ws = new WebSocket('ws://localhost:8037/api/v1/ws/executions/{execution_id}?token=<token>');
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 接收消息
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"type": "status",
|
|||
|
|
"data": {
|
|||
|
|
"status": "running",
|
|||
|
|
"progress": 50,
|
|||
|
|
"current_node": "llm-1"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 错误码
|
|||
|
|
|
|||
|
|
| 状态码 | 说明 |
|
|||
|
|
|--------|------|
|
|||
|
|
| 200 | 成功 |
|
|||
|
|
| 201 | 创建成功 |
|
|||
|
|
| 400 | 请求参数错误 |
|
|||
|
|
| 401 | 未授权(需要登录) |
|
|||
|
|
| 403 | 禁止访问(权限不足) |
|
|||
|
|
| 404 | 资源不存在 |
|
|||
|
|
| 422 | 验证错误 |
|
|||
|
|
| 500 | 服务器内部错误 |
|
|||
|
|
|
|||
|
|
## 错误响应格式
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"detail": "错误描述",
|
|||
|
|
"error_code": "ERROR_CODE",
|
|||
|
|
"status_code": 400
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 节点类型
|
|||
|
|
|
|||
|
|
### 支持的节点类型
|
|||
|
|
|
|||
|
|
- `start` - 开始节点
|
|||
|
|
- `input` - 输入节点
|
|||
|
|
- `llm` - LLM节点(调用AI模型)
|
|||
|
|
- `condition` - 条件节点(条件判断)
|
|||
|
|
- `transform` - 转换节点(数据转换)
|
|||
|
|
- `loop` - 循环节点(循环处理)
|
|||
|
|
- `agent` - Agent节点(执行智能Agent)
|
|||
|
|
- `output` - 输出节点
|
|||
|
|
- `end` - 结束节点
|
|||
|
|
|
|||
|
|
### LLM节点配置
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id": "llm-1",
|
|||
|
|
"type": "llm",
|
|||
|
|
"data": {
|
|||
|
|
"provider": "deepseek",
|
|||
|
|
"model": "deepseek-chat",
|
|||
|
|
"prompt": "请回答:{input}",
|
|||
|
|
"temperature": 0.7,
|
|||
|
|
"max_tokens": 1000
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 条件节点配置
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id": "condition-1",
|
|||
|
|
"type": "condition",
|
|||
|
|
"data": {
|
|||
|
|
"expression": "{value} > 10"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 循环节点配置
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"id": "loop-1",
|
|||
|
|
"type": "loop",
|
|||
|
|
"data": {
|
|||
|
|
"items_path": "items",
|
|||
|
|
"item_variable": "item",
|
|||
|
|
"error_handling": "continue"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 数据源类型
|
|||
|
|
|
|||
|
|
支持的数据源类型:
|
|||
|
|
|
|||
|
|
- `mysql` - MySQL数据库
|
|||
|
|
- `postgresql` - PostgreSQL数据库
|
|||
|
|
- `api` - RESTful API
|
|||
|
|
- `json` - JSON文件
|
|||
|
|
|
|||
|
|
## 示例
|
|||
|
|
|
|||
|
|
### 完整工作流示例
|
|||
|
|
|
|||
|
|
```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`
|