在 AI 对话的产品中, LLM 如何输出业务定制的 UI 展示呢?

1 月 14 日
 RYAN13
在 AI 对话过程中,端侧已经可以渲染 MarkDown 格式,想在其中加入一些业务定制的 UI 样式卡片。

问题:
1 、LLM 如何输出业务卡片?
2 、端侧如何渲染?
2073 次点击
所在节点    问与答
9 条回复
xjzshttps
1 月 14 日
我不知道你的情况,
我让 google 的输出试卷时,他直接给我输出了 html 文件来实现排版
taobaibai111
1 月 14 日
有两种:
1 、直接告诉 LLM 按什么规则生成 html 即可
2 、使用 COT 或 json ,然后解析数据前端自己渲染。
SuperDaniel313
1 月 15 日
实测,用 JSON 的效果不是很好。稍微有一点点输入波动,就要重新输入。

渲染和数据最好剥离开。

端则写好一些校验规则。然后 Prompt 让大模型生成标签包裹,〈 tag 〉〈/tag 〉,接收数据之后解析再渲染。

Gemini 教我的,上次试了一次,比 JSON 效果好很多
maolon
1 月 15 日
a2ui,谷歌提出的新范式 https://a2ui.org/ ,然后可以搭配 copilot kit 使用 https://www.copilotkit.ai/
davecat
1 月 15 日
@SuperDaniel313 #3 正解 这是现在的 LLM 渲染规范,参考 <thinking></thinking> 标签
经过几次技术验证,什么自定义参数 自定义结构,JSON 啥的,并不能做到前端标准化渲染器工具,目前都采用的 tag 标签包括法

这么优秀的方案被楼主套出来了 可惜可惜
huaweii
1 月 15 日
@davecat 标配这个是
RYAN13
1 月 15 日
看了下千问 APP 的数据结构,output 的 content 是这样的:

我会优先推荐附近符合你要求的黄焖鸡。 \n 当前你的地址是**浙江省 xxxxx**。 \n[(eleme_recommend_1)] \n 想换口味或调整份量,随时告诉我

其中 \n[(eleme_recommend_1)] 就是一个卡片的标记,eleme_recommend_1 是卡片在这个消息中的唯一 ID ,端侧拿到这个唯一标记后再去请求的数据
RYAN13
1 月 15 日
@SuperDaniel313

看了下千问 APP 的数据结构,output 的 content 是这样的:

我会优先推荐附近符合你要求的黄焖鸡。 \n 当前你的地址是**浙江省 xxxxx**。 \n[(eleme_recommend_1)] \n 想换口味或调整份量,随时告诉我

其中 \n[(eleme_recommend_1)] 就是一个卡片的标记,eleme_recommend_1 是卡片在这个消息中的唯一 ID ,端侧拿到这个唯一标记后再去请求的数据
SuperDaniel313
1 月 15 日
@RYAN13 我哪会什么开发呀?我只会调 AI🤣

我是产品,我只是会用 AI coding 一些小项目。

你如果能拿到 ID 了,那问题应该解决了吧?

千问我没用过,不知道指令遵循效果怎么样。我用 Gemini 居多,Gemini 的指令遵循效果蛮好的。

看你发的数据结构特征已经蛮明显了,用正则提一下就好了,应该不会有太大的纰漏吧?

最好的办法是在你的 prompt 里面直接给他一个示例,你说我需要这样的格式,然后让他不要废话,直接输出这个。

有样本参照的话,指令遵循问题应该不大。这样你就可以不用管它到底给你输出什么,你按你的样本来提就行了。你不开深度思考的话,应该速度蛮快的。有问题就重新输出啊。所以好模型和烂模型的 token 消耗就差在这里嘛。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1185706

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX