第一次提交

This commit is contained in:
rjb
2026-01-19 00:09:36 +08:00
parent de4b5059e9
commit 6674060f2f
191 changed files with 40940 additions and 0 deletions

View File

@@ -0,0 +1,194 @@
# 工作流模板和导入导出功能说明
## ✅ 已完成
已实现工作流模板功能、导入导出功能和执行历史优化。
## 功能特性
### 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年