Amazon Lex和Connect文本格式化未按预期工作,在其他平台上正常工作。

huangapple go评论58阅读模式
英文:

Amazon Lex and Connect text formatting not working as intended, works fine with other platforms

问题

文本格式似乎在直接来自 Lambda 响应的消息中运行良好,但如果它是在 Lex 设计师中编写的,它看起来就不一样。

这是它的外观:
Amazon Lex和Connect文本格式化未按预期工作,在其他平台上正常工作。

这是 Lambda 响应,以防万一:

{
        "sessionState": {
            "dialogAction": {
                "type": "ElicitSlot",
                "slotToElicit": "test_slot"
            },
            "intent": {
                "name": "test",
                "state": "InProgress"
            }
        },
        "messages": [
            {
                "contentType": "PlainText",
                "content": "测试\ntest",
            }
        ]
    }
  • 我尝试使用自定义负载,但发现 Connect 不支持此功能。
  • 尝试使用 Markdown,Lex 无法处理它,而且似乎消息中的所有文本只能写成一行。
  • 还没有尝试从 Lambda 完全执行,因为这需要大量的重做工作,而且我有最后期限。
  • 我一直在谷歌搜索,但不知道是否使用了正确的关键词,因为我似乎找不到与我的具体问题相关的任何内容,所以我在这方面浪费了很多时间。
英文:

Text formatting appears to work fine with any message that comes directly from a Lambda response but if it was written in the Lex designer it just doesn't look the same.

Here's how it looks:
Amazon Lex和Connect文本格式化未按预期工作,在其他平台上正常工作。

Here's the lambda response just in case:

{
        "sessionState": {
            "dialogAction": {
                "type": "ElicitSlot",
                "slotToElicit": "test_slot"
            },
            "intent": {
                "name": "test",
                "state": "InProgress"
            }
        },
        "messages": [
            {
                "contentType": "PlainText",
                "content": "test \ntest",
            }
        ]
    }
  • I tried using custom payloads, realized that Connect doesn't support this.
  • Tried using markdown, Lex can't handle it, plus it appears all the text in a message can only be written as a one line.
  • Haven't tried doing everything from lambda because it requires a lot a rework and I have a deadline.
  • I have been googling a lot but I don't know if I'm not using the right words because I can't seem to find anything relating to my specific problem, so I've been wasting a lot of time with this.

答案1

得分: 1

The Lex console seems to escape control characters which is why \n appears for intents created/updated through the designer but is interpreted correctly for responses from Lambda hooks.

一 Lex 控制台似乎会转义控制字符,这就是为什么通过设计师创建/更新的意图中会出现 \n,但对于来自 Lambda 钩子的响应会被正确解释的原因。

One thing you can try is calling the API directly; for example, if you call DescribeIntent for that intent you will see the escaped characters (Puedes preguntar sobre los siguientes temas: \\n1). You can then use UpdateIntent to update the message with the correct, unescaped characters.

您可以尝试的一件事是直接调用 API;例如,如果您调用 DescribeIntent 来查看该意图,您将看到转义字符 (Puedes preguntar sobre los siguientes temas: \\n1)。然后,您可以使用 UpdateIntent 来更新消息以包含正确的未转义字符。

英文:

The Lex console seems to escape control characters which is why \n appears for intents created/updated through the designer but is interpreted correctly for responses from Lambda hooks.

One thing you can try is calling the API directly; for example, if you call DescribeIntent for that intent you will see the escaped characters (Puedes preguntar sobre los siguientes temas: \\n1). You can then use UpdateIntent to update the message with the correct, unescaped characters.

huangapple
  • 本文由 发表于 2023年5月31日 23:34:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/76375163.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定