Skip to content

Commit 7b59e97

Browse files
committed
v2.4.0 完成了导出app_json和导入app_json
1 parent f0064e4 commit 7b59e97

31 files changed

+4082
-1105
lines changed

dify-panel/README.md

Lines changed: 42 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,166 +1,70 @@
1-
# Dify 管理面板
1+
# Dify DSL 可视化工具
22

3-
一个用于管理 Dify 平台的 Streamlit 应用,提供直观的 Web 界面来管理应用、API 密钥、标签和工具
3+
这个项目是基于 Streamlit 的 Dify 工作流 DSL 可视化工具,用于帮助用户理解和分析 Dify 中的工作流程图结构
44

5-
## 功能概述
5+
## 功能特性
66

7-
Dify 管理面板提供以下主要功能:
7+
- **DSL 图形可视化**:将 Dify 的 DSL JSON 结构转换为直观的可视化图表
8+
- **交互式节点**:支持节点拖拽和点击查看详情
9+
- **节点类型区分**:不同类型的节点使用不同颜色直观展示
10+
- **统计分析**:提供工作流节点和边的统计信息
11+
- **支持多种输入方式**:文件上传或直接粘贴 DSL 内容
812

9-
- **连接管理**: 连接到 Dify 平台并保持会话状态
10-
- **应用管理**: 创建、查看、编辑、删除应用,导入/导出 DSL 配置
11-
- **API 密钥管理**: 创建和删除应用的 API 密钥
12-
- **标签管理**: 创建、编辑、删除标签,管理应用与标签的关联
13-
- **工具管理**: 查看工具提供者和工具详情,管理工作流工具
14-
15-
## 项目结构
16-
17-
```
18-
dify-panel/
19-
├── app.py # 主页,提供连接管理和功能导航
20-
├── utils/ # 工具类目录
21-
│ ├── dify_client.py # Dify客户端封装
22-
│ └── ui_components.py # 可复用UI组件
23-
├── pages/ # 功能页面目录
24-
│ ├── app_management.py # 应用管理页面
25-
│ ├── api_key_management.py # API密钥管理页面
26-
│ ├── tag_management.py # 标签管理页面
27-
│ └── tool_management.py # 工具管理页面
28-
├── run.sh # 启动脚本
29-
├── README.md # 项目说明文档
30-
└── Streamlit使用文档.md # Streamlit参考文档
31-
```
32-
33-
## 界面特点
34-
35-
管理面板采用现代化的表格+选择+弹窗界面风格,具有以下特点:
36-
37-
- **数据表格化展示**: 所有列表数据使用表格形式展示,支持行选择
38-
- **操作区集中管理**: 选择行后在操作区显示可执行的操作按钮
39-
- **统一的交互模式**: 所有页面保持一致的交互体验 - 选择数据行后进行操作
40-
- **响应式界面**: 适应不同屏幕尺寸,布局合理
41-
- **清晰的导航路径**: 简化导航层次,减少页面跳转次数
42-
43-
## 安装和运行
44-
45-
### 前提条件
46-
47-
- Python 3.8 或更高版本
48-
- 一个可访问的 Dify 平台实例
13+
## 安装与使用
4914

5015
### 安装依赖
5116

5217
```bash
53-
pip install streamlit requests python-dotenv
18+
pip install streamlit streamlit-agraph
5419
```
5520

56-
### 运行应用
57-
58-
#### 使用启动脚本
59-
60-
推荐使用提供的启动脚本,可以方便地设置连接信息:
21+
### 启动应用
6122

6223
```bash
63-
# 使用命令行参数设置连接信息
64-
./run.sh -u http://your-dify-url.com -e [email protected] -p your-password
65-
66-
# 或使用环境变量设置连接信息
67-
DIFY_BASE_URL=http://your-dify-url.com [email protected] DIFY_PASSWORD=your-password ./run.sh
24+
cd dify-panel
25+
streamlit run app.py
6826
```
6927

70-
启动脚本支持的参数:
71-
72-
- `-h, --help`: 显示帮助信息
73-
- `-u, --url URL`: 设置 Dify 平台 URL
74-
- `-e, --email EMAIL`: 设置登录邮箱
75-
- `-p, --password PWD`: 设置登录密码
76-
- `--port PORT`: 设置 Streamlit 应用端口(默认 8501)
77-
78-
#### 直接使用 Streamlit 命令
28+
或者直接运行可视化页面:
7929

8030
```bash
8131
cd dify-panel
82-
streamlit run app.py
32+
streamlit run pages/dsl_visualization.py
8333
```
8434

85-
应用将在浏览器中自动打开,默认地址为 http://localhost:8501
86-
87-
## 环境变量配置
88-
89-
应用支持通过环境变量设置默认的连接信息,这在容器化部署或持续运行环境中非常有用:
35+
## 使用方法
9036

