Files
aiagent/工作流模板和导入导出功能说明.md
2026-01-19 00:09:36 +08:00

195 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 工作流模板和导入导出功能说明
## ✅ 已完成
已实现工作流模板功能、导入导出功能和执行历史优化。
## 功能特性
### 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年