网易首页 > 网易号 > 正文 申请入驻

Stripe这套文档语法,被开发者拿来干AI流式渲染了

0
分享至


去年大模型应用井喷时,一个隐蔽的痛点被反复踩中:LLM生成的markdown再漂亮,一旦用户要图表、要表单、要可排序的数据表格,整个渲染层就开始崩。

缓冲整块JSON会杀死流式体验,逐token解析HTML又像在拆炸弹——标签没闭合怎么办?尖括号混在正文里怎么区分?

Stripe前工程师创建的Markdoc,原本只是文档框架里的冷门语法,现在被一群开发者挖出来,当成了LLM流式UI的解药。

1. 流式渲染的三重陷阱

做AI聊天界面的团队,几乎都在同一个地方摔过跤。

第一方案是JSON代码块。LLM把图表数据包在```json里输出,前端提取后渲染。流式场景下这方案直接报废:JSON对象逐token到达时,在闭合括号出现之前都是非法格式。你要么缓冲整块内容(用户看着空白等半天),要么硬着头皮解析残缺JSON(随时报错)。

第二方案是HTML/JSX。让模型直接输出这样的标签。但模型会搞混HTML属性和JSX props,会忘记闭合标签,会在普通文本里随意使用<字符——流式解析器根本分不清这是标签开头还是数学符号。

第三方案是自定义语法。比如[[chart:bar:Q1=120,Q2=150]]。代价是重新训练模型适应新格式,烧掉大量token写格式说明,还要自己维护解析器。

三种方案,三种妥协。

2. 为什么偏偏是Markdoc

Markdoc是Stripe 2022年开源的文档框架,核心创新是用[% %]包裹自定义标签,扩展标准markdown。

开发者Chris Garrett(mdocUI作者)发现这个冷门语法恰好解决流式渲染的三大痛点:

分隔符足够怪异。[%这个序列在正常文本、标准markdown、代码块里都几乎不会出现。流式解析器检测到它就能立即切换状态,不需要向前偷看或回溯。

模型已经学过。Stripe文档、Cloudflare文档都用了Markdoc,这些在LLM训练数据里。模型写这种语法不需要额外提示,准确率远高于自定义格式。

正文和组件无缝混排。不需要模式切换,LLM一边写markdown一边丢组件,解析器随token到达实时分离。

Chris的mdocUI只借用了Markdoc的标签语法,流式解析器是从头手写的。架构很直白:LLM token → 分词器 → 流式解析器 → 组件注册表 → 渲染器。

分词器是个字符级状态机,三个状态:IN_PROSE(正文)、IN_TAG(标签内)、IN_STRING(字符串内)。token到达时实时分离正文和组件。

3. 实际用起来长什么样

Chris放出的示例里,LLM输出这样的内容:

Here's your revenue data:

[% chart type="bar" labels=["Q1","Q2","Q3"] values=[120,150,180] /%]

Revenue grew 12% quarter-over-quarter.

[% button action="continue" label="Show by region" /%]

用户看到图表和按钮随着文字流实时出现,没有卡顿,没有闪烁,没有"正在加载"的占位符。

组件系统完全开放。你可以注册任意React组件,从简单按钮到复杂的数据表格、可视化图表、交互式表单。LLM只需要知道组件名和props,不需要理解渲染细节。

Chris提到一个细节:状态机设计让错误处理变得简单。如果标签语法写错了,解析器能精确定位错误位置,不会污染后续内容。这比JSON解析器遇到语法错误就整段丢弃要友好得多。

4. 谁已经在用

mdocUI目前还是个人项目,但思路已经被多个团队验证。

Vercel的AI SDK在2024年推出的streaming helpers,处理了类似的流式JSON解析问题,但走的是另一条路——要求LLM输出特定格式的工具调用,而不是扩展markdown。

Anthropic的Claude Artifacts功能,让模型生成可运行的React组件,但采用的是完整文件输出,不是流式增量渲染。

Stripe自己似乎没把Markdoc往这个方向推。他们的官方文档还在强调"为大规模文档站点设计",对AI场景保持沉默。

Chris在GitHub讨论区回复用户提问时说:「我试过让Claude直接输出JSX,结果10次里有3次会搞混单双引号,或者忘记转义特殊字符。Markdoc的语法约束更严格,模型犯错率明显更低。」

他补充了一个数据点:在GPT-4和Claude 3.5 Sonnet的对比测试中,两者写Markdoc标签的语法正确率都超过95%,而JSX的正确率大约在80%左右。

5. 局限和未解的问题

这套方案并非万能。

组件props目前只支持基本类型:字符串、数字、布尔值、数组。复杂对象需要序列化成字符串再解析,增加了LLM和前端双方的负担。

嵌套标签的语法还没定稿。Chris的草案里支持[% list %][% item /%][% /list %]这种结构,但流式解析的复杂度会指数级上升。

最大的问号是生态。Markdoc本身是Stripe的边缘项目,社区规模远小于MDX。如果mdocUI想做成通用方案,可能需要兼容MDX语法,或者推动新的社区标准。

Chris的回应很直接:「我现在优先解决自己的问题。如果更多人遇到同样的痛点,标准会自然浮现。」

他在文档最后埋了一个钩子:「想象一下,LLM输出一段分析文字,中间突然插入一个可交互的模拟器,让你调参数看结果——全程没有页面跳转,没有加载状态,就像文字本身会呼吸。」

这种体验,现在的AI产品里还很少见。是技术没ready,还是没人想到这么做?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
80岁母亲游太行山,次日与女儿坠崖身亡,最后一条动态让人泪崩

80岁母亲游太行山,次日与女儿坠崖身亡,最后一条动态让人泪崩

荷兰豆爱健康
2026-04-04 18:50:37
郑丽文访问大陆,岛内民调惊人,吴伯雄重磅表态,赖清德遭到重击

郑丽文访问大陆,岛内民调惊人,吴伯雄重磅表态,赖清德遭到重击

最新声音
2026-04-05 02:56:36
沉默48小时后,人民日报通告全球,把话说很重,日本听好

沉默48小时后,人民日报通告全球,把话说很重,日本听好

黑翼天使
2026-04-04 08:54:30
恒大夏海钧:当一个人高智商,有资源,无下限,会坏到什么地步?

恒大夏海钧:当一个人高智商,有资源,无下限,会坏到什么地步?

小影的娱乐
2026-04-02 14:45:52
美国拘捕苏莱曼尼侄女和侄孙女,疑为交换美飞行员加筹码

美国拘捕苏莱曼尼侄女和侄孙女,疑为交换美飞行员加筹码

桂系007
2026-04-04 23:41:59
57岁相声演员大兵:回湖南老家生活,已是文联主席,还转行当网红

57岁相声演员大兵:回湖南老家生活,已是文联主席,还转行当网红

白面书誏
2026-04-02 19:19:02
“嫁给自己”退70件婚纱后续,姐妹团翻脸,博主账号被网友冲烂

“嫁给自己”退70件婚纱后续,姐妹团翻脸,博主账号被网友冲烂

十九妹
2026-04-03 17:54:22
老板们记住了不要搞同级同薪制,最后会导致大家相互推卸责任

老板们记住了不要搞同级同薪制,最后会导致大家相互推卸责任

熊林老师
2025-05-11 18:00:07
叹为观止!武磊2次示范吊打空门:结果如出一辙

叹为观止!武磊2次示范吊打空门:结果如出一辙

足球大腕
2026-04-04 23:34:17
年终奖2箱零食我次日离职,年后老板助理:抱歉您的年终奖是28万

年终奖2箱零食我次日离职,年后老板助理:抱歉您的年终奖是28万

奶茶麦子
2026-04-04 23:50:12
兵败如山倒!国产新能源或已证明:中国根本不需要二线豪华品牌

兵败如山倒!国产新能源或已证明:中国根本不需要二线豪华品牌

梦史
2026-04-04 06:43:02
万元悬赏卡皮巴拉“萌萌”,好消息:找到了,坏消息:又跑了,体型壮硕堪比小猪,蹿坏网后逃脱追捕

万元悬赏卡皮巴拉“萌萌”,好消息:找到了,坏消息:又跑了,体型壮硕堪比小猪,蹿坏网后逃脱追捕

观威海
2026-04-04 09:47:03
蒋介石孙子召开发布会,提出“两蒋”移灵大陆,2句话让世人唏嘘

蒋介石孙子召开发布会,提出“两蒋”移灵大陆,2句话让世人唏嘘

老谢谈史
2026-03-18 18:33:35
随着广东大胜、深圳绝杀,CBA乱了!广东重回前三,辽篮跌出前十

随着广东大胜、深圳绝杀,CBA乱了!广东重回前三,辽篮跌出前十

越岭寻踪
2026-04-05 04:00:28
医生:再高的血压,没有这4个症状,不必过分焦虑,照常饮食

医生:再高的血压,没有这4个症状,不必过分焦虑,照常饮食

岐黄传人孙大夫
2026-04-04 20:16:52
开战第34天,全球接到普京消息,俄伊已挂断电话,以色列疆域告急

开战第34天,全球接到普京消息,俄伊已挂断电话,以色列疆域告急

阿纂看事
2026-04-05 04:14:38
CBA神奇一夜:绝杀反绝杀,卫冕冠军20分惨败

CBA神奇一夜:绝杀反绝杀,卫冕冠军20分惨败

徐觳解说
2026-04-05 00:31:21
中俄意见出现分歧,俄罗斯带头反对,带着朝鲜对华“唱反调”

中俄意见出现分歧,俄罗斯带头反对,带着朝鲜对华“唱反调”

霁寒飘雪
2026-04-04 11:59:05
杀妻恶魔金昊被执行死刑!妻子错过两次逃生良机,遇害细节曝光

杀妻恶魔金昊被执行死刑!妻子错过两次逃生良机,遇害细节曝光

奇思妙想草叶君
2026-04-05 04:15:53
为啥说老公长的帅少让他去接孩子?网友:理解曹操成为曹操

为啥说老公长的帅少让他去接孩子?网友:理解曹操成为曹操

解读热点事件
2026-04-04 00:34:43
2026-04-05 06:59:00
Ping值焦虑
Ping值焦虑
有态度网友ytd
746文章数 16关注度
往期回顾 全部

科技要闻

内存一年涨四倍!国产手机厂商集体涨价

头条要闻

特朗普发布视频宣称“打死多名伊朗军事领导人”

头条要闻

特朗普发布视频宣称“打死多名伊朗军事领导人”

体育要闻

刹不住的泰格·伍兹,口袋里的两粒药丸

娱乐要闻

Q女士反击,否认逼宋宁峰张婉婷离婚

财经要闻

中微董事长,给半导体泼点冷水

汽车要闻

17万级海豹07EV 不仅续航长还有9分钟满电的快乐

态度原创

艺术
本地
手机
亲子
公开课

艺术要闻

周恩来唯一草书题碑,8个字快一半都不认识!

本地新闻

跟着歌声游安徽,听古村回响

手机要闻

小米MIX系列主攻折叠屏赛道:这就是小米最顶级旗舰

亲子要闻

优生优育,从科学孕前准备开始

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版