Spaces:
Running
Running
A newer version of the Gradio SDK is available:
6.1.0
metadata
重要性: 高
需求: 修复工作流 Tab 中用户输入无法进入模型上下文的 Bug
1. 问题描述
在“工作流 (Workflow)”功能区,用户在主 Agent 聊天框中输入任务后,该输入没有被正确地加入到与大模型的对话历史(history)中。这导致模型无法获知用户的具体需求,只会反复询问“您希望首先解决什么?”,而无法根据用户的输入生成有效的工作流。
2. 需求目标
修复此 Bug,确保用户在工作流 Tab 中的输入能够被正确捕获,并作为上下文传递给 ling_chat_workflow 函数,使模型能够理解用户意图并生成相应的执行计划。
3. 验收标准 (验证方式)
- 启动应用: 运行
app.py。 - 导航到工作流 Tab: 点击界面上的“工作流 (Workflow)”标签页。
- 输入任务: 在左侧的“输入你的任务...”文本框中,输入具体的任务描述,例如:“写一个在网页上显示‘你好,世界!’的 Python Flask 应用”。
- 点击发送: 点击“发送”按钮。
- 验证模型响应:
- 预期结果: 模型不再询问用户需要做什么,而是直接针对用户输入的任务,开始生成工作流或提出澄清问题。例如,它可能会回复:“好的,我们来创建一个 Flask 应用。第一步是...”。
- 错误结果 (当前状态): 模型回复:“您希望首先解决什么?请告诉我具体情况。”
- 验证工作流状态:
- 预期结果: 右侧的“实时工作流”区域会根据模型的响应,显示出与任务相关的初始状态或图表。
- 错误结果 (当前状态): 右侧区域显示的是一个通用的、与用户输入无关的初始状态。
4. 技术实现思路
- 问题定位:
tab_workflow.py文件中的send_button.click()事件监听器是问题的关键。 - 分析: 当前的实现中,
ling_chat_workflow函数在被调用时,虽然接收了user_input和chatbot作为参数,但在函数内部,user_input并未被正确地追加到chatbot的历史记录中。 - 修复方案: 在
ling_chat_workflow函数的开头,需要手动将用户的输入user_input和一个空的响应(None或空字符串)作为一个元组(user_input, None)追加到history列表中。这样,后续模型生成时,就能看到用户的最新提问。