提问人:MacMc 提问时间:7/11/2023 最后编辑:MacMc 更新时间:7/17/2023 访问量:25
Siri 自定义意向货币金额 (INCurrencyAmount) 参数不起作用 (FB12645837)
Siri Custom Intent Currency Amount (INCurrencyAmount) parameter not working (FB12645837)
问:
我在意向定义文件中定义了一些自定义意向。其中一个意图允许用户捕获费用。当然,费用的参数之一是收取的金额。
当我最初在 2022 年 11 月创建这些意图时,这个意图非常有效。用户指定了金额,就像您通常通过包含“美元”或“美分”等词来传达货币金额一样,并且效果很好。
大约一个月前,一位用户告诉我意图存在问题。除费用金额参数外,已解析所有参数值。无论您提供多少费用金额,Siri 都会回复“费用金额不能为负数”。调查该问题证实了该问题。我无法确切确定这种情况是何时开始发生的,因为我们的大多数用户不使用 Siri 集成,并且并非所有用户都会通知我们他们发现的问题。
我实施了一个临时解决方法,终于有时间解决这个问题。
我在意图处理程序的“resolveParameterExpenseAmount”方法中添加了一个断点,以查看通信中断的位置。首先,断点从未命中。Siri 仍然会回复“费用金额不能为负数”。
我意识到参数设置中定义的验证错误正在捕获该值,然后我被要求在意图处理程序中解决该值。
因此,我删除了所有验证错误(您不能使用下面的减号删除它们,我只是在每个错误上按键盘上的后退空格)。这一次,断点被命中,但费用金额为零。
为了确保我不会因为这个参数是一大堆其他参数的一部分而搞砸了一些东西,我决定只创建一个简单的测试意图。
以下是自定义意向的属性:
有一个参数,配置如下:
“快捷方式”应用下的部分:
“建议”下的部分:
至于响应部分,我保持了非常基本的状态:
最后,此测试意图的意向处理程序:
这是一个非常基本的测试。再一次,在调用意图后,Siri 会向我询问测试金额。给她后,得到的答复是:“测试量不能为负”。
为了稍微改变一下“负数验证”,我将最小值更改为 -1,允许该值为负数。
这一次,无论我指定多少金额(包括“一”和“零”等金额),标准回复都是:“测试金额不能高于十万”。
我不确定的一件事是参数设置中的“货币代码”部分:
我不知道我是否必须添加用户可以在那里谈论的货币?我找不到任何关于与货币金额特别相关的参数设置的适当文档。
目前,解决方法仍然存在。我将费用金额更改为键入“十进制”。缺点是 Siri 无法从“五百四十二美元和六十二美分”中推断出 542.62,因为句子中的单词是“美元”和“美分”。我不得不将提示更改为:“费用金额是多少?仅指定数值,不包括美元或美分等货币指标。
真?这太荒谬了!特别是因为几个月前货币金额参数工作得非常好。
定义文件中的设置是否错误?SiriKit 对货币金额的验证是否存在问题?我必须在某处指定货币代码吗? 我不确定还能尝试什么。
任何建议将不胜感激。
答: 暂无答案
评论