Skip to content

Commit 29ffb35

Browse files
authored
add simple web ui for workflow (#6)
* add simple web ui for workflow * update readme
1 parent 0aa3898 commit 29ffb35

File tree

13 files changed

+3025
-6
lines changed

13 files changed

+3025
-6
lines changed

README.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,138 @@ python -m vertex_flow.src.app
7070

7171
启动后,浏览器访问 [http://localhost:7860](http://localhost:7860) 进入 Web 聊天界面(支持工作流与多模型)。
7272

73+
## Web UI 使用指南
74+
75+
### 界面概览
76+
77+
Vertex 提供了直观易用的 Web 界面,包含以下主要功能模块:
78+
79+
1. **聊天界面** - 支持多轮对话和流式输出
80+
2. **工作流编辑器** - 可视化工作流设计与执行
81+
3. **配置管理** - 模型参数和系统设置
82+
83+
### 聊天功能使用
84+
85+
#### 基本聊天
86+
- 在主页面的聊天输入框中输入问题
87+
- 支持多轮对话,系统会自动维护上下文
88+
- 支持实时流式输出,可以看到模型逐字生成回复
89+
90+
#### 模型切换
91+
- 在聊天界面可以选择不同的模型:
92+
- `local-qwen`:本地 Ollama 部署的 Qwen-7B 模型
93+
- `deepseek-chat`:DeepSeek API 模型
94+
- `openrouter/*`:OpenRouter 平台的各种模型
95+
96+
#### 自定义 System Prompt
97+
- 在聊天界面的设置中可以自定义 System Prompt
98+
- 用于指导模型的行为和回复风格
99+
- 支持实时修改和应用
100+
101+
### 工作流编辑器使用
102+
103+
#### 访问工作流编辑器
104+
- 点击导航栏中的「工作流」按钮
105+
- 或直接访问 [http://localhost:7860/workflow](http://localhost:7860/workflow)
106+
107+
#### 节点类型说明
108+
- **开始节点**:工作流的入口点
109+
- **LLM节点**:调用大语言模型进行文本生成
110+
- **检索节点**:从知识库中检索相关信息
111+
- **条件节点**:根据条件进行分支判断
112+
- **函数节点**:执行自定义函数逻辑
113+
- **结束节点**:工作流的出口点
114+
115+
#### 创建工作流
116+
1. **添加节点**:从左侧节点面板拖拽节点到画布
117+
2. **连接节点**:点击连接模式,然后点击两个节点建立连接
118+
3. **配置节点**:选择节点后在右侧属性面板配置参数
119+
4. **执行工作流**:点击执行按钮运行工作流
120+
5. **查看输出**:在底部输出面板查看节点执行结果
121+
122+
#### 节点配置详解
123+
124+
**LLM节点配置**
125+
- 模型选择:支持本地和云端模型
126+
- 系统提示词:定义模型行为
127+
- 用户消息:支持变量占位符
128+
- 温度:控制输出随机性(0-1)
129+
- 最大令牌数:限制输出长度
130+
131+
**检索节点配置**
132+
- 索引名称:指定要检索的知识库
133+
- 查询内容:支持变量占位符
134+
- 检索数量:返回的相关文档数量
135+
136+
**条件节点配置**
137+
- 条件表达式:使用 Python 表达式
138+
- 支持多分支条件判断
139+
140+
#### 变量系统
141+
- **环境变量**`{{#env.变量名#}}`
142+
- **用户变量**`{{user.var.变量名}}`
143+
- **节点输出**`{{节点ID.输出字段}}`
144+
145+
#### 工作流操作
146+
- **保存工作流**:自动保存到本地
147+
- **加载工作流**:从配置文件加载
148+
- **导出工作流**:导出为 YAML 格式
149+
- **自动布局**:自动整理节点位置
150+
151+
### 输出面板功能
152+
153+
#### 查看节点输出
154+
- 选择已执行的节点,在底部输出面板查看结果
155+
- 支持 Markdown 格式渲染
156+
- 支持原始内容查看
157+
- 支持一键复制输出内容
158+
159+
#### 面板控制
160+
- **展开**:将输出面板展开到全屏
161+
- **最小化**:收起输出面板
162+
- **拖拽调整**:拖拽分隔条调整面板高度
163+
164+
### 配置管理
165+
166+
#### API 配置
167+
- 在配置页面设置外部 API 的密钥和基础 URL
168+
- 支持 DeepSeek、OpenRouter 等多种 API 服务
169+
- 配置后即可在聊天和工作流中使用对应模型
170+
171+
#### 模型参数
172+
- 温度:控制输出的随机性和创造性
173+
- 最大令牌数:限制单次输出的最大长度
174+
- 系统提示词:全局的模型行为指导
175+
176+
### 快捷键
177+
178+
- `Ctrl/Cmd + Enter`:发送聊天消息
179+
- `Escape`:取消工作流节点连接模式
180+
- `Ctrl/Cmd + S`:保存工作流(开发中)
181+
182+
### 故障排除
183+
184+
#### 常见问题
185+
1. **工作流图形不显示**
186+
- 检查浏览器控制台是否有 JavaScript 错误
187+
- 刷新页面重新加载
188+
- 确保网络连接正常
189+
190+
2. **节点输出不显示**
191+
- 确保节点已成功执行
192+
- 检查底部输出面板是否被最小化
193+
- 尝试重新选择节点
194+
195+
3. **模型调用失败**
196+
- 检查 API 密钥配置是否正确
197+
- 确认网络连接和 API 服务状态
198+
- 查看控制台错误信息
199+
200+
#### 性能优化建议
201+
- 大型工作流建议分步执行
202+
- 定期清理浏览器缓存
203+
- 使用现代浏览器以获得最佳体验
204+
73205
## 可选参数
74206

75207
- `--host`:Ollama 服务地址(默认:http://localhost:11434)

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ tqdm>=4.65.0
1212
openai>=1.0.0
1313

1414
# LangChain相关依赖
15+
dashvector
16+
dashscope
1517
langchain-core>=0.1.0
1618
langchain-community>=0.0.1
1719
ruamel.yaml>=0.18.10
18-
dashvector
20+
flask>=2.0.0

vertex_flow/workflow/chat.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,16 @@ def _create_completion(
5151
}
5252
if option:
5353
default_option.update(option)
54-
completion = self.client.chat.completions.create(
55-
model=self.name, messages=messages, tools=tools, **default_option
56-
)
54+
# 构建API调用参数
55+
api_params = {
56+
"model": self.name,
57+
"messages": messages,
58+
**default_option
59+
}
60+
if tools is not None and len(tools) > 0:
61+
api_params["tools"] = tools
62+
63+
completion = self.client.chat.completions.create(**api_params)
5764
return completion
5865

5966
def chat(self, messages, option: Dict[str, Any] = None, tools=None) -> Choice:

vertex_flow/workflow/constants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
STATUS = "status"
1717
SUCCESS = "success"
1818
MODEL = "model"
19-
SYSTEM = "system"
20-
USER = "user"
19+
SYSTEM = "system_message"
20+
USER = "user_messages"
2121
PREPROCESS = "preprocess"
2222
POSTPROCESS = "postprocess"
2323
ENABLE_STREAM = "enable_stream"

0 commit comments

Comments
 (0)