# 工作流模板和导入导出功能说明

## ✅ 已完成

已实现工作流模板功能、导入导出功能和执行历史优化。

## 功能特性

### 1. 工作流模板功能

#### 预设模板

系统提供4个预设模板：

1. **简单LLM工作流** (`simple_llm`)
   - 开始 → LLM → 结束
   - 适合简单的LLM调用场景

2. **条件判断LLM工作流** (`conditional_llm`)
   - 开始 → 条件判断 → [True分支LLM / False分支LLM] → 结束
   - 适合根据条件调用不同LLM的场景

3. **数据转换+LLM工作流** (`data_transform_llm`)
   - 开始 → 数据转换 → LLM → 结束
   - 适合需要先转换数据再处理场景

4. **多LLM链式工作流** (`multi_llm_chain`)
   - 开始 → LLM1 → LLM2 → LLM3 → 结束
   - 适合需要多步LLM处理的场景

#### API端点

- `GET /api/v1/workflows/templates` - 获取模板列表
- `GET /api/v1/workflows/templates/{template_id}` - 获取模板详情
- `POST /api/v1/workflows/templates/{template_id}/create` - 从模板创建工作流

### 2. 工作流导入导出功能

#### 导出工作流

**API端点**: `GET /api/v1/workflows/{workflow_id}/export`

**响应格式**:
```json
{
  "id": "workflow-id",
  "name": "工作流名称",
  "description": "工作流描述",
  "nodes": [...],
  "edges": [...],
  "version": 1,
  "status": "active",
  "exported_at": "2024-01-17T01:00:00"
}
```

#### 导入工作流

**API端点**: `POST /api/v1/workflows/import`

**请求格式**:
```json
{
  "name": "导入的工作流",
  "description": "工作流描述",
  "nodes": [...],
  "edges": [...]
}
```

**特性**:
- 自动重新生成节点ID（避免ID冲突）
- 自动更新边的源节点和目标节点ID
- 自动验证工作流结构
- 验证失败时返回详细错误信息

### 3. 执行历史优化

#### 分页功能

- `skip`: 跳过记录数（默认0）
- `limit`: 每页记录数（默认100，最大100）

#### 筛选功能

- `workflow_id`: 按工作流ID筛选
- `status`: 按状态筛选（pending, running, completed, failed）

#### 搜索功能

- `search`: 搜索关键词
- 搜索范围：执行ID、工作流ID、任务ID

#### API端点

`GET /api/v1/executions?skip=0&limit=20&workflow_id=xxx&status=completed&search=keyword`

## 使用示例

### 1. 获取模板列表

```bash
curl -X GET "http://localhost:8037/api/v1/workflows/templates" \
  -H "Authorization: Bearer {token}"
```

**响应**:
```json
[
  {
    "id": "simple_llm",
    "name": "简单LLM工作流",
    "description": "一个简单的LLM调用工作流..."
  },
  ...
]
```

### 2. 从模板创建工作流

```bash
curl -X POST "http://localhost:8037/api/v1/workflows/templates/simple_llm/create?name=我的工作流" \
  -H "Authorization: Bearer {token}"
```

### 3. 导出工作流

```bash
curl -X GET "http://localhost:8037/api/v1/workflows/{workflow_id}/export" \
  -H "Authorization: Bearer {token}" \
  -o workflow.json
```

### 4. 导入工作流

```bash
curl -X POST "http://localhost:8037/api/v1/workflows/import" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d @workflow.json
```

### 5. 获取执行历史（带筛选和搜索）

```bash
curl -X GET "http://localhost:8037/api/v1/executions?skip=0&limit=20&status=completed&search=test" \
  -H "Authorization: Bearer {token}"
```

## 前端集成建议

### 模板选择界面

1. 显示模板列表（卡片式布局）
2. 点击模板查看详情
3. 一键从模板创建工作流

### 导入导出功能

1. **导出**：
   - 在工作流详情页添加"导出"按钮
   - 点击后下载JSON文件

2. **导入**：
   - 在工作流列表页添加"导入"按钮
   - 选择JSON文件上传
   - 显示导入结果

### 执行历史优化

1. **分页组件**：使用Element Plus的Pagination组件
2. **筛选器**：下拉选择状态、工作流
3. **搜索框**：实时搜索
4. **表格**：显示筛选和搜索后的结果

## 优势

1. **快速创建**：使用模板快速创建工作流
2. **工作流复用**：通过导入导出复用工作流
3. **高效查询**：执行历史支持分页、筛选、搜索
4. **数据安全**：导入时自动重新生成ID，避免冲突

## 后续计划

- [ ] 前端模板选择界面
- [ ] 前端导入导出功能
- [ ] 执行历史前端优化
- [ ] 模板市场（用户分享模板）
- [ ] 工作流版本对比

---

**状态**: ✅ 后端已完成
**时间**: 2024年
