2017-09-19 1 views
0

J'essaie de développer un chatbot en utilisant AWS Lex. Mais malheureusement, je reçois une erreur lors de la construction du chat sur Lex. J'utilise une intention et 2 slots. Pour une raison quelconque, lorsque la fonction lambda est connectée au chat, la deuxième valeur de l'emplacement est enregistrée sous la forme null. Mais quand je le lance en lambda comme test, c'est réussi. À l'heure actuelle, tout ce que je veux faire est de montrer un message de réponse après que les détails de l'emplacement sont entrés.Obtention d'une erreur lors de l'utilisation d'amazon lex "Réponse Lambda invalide: Réponse non valide reçue de Lambda"

C'est mon code

public class LexBot implements RequestHandler<Map<String, Object>, Object> { 

    @Override 
    public Object handleRequest(Map<String, Object> input, Context context) { 
     // LexRequest lexRequest = LexRequestFactory.createLexRequest(input); 

     String content = "Request came from the bot: "; 
     Message message = new Message("PlainText", content); 
     DialogAction dialogAction = new DialogAction("Close", "Fullfiled", message); 

     return new LexRespond(dialogAction); 
    } 
} 

Et ceci est l'erreur que je reçois dans AWS Lex:

Une erreur est survenue: non valide Lambda Réponse: reçu une réponse non valide du Lambda: Impossible de construire l'instance de Message, problème: le contenu ne doit pas être vide à [Source: {"dialogAction": {"type": "Close", "message": {"contentType": "PlainText", "some_respond_message" : "Demande est venu du bot:"} }}; ligne: 1, colonne: 122]

Répondre

0

Selon le docs, ci-dessous est le format correct pour la construction de la réponse finale:

{ 
     "sessionAttributes": session_attributes, 
     "dialogAction":{ 
      "type":"Close", 
      "fulfillmentState":"Fulfilled", 
      "message":{ 
       "contentType":"PlainText", 
       "content":message 
      } 
     } 
    } 

Utilisez ce format pour la construction de la réponse pour éviter l'erreur.

+0

Merci beaucoup! –