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

如何在AWS Lex V2中通过Lambda后端实现带项目符号的格式化响应

解决AWS Lex V2无法显示带项目符号的格式化响应问题

问题核心

基于AWS Lex V2开发聊天机器人,通过Lambda返回响应时,期望输出带项目符号的结构化文本,但使用PlainText类型时所有内容会被压缩成单段,换行、HTML、Markdown标记均无效。

原因分析

Lex V2的PlainText类型会直接渲染纯文本,完全忽略换行符、格式化标签或Markdown语法,所有内容会被合并为一行显示。

可行解决方案

方案1:使用Markdown类型消息

Lex V2原生支持Markdown格式的消息,只需将Lambda返回的contentType改为"Markdown",并使用标准Markdown列表语法:

'messages': [ 
    { 
        "contentType": "Markdown", 
        "content": f"Here are the details of your order:\n- Order ID: {row['orderId']}\n- Created on: {row['Date']}"
    } 
]

这种方式能让Lex正确渲染项目符号和换行,在Lex Web UI及多数前端集成中都能正常显示。

方案2:使用Response Card构建结构化卡片

如果部分前端对Markdown支持有限,可以用Lex的Response Card生成结构化字段列表,兼容性更强:

'messages': [
    {
        "contentType": "ResponseCard",
        "content": "",
        "responseCard": {
            "version": "1",
            "contentType": "application/vnd.amazonaws.card.generic",
            "genericAttachments": [
                {
                    "title": "Here are the details of your order:",
                    "fields": [
                        {"label": "Order ID", "value": f"{row['orderId']}"},
                        {"label": "Created on", "value": f"{row['Date']}"}
                    ]
                }
            ]
        }
    }
]

该方案会生成带标题和字段的卡片,内容排版规整,所有Lex官方前端都支持。

为什么之前的尝试无效

  • 用\n换行但使用PlainText类型:Lex会自动过滤换行符;
  • 使用HTML标签:PlainText类型会将标签视为普通文本,不会解析;
  • 用Markdown语法但未指定Markdown类型:Lex无法识别PlainText中的Markdown标记。

内容的提问来源于stack exchange,提问作者Nageswar Kumar Murmu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:27:35