как получить значение слота навыка Alexa в python

avatar
venkatesh
8 апреля 2018 в 03:37
3002
2
0

Я пытаюсь получить значение слота и получить к нему доступ позже, но не могу получить значение. Не могли бы вы помочь мне

это строка, с которой я застрял. как получить ответ из слота и сохранить его в переменной.

textoutput = intent['slots'].['slotsname'].['value']

код:

import logging

from random import randint
from flask import Flask, render_template
from flask_ask import Ask, statement, question, session

app = Flask(__name__)
ask = Ask(app, "/")

logging.getLogger("flask_ask").setLevel(logging.DEBUG)

@ask.intent("MAYBE")

def next_round():
    textoutput = intent['slots'].['slotsname'].['value']
    textoutput1 = 'working'
    textoutput2 = 'not working'
    if textoutput ='ftw':
        schedule_msg4 = render_template('CONNECTION2', schedule4=textoutput1)

    else:
        schedule_msg4 = render_template('CONNECTION2', schedule4=textoutput2)

    return question(schedule_msg4)

if __name__ == '__main__':
    app.run(debug=True)
Источник

Ответы (2)

avatar
mc51
10 апреля 2018 в 09:49
0

Если вы определили свое MAYBE намерение содержать слот с именем answer, запрос будет выглядеть следующим образом. money — это значение, которое вы хотите использовать в своем коде:

"request": {
  "intent": {
    "name": "MAYBE",
    "slots": {
      "answer": {
        "name": "answer",
        "value": "money"
      }
    }
  }
  ...
}

Затем вам нужно изменить определение функции следующим образом:

@ask.intent("MAYBE")    
def next_round(answer):    
    textoutput = "You said: {}".format(answer)    
    return statement(textoutput) # "You said: money"

Flask-ask позаботится об извлечении значения из запроса. Ознакомьтесь с документацией.

avatar
Jay A. Little
8 апреля 2018 в 07:57
0

Для выбора элементов в списках Python просто используйте listName['key'].
Для вложенных списков используйте другой набор скобок: listName['key1']['key2'].

Поэтому не разделяйте каждый [] на . Итак, ваша первая строка должна быть:

textoutput = intent['slots']['slotKey']['value']