You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Amazon Lex中实现Lambda返回响应的HTML超链接渲染

解决Amazon Lex返回超链接响应(不使用ResponseCard)的问题

首先得说,你当前遇到的问题根源很明确——用了PlainText类型的消息,Lex会把这种类型的内容完全当作纯文本处理,根本不会解析HTML标签,所以你的链接代码才会原封不动显示成字符串。

下面给你具体的调整方案和思路:

1. 改用CustomPayload内容类型

Lex支持CustomPayload这个类型,它允许你发送自定义格式的内容,像Web前端、Facebook Messenger这类支持HTML的集成渠道,就能正常解析里面的<a>标签。调整后的代码是这样的:

var message = {
  'contentType': 'CustomPayload',
  'content': 'We offer x,y,z. For more information, visit our <a href="www.xyz.com">website</a>'
};

不过要注意两个点:

  • Lex自带的测试控制台可能还是不会渲染HTML(它主要用来验证文本逻辑),但只要把机器人集成到支持HTML解析的外部平台,这个链接就能正常显示并点击。
  • 不同渠道对HTML的支持不一样,比如Slack得用它自己的链接格式[website](www.xyz.com),你可以在Lambda里根据渠道类型动态调整CustomPayload的内容。

2. 语音场景的补充方案(如果需要)

如果你的机器人要支持语音交互(比如和Alexa集成),可以用SSML类型,通过语音引导用户访问链接,但SSML本身不支持可点击的超链接——它只负责语音输出,所以这个方案只适用于语音交互场景,文本交互不适用。

举个SSML的例子:

var message = {
  'contentType': 'SSML',
  'content': '<speak>We offer x, y, z. For more information, visit our website at www.xyz.com</speak>'
};

关键提醒

要是你必须在Lex内置测试控制台里看到可点击的链接,那目前确实没办法——因为控制台只支持PlainText和简单的ResponseCard展示,不解析HTML。但只要集成到外部支持HTML的平台,CustomPayload就能正常生效。另外尽量只用基础的<a>标签,复杂HTML在不同渠道的兼容性很差。

内容的提问来源于stack exchange,提问作者Anoop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:09:18