如何在 ASK-SDK lambda 函数中获取 Alexa 槽值?
How can i get Alexa Slot Value in ASK-SDK lambda function?
我想在我的 Lambda 函数中访问槽值“{cityName}”。我正在使用 ASK-SDK。 python 代码或语法是什么?
如果 WeatherApiCallIntent
使用 CityName
槽值触发,请求 JSON 将如下所示:
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.xxxxx-xxx-xxx-xx-xxxxxxx",
"timestamp": "2018-09-12T13:35:25Z",
"locale": "en-US",
"intent": {
"name": "WeatherApiCallIntent",
"confirmationStatus": "NONE",
"slots": {
"CityName ": {
"name": "CityName",
"value": "Kochi",
...
在您的 WeatherApiCallIntent
处理程序中,您可以使用
print("Slot: " + intent_request['intent']['slots']['CityName']['value'])
上面的方法是正确的,但对我没有用。
上述问题的另一种回答如下:
item, is_resolved = util.get_intent_(slots=handler_input.request_envelope.request.intent.slots)
然后定义函数get_intent_如下:
import random
import six
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_core.utils import is_request_type
def get_intent_(slots):
item = []
resolved_item = None
for _,slot in six.iteritems(slots):
if slot.value is not None:
resolved_item = slot.value
if resolved_item is not None:
return resolved_item, True
else:
return resolved_item, False
这个方法看起来很复杂,但是定义一个函数并调用它是一个很好的做法。
我想在我的 Lambda 函数中访问槽值“{cityName}”。我正在使用 ASK-SDK。 python 代码或语法是什么?
如果 WeatherApiCallIntent
使用 CityName
槽值触发,请求 JSON 将如下所示:
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.xxxxx-xxx-xxx-xx-xxxxxxx",
"timestamp": "2018-09-12T13:35:25Z",
"locale": "en-US",
"intent": {
"name": "WeatherApiCallIntent",
"confirmationStatus": "NONE",
"slots": {
"CityName ": {
"name": "CityName",
"value": "Kochi",
...
在您的 WeatherApiCallIntent
处理程序中,您可以使用
print("Slot: " + intent_request['intent']['slots']['CityName']['value'])
上面的方法是正确的,但对我没有用。
上述问题的另一种回答如下:
item, is_resolved = util.get_intent_(slots=handler_input.request_envelope.request.intent.slots)
然后定义函数get_intent_如下:
import random
import six
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_core.utils import is_request_type
def get_intent_(slots):
item = []
resolved_item = None
for _,slot in six.iteritems(slots):
if slot.value is not None:
resolved_item = slot.value
if resolved_item is not None:
return resolved_item, True
else:
return resolved_item, False
这个方法看起来很复杂,但是定义一个函数并调用它是一个很好的做法。