Definieren des Interaction Models

Einleitung

Mit dem Alexa Skills Kit können Sie die Fähigkeiten von Alexa erweitern, indem Sie Custom Skills (Benutzerdefinierte Skills) hinzufügen. Sie implementieren nicht nur die Logik für einen neuen Custom Skill (benutzerdefinierten Skill), sondern auch das Interaction Model, die Ihre Nutzer mit dem Skill verwenden, um die neuen Funktionen zu nutzen.

Sie definieren diese Sprachschnittstelle, indem Sie die gesprochenen Eingaben des Nutzers den Intent zuordnen, die Ihr cloudbasierter Service umsetzen kann.

Zur Deklaration dieser Zuordnung übergeben Sie zwei Eingaben:

  1. Ein Intent Schema: Eine JSON-Struktur, in der eine Gruppe von Intents deklariert wird, die Ihr Service akzeptiert und verarbeitet.

  2. Die gesprochenen Eingabedaten:

    • Utterances: Eine strukturierte Textdatei, die die Intents den wahrscheinlich gesprochenen Phrasen zuordnet und so viele repräsentative Phrasen wie möglich enthält.

    • Benutzerdefinierte Werte (erforderlich für die Verwendung mit Custom Slots): Eine repräsentative Liste von Werten für bestimmte Elemente, die von Ihrem Skill benutzt werden und auf die bei der Verwendung eines Custom Slot-Typs in den Utterances (Äußerungen) verwiesen wird.

Sie geben diese Informationen im Entwicklerportal auf der Seite Interaktionsmodell ein. Weitere Informationen erhalten Sie unter dem Thema Custom Skills registrieren und verwalten im Entwicklerportal.

In den folgenden Abschnitten wird erklärt, wie Sie diese Ressourcen einsetzen, um eine wirksame Sprachschnittstelle zu definieren.

Das Intent Schema

Im Alexa Kontext bezeichnet ein Intent eine Aktion, die eine gesprochene Anforderung eines Nutzers umsetzt. Intents können mit Argumenten versehen werden, den sogenannten Slots. Beispiel: Das Intent Schema für „Tageshoroskop" kann ein Intent mit der Bezeichnung GetHoroscope definieren, die einen Slot namens GetLuckyNumbers enthält. Wenn ein Nutzer sagt „Alexa, öffne Astro Dienst und sag mir das heutige Horoskop für Fische.“, sendet der Alexa Service eine Intent GetHoroscope mit dem Wert „Fische“ im Slot Sign an den Tageshoroskop-Service. Wenn der Service den Intent GetHoroscope erhält, kann er das Horoskop für Fische suchen und den Text zurücksenden, damit dieser in Sprache umgewandelt wird.

Sie definieren die Gruppe gültiger Intents in einer JSON-Struktur mit der Bezeichnung Intent Schema. Das folgende Intent Schema definiert beispielsweise zwei Intents: GetHoroscope und GetLuckyNumbers:

{

"intents": [

{

"intent": "GetHoroscope",

"slots": [

{

"name": "Sign",

"type": "LIST_OF_SIGNS"

},

{

"name": "Date",

"type": "AMAZON.DATE"

}

]

},

{

"intent": "GetLuckyNumbers"

}

]

}

Jeder Intent hat zwei Eigenschaften:

  • Die Eigenschaft intent gibt den Namen des Intents an.

  • Die Eigenschaft slots listet die mit diesem Intent verknüpften Slots auf.

Im obigen Beispiel definiert der Intent GetHoroscope zwei Slots. Der eine heißt Sign, der andere Date.

Slots werden mit verschiedenen Typen definiert. Beispiel: Der Slot Sign, der im obigen Beispiel gezeigt wird, ist als Custom Slot-Typ LIST_OF_SIGNS definiert, der auf eine Liste von Sternzeichen verweist, die für den Slot bereitgestellt wird (Schütze, Steinbock usw.). Der Slot Date wandelt einen vom Nutzer gesprochenen Monatsnamen mithilfe des integrierten Datentyps AMAZON.DATE in ein Datum um.

Beachten Sie, dass das Alexa Skills Kit eine Sammlung von built-in Intents für besonders häufige Aktionen enthält. Wenn Sie diese Intents implementieren möchten, müssen Sie sie ebenso wie Ihre eigenen Custom Intents in Ihr Intent Schema einbeziehen. Weitere Hinweise finden Sie unter Implementieren der built-in Intents.

Die gesprochenen Eingabedaten

Die Zuordnung der Intents und der typischen Utterances, mit denen diese Intents formuliert werden, erfolgt durch das Hinzufügen von Wertgruppen für alle Custom Slots, die von Ihrem Skill unterstützt werden, und einer Liste mit Utterances.

Integrierte Slot-Typen

Amazon unterstützt die folgenden built-in Slot-Typen:

  • AMAZON.DATE wandelt Wörter, die einen Datumsbezug („heute“, „morgen“ oder „Juli“) haben, in ein Datumsformat um (beispielsweise „2015-07-00T9“).

  • AMAZON.DURATION wandelt Wörter, die eine Dauer angeben („5 Minuten“) in eine numerische Dauer um („PT5M“).

  • AMAZON.FOUR_DIGIT_NUMBER bietet die Erkennung von vierstelligen Zahlen, beispielsweise Jahreszahlen.

  • AMAZON.NUMBER wandelt ausgeschriebene Zahlen („fünf“) in Ziffern um (beispielsweise „5“) um.

  • AMAZON.TIME wandelt Wörter, die eine Zeitangabe enthalten („vier Uhr morgens“, „zwei Uhr nachmittags“) in einen Zeitwert („04:00“, „14:00“) um.

  • AMAZON.US_CITY bietet die Erkennung großer Städte in den USA. Alle Städte mit mehr als 100.000 Einwohnern sind enthalten. Sie können den Typ erweitern, um gegebenenfalls weitere Städte einzubeziehen.

  • AMAZON.US_FIRST_NAME bietet die Erkennung Tausender Vornamen basierend auf Zensus- und Sozialversicherungsdaten. Sie können den Typ erweitern, um gegebenenfalls weitere Namen einzubeziehen.

  • AMAZON.US_STATE bietet die Erkennung von US-Bundesstaaten, Territorien sowie des District of Columbia. Sie können den Typ erweitern, um gegebenenfalls weitere Bundesstaaten einzubeziehen.

Weitere Details und Beispiele finden Sie im Abschnitt „Slot-Typen“ unter Referenz für das Custom Interaction Model.

Wenn Ihr Skill einen dieser Typen verwendet, müssen Sie keine Beispielwerte bereitstellen. Referenzieren Sie gegebenenfalls Ihre Slots dieses Typs in der Datei der Utterances. Für andere Datentypen wird ein Custom Slot-Typ empfohlen. Beachten Sie, dass alle integrierten Typen mit dem vorangestellten AMAZON-Namespace bezeichnet sind.

Beachten Sie, dass sich das Verhalten von Slot-Typen gegenüber früheren Versionen des Alexa Skills Kit geändert hat. Informationen über Unterschiede, Rückwärtskompatibilität und Migration eines Skills aus früheren Versionen finden Sie unter dem Thema Migration zu den verbesserten integrierten und Custom Slot-Typen.

Custom Slot-Typen

Ein Custom Slot-Typ wird für Elemente verwendet, die von den integrierten Slot-Typen von Amazon nicht erfasst werden. Er wird in den meisten Fällen empfohlen, in denen ein Slot-Wert eine Gruppe möglicher Werte darstellt. Für den Slot-Typ LIST_OF_SIGNS im Horoskopbeispiel oben wäre die Liste der nutzerdefinierten Werte:

Widder

Stier

Zwillinge

Krebs

Löwe

Fische

Jungfrau

Waage

Skorpion

Schütze

Steinbock

Wassermann

Die Gruppe nutzerdefinierter Werte kann alles sein, was in der Verarbeitung des Slots durch Ihren Skill unterstützt wird. Voraussetzung ist nur, dass der Wert von einem Nutzer ausgesprochen werden kann. Wörter, die in einem herkömmlichen Wörterbuch nicht enthalten sind, werden aber möglicherweise nicht erkannt.

Slot-Werte werden in Textform an Ihren Skill geschickt. Beispielsweise werden „Fire HD 7“, „Fire HD sieben“ und „Fire HD7“ an Ihren Skill übermittelt. Eine bessere Erkennung erreichen Sie, wenn Abkürzungen und andere Phrasen mit ausgesprochenen Buchstaben („HD“) in Großbuchstaben geschrieben oder durch Punkte getrennt werden („h.d.“). Wenn Sie für Abkürzungen Kleinbuchstaben verwenden, könnte die Erkennung unzuverlässig werden, da die gesprochene Form möglicherweise nicht richtig erkannt wird. Beispiele finden Sie im Abschnitt „Syntax für den Custom Slot-Typ“ unter dem Thema Referenz für das Custom Interaction Model.

Empfehlungen für die Werte eines Custom Slot-Typs finden Sie nachstehend unter Custom Slot-Werte.

Ein Custom Slot-Typ ist keine Aufzählung. Werte, die nicht in der Liste stehen, können trotzdem zurückgegeben werden, wenn das Spracherkennungssystem sie erkennt. Obwohl die Eingabe in einem Custom Slot-Typ anhand der Werte in der Liste bewertet wird, besteht keine Einschränkung auf die in der Liste enthaltenen Werte. Ihr Programmcode muss Validierungs- und Fehlerprüfungsroutinen enthalten, wenn Sie Slot-Werte verwenden. Weitere Informationen finden Sie im Abschnitt „Verarbeitung möglicher Eingabefehler“ unter dem Thema Verarbeitung der von Alexa gesendeten Anforderungen.

Ein Custom Slot-Typ kann für mehrere Slots verwendet werden. Angenommen, der Horoskop-Skill hat eine zusätzliche Intent MatchSign, die zwei Sternzeichen vergleicht. Dieser Intent definiert zwei Slots, FirstSign und SecondSign. Diese Slots können beide denselben Slot-Typ LIST_OF_SIGNS verwenden:

{

"intents": [

{

"intent": "GetHoroscope",

"slots": [

{

"name": "Sign",

"type": "LIST_OF_SIGNS"

},

{

"name": "Date",

"type": "AMAZON.DATE"

}

]

},

{

"intent": "MatchSign",

"slots": [

{

"name": "FirstSign",

"type": "LIST_OF_SIGNS"

},

{

"name": "SecondSign",

"type": "LIST_OF_SIGNS"

}

]

},

{

"intent": "GetLuckyNumbers"

}

]

}

Die Datei mit den Utterances

Jede mögliche Utterance wird einem gewünschten Intent zugeordnet. Der folgende Auszug aus einer Datei mit Utterances ordnet vier mögliche Phrasen des Intents GetHoroscope zu, zwei Phrasen des Intents GetLuckyNumbers und zwei Phrasen des Intents MatchSign. In der Praxis sind aber viel mehr Utterances erforderlich als in diesem Beispiel gezeigt wird:

GetHoroscope what is the horoscope for {Sign}

GetHoroscope what will the horoscope for {Sign} be on {Date}

GetHoroscope get me my horoscope

GetHoroscope {Sign}

...

GetLuckyNumbers what are my lucky numbers

GetLuckyNumbers tell me my lucky numbers

...

MatchSign do {FirstSign} and {SecondSign} get along

MatchSign what is the relationship between {FirstSign} and {SecondSign}

Beachten Sie: Für die built-in Intents, beispielsweise AMAZON.HelpIntent, müssen Sie keine Utterances verfassen.

Syntax für Utterances

Jede Zeile einer Datei mit Utterances besteht aus zwei Feldern, die durch Tabulatoren oder Leerzeichen getrennt sind:

  • Links steht der Name der Intent.

  • Auf der rechten Seite steht die Phrase, die ein Nutzer äußert, um den Intent zu formulieren.

Slots sind Argumente für Intents. Bei jeder Utterance stellen Sie einen Slot-Wert als Slot-Namen in geschweiften Klammern dar: {SlotName}.

Sehen Sie sich beispielsweise diesen Ausschnitt der Datei an:

"what will the horoscope for {Sign} be on {Date}"

In dieser Utterance dienen die Slots {Sign} und {Date} als Argumente für die Intent GetHoroscope und werden in diesem Äußerungsmuster als Variable gesetzt. Mögliche Werte für {Sign} werden der nutzerdefinierten Liste LIST_OF_SIGNS entnommen und mögliche Werte für {Date} der integrierten Unterstützung des Alexa Skill Kit für Datumswerte. Damit kann der Nutzer Eingaben der folgenden Art vornehmen:

"what will the horoscope for Leo be on Tuesday"

Das Alexa Skills Kit generalisiert automatisch Eingaben basierend auf den nutzerdefinierten und integrierten Slot-Typen, sodass die Spezifikation eines einzigen Musters alle Formen von Eingaben anhand dieses Musters ermöglicht. Dennoch ist es wichtig, Variationen in den Äußerungsmustern zu berücksichtigen. Nehmen wir an, Sie möchten die folgende Utterance erfassen:

"what will the horoscope for libra be tomorrow"

In diesem Fall muss der Datei mit den Utterances das folgende Muster hinzugefügt werden (wobei „on“ nicht mehr nötig ist).

"what will the horoscope for {Sign} be {Date}".

Weitere Hinweise zur Festlegung von Äußerungsmustern finden Sie im Abschnitt Inhalt der Utterances weiter unten.

Eine einzelne Utterance muss nicht jeden Slot verwenden, der für ein Intent definiert wurde. Das Schema für die Intent GetHoroscope, das im obigen Beispiel genannt wurde, definiert sowohl ein Slot Sign als auch ein Slot Date. Die Utterance „what is the horoscope for {Sign}“ nutzt nur den Slot Sign, während die Utterance „get me my horoscope“ keine Slots nutzt. Wenn Nutzer diese Phrasen sagen, wird derselbe Intent gesendet, mit null Slot-Werten.

Achten Sie auf Schreibfehler und falsche Schreibweisen. Vergessen Sie den Apostroph (') nicht, wenn Sie Ausdrücke verkürzen (beispielsweise „gibt's“ oder „du's") und achten Sie auf Fehler, wenn Sie Textteile aus anderen Quellen kopieren und einfügen.

Inhalt der Utterances

Angesichts der Flexibilität und der Vielfalt der gesprochenen Sprache kann dieselbe Anforderung oft auf sehr unterschiedliche Weise ausgedrückt werden. Ein Nutzer kann beispielsweise wie folgt nach dem Abruf eines Horoskops fragen:

  • Was ist das Horoskop

  • Sage mir das Horoskop

  • Öffne mein Horoskop

  • Wie ist mein Horoskop heute

Es können auch andere Variationen der oben genannten Formen verwendet werden:

  • „Was“ und „Wie“

  • „Hole“, „Bitte…um“ und „Gib“

  • „Mein“ und „das“

Wenn Anforderungen in vollständigen Sätzen vorhanden sind, denken Sie an eine abgekürzte Form, die Nutzer eventuell verwenden, insbesondere wenn die Formulierungen mit einer Frage oder einer Aufforderung beginnen wie Frage nach… und Rufe…ab. Wenn beispielsweise die Frage „Wie wird das Wetter?“ lautet, sollten Sie auch einfach nur die Kurzform „Das Wetter?“ in Betracht ziehen. Dies funktioniert gut bei Mustern wie „Frage <Invocation Name> nach dem Wetter“ oder „Frage <Invocation Name> nach dem Wetter“.

Wenn Sie diese verschiedenen Phrasen in Ihren Utterances auflisten, verbessern Sie die Erkennung durch Alexa. Listen Sie eine möglichst große Anzahl von repräsentativen Sprachmustern auf. Denken Sie an alle Phrasen, die dabei möglich sind (und schließen Sie alle Äußerungen aus, die von einem Nutzer niemals verwendet würden). Alexa versucht auch, eine Generalisierung aufgrund der von Ihnen gelieferten Muster vorzunehmen, um gesprochene Phrasen zu interpretieren, die geringfügig von den angegebenen Mustern abweichen.

Empfehlungen für die Definition der Spracheingabedaten

Die Verwendbarkeit des Skills hängt direkt davon ab, wie gut die Daten und die Utterances des Custom Slots die tatsächliche Nutzung im realen Leben darstellen. Die Zusammenstellung einer repräsentativen Gruppe von Nutzerdefinierten Werten und Utterances ist ein wichtiger Vorgang, der in mehreren Durchgängen erfolgen muss. Während der Entwicklung und des Testens probieren Sie viele verschiedene Phrasen, um die jeweiligen Intents aufzurufen. Wenn Sie andere Nutzer während des Testens beobachten können, notieren Sie sich die Phrasen, die sie verwenden, um die jeweiligen Intents auszudrücken. Aktualisieren Sie laufend die Nutzerdefinierten Werte und die Datei der Utterances, um sicherzustellen, dass die am häufigsten verwendeten Phrasen Ihrer Nutzer erfasst werden.

Die folgenden Abschnitte enthalten Empfehlungen für die Entwicklung Ihrer Utterances.

Utterances für den Beginn eines Gesprächs

Die bevorzugten Phrasen für den Beginn einer Interaktion mit einer Alexa-Funktion sind Frage und Bitte (im Sinne von „fordere…auf“). Sie können verwendet werden, um eine Frage zu stellen oder einen Befehl zu erteilen. Ihre Utterances sollten natürlich und fließend mit diesen Phrasen kombiniert werden.

Beispielsweise könnten die Nutzer eine der folgenden Phrasen verwenden, um ein Horoskop abzurufen:

  • „Alexa, frage bei Astro Dienst nach dem Tageshoroskop für Zwilling.“

  • „Alexa, frage Astro Dienst nach dem Horoskop für Zwilling.“

  • „Alexa, öffne Astro Dienst und frage nach dem Horoskop für Zwilling.“

  • „Alexa, frage Astro Dienst nach dem Horoskop für Zwilling.“

  • „Alexa, frage den Astro Dienst für das Horoskop für Zwilling.“

Beachten Sie die verschiedenen Utterances, die mit „frage“ und „öffne“ funktionieren:

  • Nominale Utterances:

    • „das Horoskop für…“

    • „Zwilling“

  • Fragende Utterances:

    • „wie lautet das Horoskop für…“

    • „was ist das Horoskop für…“

  • Verbale Utterances:

    • „gib mir das Horoskop für“

    • „nenn mir das Horoskop von…“

In der Syntax der Utterances würden sie wie folgt angegeben werden:

GetHoroscope the horoscope for {Sign}

GetHoroscope {Sign}

GetHoroscope what's the horoscope for {Sign}

GetHoroscope what is the horoscope for {Sign}

GetHoroscope give me the horoscope for {Sign}

GetHoroscope tell me the horoscope for {Sign}

...

Utterances, die mit Fragewörtern („was“, „wie“, „wo“ usw.) beginnen, sind besonders wichtig, weil sie mit der Einleitungsfloskel „Frage <Aufrufname> nach“ gut funktionieren. Die folgenden Wörter sind Fragewörter, die mit Frage gut kombiniert werden können:

  • wer, was, warum, wann, wo, welche/r/s, wie

  • macht, tat, tut

  • kann, könnte, soll, würde, dürfte, muss, wird

  • ist, war, wird, bin, bist, waren

  • habe, hat, hatte

  • Einige Varianten der obigen Wörter: wofür, wieso, woran

Wenn Sie Utterances als Fragen formulieren, denken Sie auch an verschiedene Formen der Frage. Zum Beispiel:

  • „Wie ist mein Horoskop“. („Alexa, frage bei Astro Dienst, wie mein Horoskop ist”)

  • „wie mein Horoskop ist“ („Alexa, frage Astro Dienst, wie mein Horoskop ist.“)

Nicht alle diese Fragewörter können bei allen Alexa-Funktionen eingesetzt werden, aber Sie sollten Äußerungen für diese Wörter aufnehmen, wenn sie in der gesprochenen Sprache vorkommen. Eine vollständige Liste der Phrasen, die von Nutzern zur Einleitung Ihres Alexa-Skills verwendet werden können, finden Sie im Abschnitt Wie Nutzer Custom Skills aufrufen. Beziehen Sie Utterances ein, die auf natürliche Weise mit so vielen Phrasen wie möglich funktionieren.

Anzahl von Utterances

Für jeden Intent nehmen Sie so viele Variationen der Phrasen wie möglich auf, die von Nutzern geäußert werden können. Für die Phrase „Wie ist mein Horoskop“ sollten Sie folgende Variationen verwenden:

  • „Wie ist“

  • „Was ist“

  • „Sage mir“

  • „Suche“

  • „Suche mir“

  • „Such mir“

Es ist besser, zu viele Muster anzugeben als zu wenige. Testen Sie daher verschiedene Phrasen und fügen Sie gegebenenfalls zusätzliche hinzu.

Custom Slot-Typen

Wenn Sie Custom Slot-Typen verwenden, achten Sie darauf, dass die Liste der für den Slot bereitgestellten Werte die erwarteten Eingaben Ihrer Nutzer umfassend abdeckt. Dies ist im Horoskopbeispiel relativ einfach. Es gibt nur 12 Sternzeichen, die Menge ist begrenzt und es gibt nur wenige Variationen der Aussprache der einzelnen Sternzeichen. Es wird komplizierter, wenn die Eingaben für einen bestimmten Slot komplexer werden. Tipps zur Erstellung einer repräsentativen Abdeckung bei komplexeren Slot-Typen:

  • Beginnen Sie mit Datenquellen, die dem realen Gebrauch entsprechen. Wenn die Webversion Ihrer Anwendung Elemente enthält, die über Formulareingaben oder Suchanfragen erfasst werden, verwenden Sie diese Elemente. Sonst suchen Sie nach anderen Datenquellen, die wahrscheinliche Eingaben enthalten.

Wenn Sie beispielweile eine Liste von Zutaten für einen Rezept-Skill erstellen, generieren Sie eine Liste aller Zutaten der Rezepte und bestätigen Sie sie anhand anderer Listen, die Sie beispielsweise online finden.

  • Ihr Skill kann bis zu 50.000 Custom Slot-Werte aufweisen. Dies ist die Gesamtsumme aller Custom Slots, die im Interaktionsmodell verwendet werden. Wenn Sie die Anzahl der Werte kürzen müssen, um diesen Grenzwert einzuhalten, behalten Sie die Werte, die am wahrscheinlichsten verwendet werden.

  • Wenn Ihre Liste der nutzerdefinierten Werte nicht alle Werte enthält, die Ihr Skill erwartet, bereiten Sie eine repräsentative Gruppe von nutzerdefinierten Werten mit repräsentativen Wortanzahlen vor. Wenn beispielsweise Werte von einem bis vier Wörtern möglich sind, verwenden Sie Werte von einem bis vier Wörtern in Ihrer Wertliste. Achten Sie auch darauf, sie gleichmäßig zu verteilen. Wenn ein Wert aus vier Wörtern in rund 10 % der Eingaben vorkommt, verwenden Sie Werte mit vier Wörtern nur in 10 % der Werte in Ihrer Liste.

Nächste Schritte

Siehe auch: Referenz für das Custom Interaction Model