在this教程之后,我正在尝试做一个简单的Alexa技能(这很简单,我可能会补充)。
问题是,我实际上遇到了一个我似乎不了解的问题。在本教程的第二部分中,该人员演示了如何调试,但是我的错误状态为succeeded
,所以我不太了解发生了什么。 Alexa只是说:There has been an error with he skill you requested
然后退出。
如果检测到的意图是test
(只是说“给我测试结果”即可):
def get_test_response():
session_attributes = {}
card_title = "Test"
number=random.randint(0,100)
speech_output = "This is the test result",number, "%"
should_end_session = False
return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
在打印随机数之前,它工作正常。实际上,在另一个函数中,我正在获取字符串的随机值,并且效果很好!
(可以在随机模式下正常工作的示例代码:)
compliments=['you have beautiful eyes', 'you are really kind', 'I like your hair color', 'you smell nice!']
speech_output = compliments[random.randint(0,len(compliments)-1)]
我尝试在python控制台中执行代码(以检查任何错误),并且工作正常。下一个是在调试工具中显示的Alexa错误:
(为了以防万一,我隐藏了请求ID):
Response:
null
Request ID:
"REQUESTID IM HIDING IT JUST IN CASE, NOT IMPORTANT"
Function Logs:
START RequestId: REQUESTID IM HIDING IT JUST IN CASE, NOT IMPORTANT Version: $LATEST
Incoming request...
on_session_ended requestId=amzn1.echo-api.request.hiding this one also, sessionId=amzn1.echo-api.session.and hiding this one
END RequestId: hiding this one
REPORT RequestId: hiding this one Duration: 34.62 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 48 MB
我的猜测是,关于"this is the test result", number, "%"
的某些事情是错误的,因为rand运行良好...而且我似乎找不到解决方案。
编辑:
我尝试过的其他解决方案:
number=random.randint(0,100)
st='this is the result of the test '
st+=str(number)
st+='%'
speech_output = st
仍然无法正常工作。联系Alexa支持人员以查看我在做什么错。
我也尝试过格式化:
speech_output = "This is the test result {}%".format(number)
答案 0 :(得分:0)
尝试一下:
speech_output = "This is the test result {num}%".format(num=number)
speech_output应该是一个字符串。在您的示例中,它是一个元组。