Dialogue Model - nur fortfahren bei korrekt gefüllten Slots? (COMPLETED - aber falsche Werte im Slot)

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

Themenstarter
rasenlatscher
Beiträge: 49
Registriert: Mi 29. Mär 2017, 21:51
Wohnort: Leipzig
Vorhandene Echos: 0
Vorhandene Echo Dots: 2

So 14. Jan 2018, 22:56

Ist es möglich im Dialog Modell (https://developer.amazon.com/docs/custo ... ialog-reqs) nur gefüllte Slots zuzulassen, welche den Slot auch mit etwas sinnvollen füllen?
Also mit den vorgefüllten Werten für einen Slot oder entsprechenden Utterances für einzelne Slotausprägungen? https://developer.amazon.com/docs/custo ... rence.html

Ansonsten müsste ich ja selbst noch einmal den Wert abfragen. Aber dann bin ich ja wieder raus aus dem Dialogmodell und Alexa Interface würde einen einzelnen Wert keinem Intent zuordnen können.

Leider kann ich nicht wieder in das Directive Dialog.Delegate verwenden und den Status zurücksetzen: "You cannot return this directive if the dialogState is COMPLETED."
Für mich ist der Dialog ja leider nicht "COMPLETED" wenn hier falsche Werte erkannt wurden.

Hab auch schon versucht nachdem COMPLETED mit der Elicit SlotDirective zu antworten, aber da kommt immer "Beim Aufruf des Skills ist ein Fehler aufgetreten". Im Tester steht auch nicht wirklich das JSON was ich zurückgeschickt habe, sondern eines mit leerer Directive.
{
	"body": {
		"version": "1.0",
		"response": {
			"directives": [],
			"shouldEndSession": false
		},
		"sessionAttributes": {}
	}
}
Zuletzt geändert von rasenlatscher am So 14. Jan 2018, 23:01, insgesamt 1-mal geändert.
0 x
Benutzeravatar

!Beaker
Beiträge: 6
Registriert: Di 16. Jan 2018, 13:42
Vorhandene Echo Dots: 2

Di 16. Jan 2018, 14:46

Hallo rasenlascher, :D

Genau die gleiche Frage plagte mich auch schon und deshalb bin ich u.A. seit heute hier Hilfesuchend im Forum unterwegs.
Ich habe auch einen Anwendungsfall, in dem ich abhängig von allen (!) korrekt gefüllten Slots erst in den nächsten Level fortschreiten möchte.

Eine schlüssige Antwort für Dich habe ich somit leider jetzt nicht parat, werde es mir aber merken und wenn ich voll aufgeschaut sein werde, komme ich auf diesen Punkt zurück. J

Gruss vom !Beaker
0 x
Benutzeravatar

Themenstarter
rasenlatscher
Beiträge: 49
Registriert: Mi 29. Mär 2017, 21:51
Wohnort: Leipzig
Vorhandene Echos: 0
Vorhandene Echo Dots: 2

Di 30. Jan 2018, 20:02

@!Beaker Habe es jetzt hinbekommen. Also Elicit SlotDirective war schon richtig. Ich lief aber immer auf nen Fehler, weil ich nur den Repromt ausgeliefert habe. Jetzt liefere ich auch nen Text zurück.
Hab nochmal gegoogelt und geschaut, dass mein JSON Response in etwas so aus sieht wie hier beschrieben:
https://stackoverflow.com/questions/480 ... -utterance

Also wenn ich mit der Dialogue Directive COMPLETED bin und der Wert aber nicht passt, schicke ich die Elicit Directive.
In Java sieht das jetzt so aus:
	private SpeechletResponse respondElicitSideSlot() {
		log.error("Respond Elicit");
		SpeechletResponse speechletResponse = new SpeechletResponse();
		ElicitSlotDirective elicitDirective = new ElicitSlotDirective();
		elicitDirective.setSlotToElicit(SLOT_SIDE);
		speechletResponse.setDirectives(
				Arrays.asList(new Directive[]{elicitDirective}));
		speechletResponse.setNullableShouldEndSession(false);
		final PlainTextOutputSpeech plainSpeech = new PlainTextOutputSpeech();
		plainSpeech.setText("Auf welcher Seite?");
		Reprompt reprompt = new Reprompt();
		reprompt.setOutputSpeech(plainSpeech);
		speechletResponse.setReprompt(reprompt);
		
		speechletResponse.setOutputSpeech(plainSpeech); //Nur die Zeile hatte gefehlt!!!!!!
		return speechletResponse;
        }
1 x
Benutzeravatar

!Beaker
Beiträge: 6
Registriert: Di 16. Jan 2018, 13:42
Vorhandene Echo Dots: 2

Do 1. Feb 2018, 18:16

rasenlatscher hat geschrieben:
Di 30. Jan 2018, 20:02
@!Beaker Habe es jetzt hinbekommen. Also Elicit SlotDirective war schon richtig. Ich lief aber immer auf nen Fehler, weil ich nur den Repromt ausgeliefert habe. Jetzt liefere ich auch nen Text zurück.
Hab nochmal gegoogelt und geschaut, dass mein JSON Response in etwas so aus sieht wie hier beschrieben:
https://stackoverflow.com/questions/480 ... -utterance

Vielen Dank rasenlascher!

Damit hast Du hier garantiert einigen gut weiter geholfen.

=8:]
0 x
Antworten

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

  • Information