m ask 支持 markdown 流式渲染了
2024年12月5日 10:23
发现原来 rich 有可以用来实现流式 markdown 渲染的工具,于是就集成了一下,下面是个例子,在命令行中直接对 ruff 的一条 lint 规则进行提问

但是超出高度会闪烁,于是手动实现了下 truncate 的策略
class TruncatedMarkdown(Markdown):
def __rich_console__(self, console, options):
results = list(super().__rich_console__(console, options))
height = console.height
count = 0
buffer = []
for segment in reversed(results):
count += segment.text.count("\n") # type: ignore
if count > height:
break
buffer.append(segment)
yield from reversed(buffer)其实 rich.live 的用法还是昨晚从 pydantic-ai 学到的: