news 2026/8/27 14:55:12

Articulate富媒体响应指南:Handlebars打造卡片、图表等10种Rich Response

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Articulate富媒体响应指南:Handlebars打造卡片、图表等10种Rich Response

Articulate富媒体响应指南:Handlebars打造卡片、图表等10种Rich Response

【免费下载链接】articulateA platform for building conversational interfaces with intelligent agents (chatbots)项目地址: https://gitcode.com/gh_mirrors/ar/articulate

Articulate 是一款开源的对话式智能体(Chatbot)构建平台,帮助你在 Slack、Facebook Messenger、Google Home、Web 等渠道上创建智能对话机器人。除了纯文本回复,Articulate 内置了10 种富媒体响应(Rich Response)——卡片轮播、图表、按钮、快速回复、富文本、图片、视频、音频、折叠面板和定位请求,并支持用Handlebars 模板为这些数据注入动态变量。本指南带你在 10 分钟内掌握它的完整用法。

富媒体响应能做什么?

传统聊天机器人只会回一句文本,而 Rich Response 让机器人可以:

  • 🃏 发送可点击的卡片轮播,展示商品或信息列表
  • 📊 用Chart.js 风格的图表直接渲染数据
  • 🔘 发送按钮触发指定动作或跳转链接
  • ⚡ 提供快速回复,让用户一键作答
  • 📝 输出富文本(标题、链接、排版)
  • 🖼️ 嵌入图片、视频、音频,甚至请求用户定位

Articulate 的 10 种响应类型集中定义在api/lib/rich-responses/目录下,每种类型一个子文件夹(如card/chart/button/),其中的info.json声明了类型名、描述和默认数据结构。系统启动时会由api/lib/rich-responses/index.js统一加载。

10 种 Rich Response 类型速查表

#类型用途默认开启
1Card Carousel可点击卡片,展示标题/描述/图片
2Buttons带链接或动作载荷的按钮组
3Quick Responses字符串数组,渲染为一排快捷按钮
4Rich TextHTML 富文本,支持排版与嵌入
5Image单张图片消息
6Video可播放视频消息
7Audio可播放音频消息
8Collapsible折叠面板,摘要式呈现长内容
9Chart基于 Chart.js 的饼图/图表⛔ 默认关闭
10Location请求用户地理位置⛔ 默认关闭

💡 每种类型的info.json(例如api/lib/rich-responses/chart/info.json)中都内置了defaultPayload,在界面上选择类型后会自动填充示例数据,方便你直接上手修改。

在哪里配置 Rich Response?

所有配置都在Action(动作)的 Response 标签页完成:

  1. 打开目标智能体 → 选择一个 Action
  2. 切换到Response页签,输入文本回复
  3. 开启Response Format开关,即可在该回复旁添加富媒体响应
  4. 选择类型(下拉列表来自api/lib/routes/rich-responses/rich-response.list.route.js暴露的接口,后端由api/lib/services/rich-response/rich-response.info.service.js汇总各类型元信息)

每条富媒体响应由两部分组成,定义在api/lib/models/action.response.rich-response.model.js中:

  • type:类型标识,如cardsCarouselquickResponses
  • data一段 JSON 字符串,这是 Handlebars 用武之地

前端界面由ui/app/containers/ActionPage/Components/ResponseForm.js实现,图标映射见ui/app/components/RichResponsesIcons/index.js

用 Handlebars 让数据"活"起来

普通回复中,data就是静态 JSON;但 Articulate 在生成响应前,会先把data当作 Handlebars 模板编译——核心逻辑在api/lib/services/agent/agent.converse-compile-rich-responses-templates.service.js

richResponse.data = JSON.parse(handlebars.compile(richResponse.data)(templateContext));

也就是说,你可以在 JSON 里写{{ }}占位符,引用槽位值、Webhook 返回数据、上下文变量等,机器人回复就会变成千人千面的动态内容

{ "title": "欢迎,{{ name }}!", "description": "您有 {{ count }} 条未读消息" }

Articulate 在api/server/plugins/handlebars/helpers/下预装了一批实用助手函数(helpers),无需手写复杂逻辑:

Helper功能文件
dateTimeFormat基于 Moment 的日期格式化(支持时区)date-time-format.handlebars-helper.js
moment完整 Moment.js 能力moment.handlebars-helper.js
numeral数字格式化(千分位、货币等)numeral.handlebars-helper.js
JSONPath用 JSONPath 从嵌套数据中取值json-path.handlebars-helper.js
intl国际化文本处理intl.handlebars-helper.js
nearestDate查找最近日期nearest-date.handlebars-helper.js
toXml/md5转 XML / 哈希计算to-xml.handlebars-helper.js
通用组字符串、数组、数学、比较等(来自 handlebars-helpers)misc.handlebars-helper.js

✨ 例如:{{ dateTimeFormat createdAt "YYYY-MM-DD" }}就能在卡片里展示格式化日期。

快速上手:打造第一个富媒体响应

步骤 1|创建智能体与动作:在界面中创建 Agent,新建一个 Category 和 Action(如Order Pizza),为它配置需要的 Slots。

步骤 2|添加 Rich Response:在 Action 的 Response 页签开启 Response Format,选择 Card Carousel,把默认 payload 中的{{ title }}{{ imageURL }}等替换为你的模板变量。

步骤 3|训练并测试:点击 Train 训练模型,然后在右侧对话窗或 Web Demo 渠道中实测。Web Demo 渠道通过api/lib/channels/web-demo/提供服务,连接配置如下:

![Articulate Web Demo渠道连接:选择Channel和Agent后保存即可测试富媒体响应](https://raw.gitcode.com/gh_mirrors/ar/articulate/raw/b7925c191f6e9065384d5e04796a4d3303f2ee9b/api/lib/channels/web-demo/screenshots/02 - Web demo channel.png?utm_source=gitcode_repo_files)

整个构建流程——从录入 Sayings 到对话测试——都在同一块看板内完成,右栏即为实时对话窗口:

常见问题(FAQ)

Q:Chart 和 Location 类型为什么用不了?A:二者在info.json中标记为enabled: false,属于实验性能力。开启渠道对图表渲染的支持前,建议优先使用其余 8 种类型。

Q:一个 Action 能挂多个富媒体响应吗?A:可以。richResponses是数组,你可以组合文本 + 卡片 + 快速回复,例如先推送卡片轮播,再附上"查看更多/取消"按钮。

Q:模板变量从哪里来?A:来自templateContext,包括已填充的 Slot 值、Webhook 返回数据与会话上下文。Webhook 结果可用{{ JSONPath data "$.store.book[0].title" }}这类写法提取。

小结

Articulate 的富媒体响应体系 =10 种开箱即用的类型api/lib/rich-responses/)+Handlebars 动态模板api/server/plugins/handlebars/)+Response 页签的可视化配置。掌握这套组合拳,你的聊天机器人就能从"只会说话"进化为"图文并茂、可点可交互"的智能助手。🚀

【免费下载链接】articulateA platform for building conversational interfaces with intelligent agents (chatbots)项目地址: https://gitcode.com/gh_mirrors/ar/articulate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 14:49:19

RAG,在企业AI中释放LLM大模型的潜力

前言 从自然语言处理到计算机视觉等,生成式AI(GenAI)超越了传统的单一数据源模型,以整合各种模式的多种数据源,使自然语言大模型(LLM)更接近于模仿人类的能力。随着企业从谨慎探索转向快速整合&…

作者头像 李华
网站建设 2026/8/27 14:46:35

【Win上开源且免费的网络速度监控悬浮窗口工具TrafficMonitor(Win)】

Windows 上开源且免费的网络速度监控悬浮窗口工具 TrafficMonitor 该软件可以实时监控上传和下载速度,同时也能显示 CPU 和内存使用情况。此外,右键点击软件,勾选显示任务栏窗口,然后它就可以嵌入任务栏了,以便我们实时…

作者头像 李华
网站建设 2026/8/27 14:44:39

基于Jupyter的糖尿病视网膜病变分级:ResNet50迁移学习实战

简介:卷积神经网络(CNN)是医学图像分析的核心技术之一,其通过多层特征提取实现病变的自动识别。在医学影像样本有限的情况下,迁移学习成为提升模型性能的关键策略——利用ImageNet预训练权重初始化网络,再以…

作者头像 李华