Как внедрить рейтинговую шкалу в aws lex?
Как реализовать оценку в виде звездочек для обратной связи в моей лямбда-функции для моего AWS Lex BOT? Я хочу попросить пользователя о рейтинге на основе тикета, предоставленного пользователем. Этот рейтинг будет основан на кнопках на Lex lambda, которые, в свою очередь, будут предоставлять пользовательский рейтинг. Ниже приведен код, который я написал до сих пор:
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
def build_response(sessionAttributes, message):
return {
"sessionAttributes": sessionAttributes,
"dialogAction":{
"type":"Close",
"fulfillmentState":"Fulfilled",
"message":{
"contentType":"PlainText",
"content":message
}
}
}
def perform_action(intent_request):
sessionAttributes = intent_request['sessionAttributes']
source = intent_request['invocationSource']
if source == 'FulfillmentCodeHook':
slots = intent_request['currentIntent']['slots']
ticketId = slots['ticketId']
rating = slots['rating']
return build_response(sessionAttributes, 'Input your rating for {}'.format(ticketId))
#Here is where I want my star rating bar to show to my user
def dispatch(intent_request):
logger.debug('dispatch userId={}, intentName={}'.format(intent_request['userId'], intent_request['currentIntent']['name']))
intent_name = intent_request['currentIntent']['name']
# Dispatch to your bot's intent handlers
if intent_name == 'feedbackPost':
return perform_action(intent_request)
raise Exception('Intent with name ' + intent_name + ' not supported')
def lambda_handler(event, context):
"""
Route the incoming request based on intent.
The JSON body of the request is provided in the event slot.
"""
logger.debug('event.bot.name={}'.format(event['bot']['name']))
return dispatch(event)