Search code examples
python-3.xaws-lambdaamazon-lex

Trouble with Amazon Lex chatbot slots


I am trying to create a chatbot. Chatbot will prompt the question "What is your nationality? (A, B, C)" and if the user says C, I want to straight away end the chat by saying something like "I am sorry, C is not applicable to apply. Only A and B can apply." I know I have to uncheck the "required" checkbox after the said question but I'm not sure what to input in aws lambda for it to happen.

enter image description here


Solution

  • After unchecking the required checkbox, in the lambda code do below:

    # inside dialogcodehook
    slots = intent_request['currentIntent']['slots']
    nation = slots['nation']
    if nation == 'C':
        return close('I am sorry, C is not applicable to apply. Only A and B can apply.')
    # rest of your code
    
    def close(msg):
    "dialogAction": {
        "type": "Close",
        "fulfillmentState": "Fulfilled",
        "message": {
          "contentType": "PlainText",
          "content": msg
        }
    }
    

    You may want to see this question, this question, this question, this documentation etc..

    Play with it and see documentation for other things and comment for further doubts.

    Hope it helps.