91-
- `DIFY_BASE_URL`: Dify 平台的 URL (例如: http://example.com:11080)
92-
- `DIFY_EMAIL`: 登录邮箱账号
93-
- `DIFY_PASSWORD`: 登录密码
37+
1. 启动应用后,选择"上传 JSON 文件"或"粘贴 DSL 文本"输入 DSL 数据
38+
2. 点击"加载示例数据"可快速查看示例效果
39+
3. 查看生成的可视化图表,可拖动节点调整位置
40+
4. 点击节点可查看节点详细信息
9441

95-
当设置了这些环境变量后,应用将在启动时自动尝试连接到 Dify 平台,无需手动输入连接信息。
42+
## 节点类型说明
9643

97-
### 使用 .env 文件
44+
- **开始节点(绿色)**:工作流的起始点
45+
- **结束节点(红色)**:工作流的终止点
46+
- **LLM 节点(蓝色)**:大语言模型处理节点
47+
- **代码节点(橙色)**:执行代码逻辑的节点
48+
- **模板转换节点(紫色)**:处理内容模板转换的节点
49+
- **条件分支节点(黄色)**:根据条件控制流程走向的节点
50+
- **工具节点(棕色)**:调用外部工具或服务的节点
9851

99-
您也可以创建一个 `.env` 文件来存储这些环境变量:
52+
## 项目结构
10053

10154
```
102-
DIFY_BASE_URL=http://your-dify-instance:11080
103-
104-
DIFY_PASSWORD=your-password
55+
dify-panel/
56+
├── app.py # 主应用入口
57+
├── utils/
58+
│ ├── dsl_components.py # DSL图形渲染组件
59+
│ └── ...
60+
├── pages/
61+
│ └── dsl_visualization.py # DSL可视化页面
62+
└── examples/
63+
└── example_dsl.json # 示例DSL数据
10564
```
10665

107-
应用会自动加载这个文件中的环境变量。
108-
109-
## 使用说明
110-
111-
### 1. 连接到 Dify 平台
112-
113-
1. 在首页填写 Dify 平台的 URL、邮箱和密码 (如果设置了环境变量,这些字段将自动填充)
114-
2. 点击"连接"按钮
115-
3. 连接成功后,您将看到平台概览和功能导航区域
116-
117-
### 2. 应用管理
118-
119-
- **查看应用列表**: 应用以表格形式展示
120-
- **创建新应用**: 点击"创建新应用"按钮,填写应用名称、描述和选择应用类型
121-
- **查看应用详情**: 在表格中选择应用,然后点击"查看详情"按钮
122-
- **编辑应用**: 在表格中选择应用,然后点击"编辑应用"按钮
123-
- **删除应用**: 在表格中选择应用,然后点击"删除应用"按钮
124-
- **导出 DSL**: 在表格中选择应用,然后点击"导出 DSL"按钮
125-
- **导入 DSL**: 点击"导入应用 DSL"按钮,上传 DSL 文件
126-
127-
### 3. API 密钥管理
128-
129-
- **选择应用**: 在下拉菜单中选择要管理 API 密钥的应用
130-
- **查看 API 密钥**: 所有 API 密钥以表格形式展示
131-
- **创建 API 密钥**: 点击"创建 API 密钥"按钮
132-
- **删除 API 密钥**: 在表格中选择 API 密钥,然后点击"删除 API 密钥"按钮
133-
134-
### 4. 标签管理
135-
136-
- **查看标签列表**: 标签以表格形式展示
137-
- **创建新标签**: 点击"创建新标签"按钮,填写标签名称
138-
- **编辑标签**: 在表格中选择标签,然后点击"编辑标签"按钮
139-
- **删除标签**: 在表格中选择标签,然后点击"删除标签"按钮
140-
- **应用标签关联**: 点击"应用标签关联"按钮,选择应用和管理标签关联
141-
142-
### 5. 工具管理
143-
144-
- **查看工具提供者**: 工具提供者以表格形式展示
145-
- **筛选工具提供者**: 使用多选框筛选不同类型的工具提供者
146-
- **查看工具详情**: 在表格中选择工具提供者,然后点击"查看详情"按钮
147-
- **工作流工具管理**:
148-
- 点击"管理工作流工具"按钮,查看所有工作流应用表格
149-
- 选择未发布的工作流应用,可以点击"发布为工具"按钮
150-
- 选择已发布的工作流应用,可以点击"查看工具详情"或"编辑工具"按钮
151-
- 工具编辑界面支持修改名称、描述、标识和参数描述
152-
153-
## 技术实现
154-
155-
- **前端**: 使用 Streamlit 构建用户界面,采用表格+选择+弹窗模式
156-
- **后端**: 使用 Python 请求库与 Dify API 交互
157-
- **状态管理**: 使用 Streamlit 的会话状态(session_state)管理应用状态
158-
- **数据缓存**: 实现简单的缓存机制减少 API 请求
159-
- **环境变量**: 支持从环境变量和.env 文件读取连接信息
160-
161-
## 注意事项
66+
## 技术栈
16267

163-
- API 密钥创建后只会显示一次,请妥善保存
164-
- 删除应用或标签等操作无法撤销,请谨慎操作
165-
- 长时间未操作可能导致会话过期,需要重新连接
166-
- 为安全起见,建议不要在共享环境中使用包含密码的环境变量
68+
- **Streamlit**:构建 Web 界面
69+
- **streamlit-agraph**:处理图形可视化
70+
- **Python**:核心逻辑实现

0 commit comments

Comments
 (0)