Skip to content

feat(ui): chat 模式流式进度输出 - #5

Open
sangowu wants to merge 1 commit into
mainfrom
feature/streaming-ui
Open

sangowu wants to merge 1 commit into
mainfrom
feature/streaming-ui

Conversation

@sangowu

@sangowu sangowu commented Jul 17, 2026

Copy link
Copy Markdown
Owner

概述

把 Gradio chat 模式的 run_query 改为 generator,PER Loop 各阶段实时 yield 进度到 UI,用户不再对着空白等整轮结束(一次问答通常 5-10s)。

变更

  • run_query → generator:立即回显用户消息 + assistant 占位,随后在规划 → 检索(每轮) → 评估(每轮) → 生成各阶段更新进度文字并 yield
  • on_submityield from run_query(...),Gradio 自动流式渲染
  • 域外拒答/空输入路径同步改为 yield

验证

  • ruff check → All checks passed
  • py_compile 通过
  • 实跑 generator(真实 PER Loop,服务在跑):7 次流式更新,进度递进正确
    规划中 → 检索(1/2) → 评估(1/2) → 检索(2/2) → 评估(2/2) → 生成中 → 答案),
    最终返回 Google's advertising revenue in 2023 was $237,855 million [1] + sources

说明

本次为阶段性进度流(改善感知延迟,改动集中、低风险)。最终答案的 token 级打字机流式(需 gemini_clientchat_stream + Synthesizer agentic loop 改造)作为可选后续,未包含在本 PR。

🤖 Generated with Claude Code

run_query 改为 generator,PER Loop 各阶段 yield 中间状态
(规划 → 检索 → 评估 → 生成),用户实时看到进度而非对着空白等整轮结束;
on_submit 相应改为 yield from。实测 7 次流式更新,最终返回带引用答案。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant