Как внедрить рейтинговую шкалу в 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)

0 ответов

Другие вопросы по тегам