ElicitSlot nimmt keine neuen Werte entgegen

Hier wird über die Entwicklung von Skills diskutiert.
Antworten
Benutzeravatar

Themenstarter
SigynTXM
Beiträge: 1
Registriert: Di 6. Mär 2018, 09:56

Di 6. Mär 2018, 10:56

Hallo,

ich habe eine Alexa und eine Raspberry Pi mit PHP und SQL-Datenbank.
Ich verwende absichtlich nicht die AWS-Lambdas und bin bis jetzt sehr gut damit klar gekommen.

Mir ist auch klar, dass ich damit nicht alles (angeblich Notifications) machen kann, aber ich hoffe doch, dass das nicht auch für Dialoge gilt. Sieht zumindest nicht danach aus.

Mein Skill soll eigentlich nur Aufgaben zu bestimmten Personen ausgeben und diese auch abhaken und dann nicht mehr ausgeben.
Das funktioniert schon sehr gut, wenn man einfache Intents verwendet und der Benutzer alle Slots korrekt füllt.

Meine Utterances:
Streiche {task}
Streiche {task} für {name}
{task} = [Aufräumen, Abwaschen]
{name} = [Adam, Eva]

Offene Aufgaben auf der Datenbank:
Adam: Aufräumen
Adam: Abwaschen
Eva: Aufräumen

Mein Problem ist nun, dass ich nicht einfach irgendeine Aufgabe bei "Aufräumen" streichen kann, wenn jemand sagt "Streiche Aufräumen".
Oder wenn jemand sagt "Streiche Abwaschen für Susi", die gibt es nämlich nicht.
Ich will also alle Slots prüfen und ggf. nachfragen.
Ganz zum Schluss noch ne Bestätigung: "Ich soll also Aufräumen für Adam streichen?"

So sieht mein Response aus, wenn den ich zu Alexa zurückschicke.
{
   "version":"1.0",
   "response":{
      "outputSpeech":{
         "type":"PlainText",
         "text":"Welcher Benutzer?",
         "ssml":null
      },
      "shouldEndSession":false
   },
   "directives":[{
      "type":"Dialog.ElicitSlot",
      "slotToElicit":"name",
      "updatedIntent":{
         "name":"tasksCheck",
         "confirmationStatus":"NONE",
         "slots":{
            "task":{
               "name":"task",
               "value":"Abwaschen",
               "confirmationStatus":"NONE"
            },
            "name":{
               "name":"name",
               "value":"",
               "confirmationStatus":"NONE"
            }
         }
      }
   }]
}
Alexa frägt mich tatsächlich: "Welcher Benutzer?" und hört dann, aber egal, was ich sage, es kommt immer nur ein kurzes "dudu"-Geräusch.
Ich versuche bekannte Aufgaben und bekannte Benutzer zu sagen, aber mit dem gleichen Resultat.
Wenn ich schließlich nichts mehr sage, erhalte ich einen ENDINTENT.

Ich habe bereits alles nochmal kontrolliert, das Dialogmodel ist für beide Slots und den Intent vollständig ausgefüllt und erwartet {task} bzw. {name}.
Ich bin mit meinem Latein echt am Ende - habt ihr vielleicht noch einen Hinweis oder eine Idee?
Andernfalls muss ich wohl dabei bleiben die Intents immer wieder von vorne füllen zu lassen.

Danke schon mal und LG Sigyn
0 x
Benutzeravatar

kobi-wan
Beiträge: 6
Registriert: Sa 23. Dez 2017, 12:20

Di 20. Mär 2018, 13:16

Ich weiß nicht, wie weit du in der Zwischenzeit gekommen bist, aber laut https://developer.amazon.com/de/docs/cu ... l#syntax-1 soll das directives array innerhalb des response arrays stehen.
Wobei ich aber selbst an ähnlicher Stelle nicht weiter komme. Ich versuche auch eine Rückfrage mittels ElicitSlot zu stellen, er meint aber immer, das ein Problem mit meinem Input aufgetreten wäre.
0 x
Antworten

Zurück zu „Fähigkeiten (Skills) entwickeln“

  • Information