Spaces:
Running
Running
A newer version of the Gradio SDK is available:
6.1.0
需求:实现工作流(Workflow)标签页
重要性: 中 (Medium)
1. 目标
创建一个名为“工作流”的新标签页,允许用户通过与 AI 对话来定义和可视化一个任务的执行流程。
2. 功能描述
双 Agent 协作模式:
- 主 Agent (Ling-1t): 在 UI 左侧通过聊天界面与用户直接交互,理解用户意图并帮助其完成任务。
- 副 Agent (Ling-mini): 在后台静默观察主 Agent 与用户的对话,其实时、增量地分析和提取对话中体现出的工作流程。
实时工作流可视化:
- 在 UI 右侧,实时显示由副 Agent 提取出的“当前主题”和“当前工作流描述”。
- 工作流的文本描述格式需要定义,初期可使用简单的占位符格式(例如,使用 Markdown 列表)。
冷启动与示例:
- 为了方便用户上手,需要在聊天输入框下方提供一些预设的示例主题(
gr.Examples)。
- 为了方便用户上手,需要在聊天输入框下方提供一些预设的示例主题(
3. UI 布局
- 左侧面板:
gr.Chatbot: 用于展示与主 Agent 的对话历史。gr.Textbox: 用户输入框。gr.Button: 发送按钮。gr.Examples: 预设主题示例。
- 右侧面板:
gr.Textbox(或gr.Markdown): 用于显示“当前主题”。gr.Textbox(或gr.Markdown): 用于显示“当前工作流描述”。
4. 开发说明
- 必须对接真实 LLM: 功能逻辑必须调用真实的 LLM API 来生成聊天回复和工作流,不允许使用写死的静态字符串作为占位符。
- System Prompts: 主副 Agent 的 System Prompt 可使用初步的、简单的版本,后续由用户精细化。
- 用户接手: 最终的、精细化的 System Prompts 和工作流描述格式将由用户手动开发和指定。
5. 验证方式
- 启动应用,切换到“工作流”标签页。
- 左侧聊天功能可正常使用。
- 右侧能看到“主题”和“工作流”的显示区域。
- 点击预设示例,聊天框会自动填充。
- (手动验证) 在左侧进行对话,右侧的工作流描述会由 LLM 真实生成并发生有意义的变化。
6. 自动化测试方案
本方案旨在通过模拟一次完整的用户交互,来端到端地验证“工作流”标签页的核心功能。
测试用例: test_workflow_tab_dual_agent_interaction
环境重置 (Setup)
- 调用“异常处理与重置流程”,确保浏览器和后台服务处于干净状态。
kill掉所有app.py进程。- 后台启动
app.py。 - 等待 5 秒。
导航与定位 (Navigation)
- 使用
navigate_page打开http://127.0.0.1:7860。 - 使用
take_snapshot获取页面快照。 - 从快照中找到 "工作流 (Workflow)" 标签页的
uid。 - 使用
click点击该标签页。 - 等待 2 秒以确保页面切换完成。
- 使用
执行交互 (Action)
- 使用
take_snapshot获取工作流页面的快照。 - 从快照中定位到聊天输入框的
uid(elem_id="workflow_chat_input")。 - 使用
fill向输入框填入一个清晰的任务,例如:"我需要一个 Python 函数,它可以接收一个 URL 列表,并返回每个 URL 的 HTTP 状态码。"。 - 从快照中定位到“发送”按钮的
uid(elem_id="workflow_send_button")。 - 使用
click点击“发送”按钮。
- 使用
等待与断言 (Assertion)
- 等待一个较长的时间(例如 20 秒),以确保双 LLM 调用均已完成。
- 使用
take_snapshot获取最终的页面快照。 - 验证主 Agent 回复:
- 检查快照中聊天记录(
elem_id="workflow_chatbot")部分,确认其中包含了用户的输入以及由 LLM 生成的、非空的的助手回复。
- 检查快照中聊天记录(
- 验证副 Agent 分析:
- 检查快照中“当前主题”文本框(
elem_id="workflow_topic_output"),确认其内容已被更新,不再是空的。 - 检查快照中“当前工作流描述”区域(
elem_id="workflow_output"),确认其内容已被更新,包含一个 Markdown 格式的、有意义的步骤列表,而不是初始的“*等待任务开始...*”。
- 检查快照中“当前主题”文本框(