ling-playground / docs /requirements /2025-10-13-10-21-fix-workflow-chat-context.md
cafe3310's picture
little demo
cb6eafc

A newer version of the Gradio SDK is available: 6.1.0

Upgrade
metadata
重要性: 

需求: 修复工作流 Tab 中用户输入无法进入模型上下文的 Bug

1. 问题描述

在“工作流 (Workflow)”功能区,用户在主 Agent 聊天框中输入任务后,该输入没有被正确地加入到与大模型的对话历史(history)中。这导致模型无法获知用户的具体需求,只会反复询问“您希望首先解决什么?”,而无法根据用户的输入生成有效的工作流。

2. 需求目标

修复此 Bug,确保用户在工作流 Tab 中的输入能够被正确捕获,并作为上下文传递给 ling_chat_workflow 函数,使模型能够理解用户意图并生成相应的执行计划。

3. 验收标准 (验证方式)

  1. 启动应用: 运行 app.py
  2. 导航到工作流 Tab: 点击界面上的“工作流 (Workflow)”标签页。
  3. 输入任务: 在左侧的“输入你的任务...”文本框中,输入具体的任务描述,例如:“写一个在网页上显示‘你好,世界!’的 Python Flask 应用”。
  4. 点击发送: 点击“发送”按钮。
  5. 验证模型响应:
    • 预期结果: 模型不再询问用户需要做什么,而是直接针对用户输入的任务,开始生成工作流或提出澄清问题。例如,它可能会回复:“好的,我们来创建一个 Flask 应用。第一步是...”。
    • 错误结果 (当前状态): 模型回复:“您希望首先解决什么?请告诉我具体情况。”
  6. 验证工作流状态:
    • 预期结果: 右侧的“实时工作流”区域会根据模型的响应,显示出与任务相关的初始状态或图表。
    • 错误结果 (当前状态): 右侧区域显示的是一个通用的、与用户输入无关的初始状态。

4. 技术实现思路

  • 问题定位: tab_workflow.py 文件中的 send_button.click() 事件监听器是问题的关键。
  • 分析: 当前的实现中,ling_chat_workflow 函数在被调用时,虽然接收了 user_inputchatbot 作为参数,但在函数内部,user_input 并未被正确地追加到 chatbot 的历史记录中。
  • 修复方案:ling_chat_workflow 函数的开头,需要手动将用户的输入 user_input 和一个空的响应(None 或空字符串)作为一个元组 (user_input, None) 追加到 history 列表中。这样,后续模型生成时,就能看到用户的最新提问。