1 分•作者: oliculipolicula•5 个月前
返回首页
最新
1 分•作者: felixbraun•5 个月前
1 分•作者: akyuu•5 个月前
1 分•作者: liyanage•5 个月前
2 分•作者: matthewworner•5 个月前
22 分•作者: ai_critic•5 个月前
1 分•作者: birdculture•5 个月前
1 分•作者: Bender•5 个月前
1 分•作者: Bender•5 个月前
1 分•作者: Bender•5 个月前
1 分•作者: hhs•5 个月前
1 分•作者: Cider9986•5 个月前
2 分•作者: stared•5 个月前
1 分•作者: hhs•5 个月前
1 分•作者: littlexsparkee•5 个月前
1 分•作者: compiler-guy•5 个月前
66 分•作者: cdrnsf•5 个月前
41 分•作者: littlexsparkee•5 个月前
3 分•作者: nayajunimesh•5 个月前
大多数人工智能聊天应用(如 ChatGPT 或 Claude)会以 Markdown 文本的形式将回复流式传输给客户端。每当新的文本块到达时,前端通常会重新解析整个 Markdown 文档以渲染更新后的消息。这种方法可行,但对于长回复来说,它会迅速降低用户界面的速度。
我一直在思考如何让这个过程更有效率,所以我编写了一个 Markdown 解析器,它可以(半)增量地解析流式 Markdown。它不会每次都重新处理整个文档,而是只解析新增内容,并且每行只处理一次。块级节点会被缓冲,直到它们完成(例如,当一个段落结束并且不会被更多文本扩展时)。这也使得在服务器端解析 Markdown 成为可能。主要演示正是这样做的。此外,动画化 Markdown 块也因此变得更加简单和高效。
这是一个演示,如果您想看看它的实际效果:
<a href="https://markdownparser.vercel.app/experimental" rel="nofollow">https://markdownparser.vercel.app/experimental</a>
您可以随意输入“渲染一个包含 10 行的表格”来查看每个表格行的动画效果。
我花了很多时间思考这个问题,所以如果您正在处理类似的问题,我很乐意与您交流。
33 分•作者: doener•5 个月前