skill "hausinfo" - was würdet ihr Alexa fragen

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

Themenstarter
jjk
Beiträge: 6
Registriert: Sa 22. Apr 2017, 16:39

Sa 22. Apr 2017, 16:59

Hallo zusammen,

seit ein paar Wochen beschäftige ich mich neben Alexa auch mit dem Thema Sensoren im Haus. Dabei verwende ich überwiegend die Lösungen und Anregungen von mysensors.org. Es lag irgendwie nahe, das irgendwann miteinander zu kombinieren uns so bin ich dabei, einen custom skill "hausinfo" zu entwickeln, mit dem ich aktuelle und vergangene Daten der Sensoren abfragen kann und Alexa irgendwann auch zu einfachen Auswertungen auffordern kann. Einen ersten Prototypen habe ich soweit mal zusammen...

https://youtu.be/LwWBDdgzCOk

Die Herausforderung ist es, das ganze möglichst flexibel zu halten, um möglichst unterschiedliche Sensoren abfragen zu können. Dazu habe ich das ganze erstmal ganz einfach gestartet und die Fragen in "was", "wo", "wann" zerlegt. Für "was" gibt es noch ein Adjektiv (höchste, tiefste, u.ä,). Ich selbst arbeite bisher primär mit Temperatur- und Feuchtigkeitssensoren, habe einen US-Sensor für die Zisterne und testweise ein paar Schalter am Fenster. Da funktioniert das schon einigermassen. Aber nun frage ich mich, welche Sensoren noch interessant wären und vor allem, was für Fragen man Alexa in dem Zusammenhang noch stellen könnte?!

Ich bin für Vorschläge offen! Was würdet Ihr in diesem Setup von Alexa wissen wollen? :relaxed:
0 x
Benutzeravatar

Fonzo
Beiträge: 1690
Registriert: Fr 24. Feb 2017, 00:06

Sa 22. Apr 2017, 17:48

jjk hat geschrieben: Sa 22. Apr 2017, 16:59 Die Herausforderung ist es, das ganze möglichst flexibel zu halten, um möglichst unterschiedliche Sensoren abfragen zu können.
Das ist genau irgendwie das Problem weshalb ich momentan dazu tendiere das jeder sein Skill einfach selber zusammenbaut. Allen kann man es nie Recht machen. Zumindest hat man dann halt immer nur eine begrenzte Auswahl ich kann in einem definierten Custom Skill z.B. nur Kinderzimmer nennen. Wenn jemand aber zum Beispiel eine Tochter hätte Michaela und gerne Fragen würde wie ist das Klima in Michaelas Zimmer siehst Du mit einem vordefinierten Skill schon wieder alt aus.

Wie komplex unterschiedlich die Anforderungen sind siehst Du z.B. Slots und Utterances für ein Alexa Customs Skill.

Du brauchst auf alle Fälle am Schluss ein Matrix Mapping mit dem der Nutzer die Räume und Sensoren zuordnen kann. Der eine will Garderobe sagen der nächste Flur usw.
jjk hat geschrieben: Sa 22. Apr 2017, 16:59 Ich bin für Vorschläge offen! Was würdet Ihr in diesem Setup von Alexa wissen wollen? :relaxed:
Aus meiner Sicht ist es wichtig eine flexible Dialogführung zu haben. Es muss möglich sein einerseits direkt die Temperatur abfragen zu können ohne z.B. vorher die Anzahl der Sensoren angesagt zu bekommen. Dazu ist es praktisch wenn anhand der UserID auch geprüft wird in welchem Zweig des Dialogbaums der User schon mal war und im dann auch verkürzte Antwort Möglichkeiten zu geben. Ansonsten fände ich es halt gut wenn man eine kurze Info bekommt ausführliche Daten kann man in die Card übergeben.

Falls Du so ein Skill publizieren willst kannst Du hausinfo übrigen als Invocation Name vergessen das geht nicht durch die Zertifizierung bei Amazon. Da müsstest Du hausinfo erst mal als Wortmarke eintragen lassen insofern diese noch verfügbar ist. Wenn Du so ein Skill dann auch noch in English zusätzlich anbietest brauchst Du gleich eine Europäische Wortmarke. Ansonsten sind außer geschützten Trademarks Invocation Names immer aus zwei Worten zu wählen. Ein Wort geht nicht durch und ist registrierten Marken vorbehalten.
0 x
Benutzeravatar

Themenstarter
jjk
Beiträge: 6
Registriert: Sa 22. Apr 2017, 16:39

So 23. Apr 2017, 09:58

Danke für die ausführliche Antwort! Ich fang mal von hinten an... :relaxed:
Falls Du so ein Skill publizieren willst
Das habe ich im Moment noch gar nicht auf dem Radar. Ist, wie gesagt erst mal ein Prototyp, mit dem ich etwas rum'bastle und da habe ich nicht lange über die invocation nach gedacht ;) Wenn das für eigene Zwecke mal taugt, kann man da immer noch weiter sehen.
Dazu ist es praktisch wenn anhand der UserID auch geprüft wird in welchem Zweig des Dialogbaums der User schon mal war und im dann auch verkürzte Antwort Möglichkeiten zu geben
guter Punkt! Im Moment habe ich noch gar keine user-Verwaltung berücksichtigt, aber es kommt auf die Liste!
Ansonsten fände ich es halt gut wenn man eine kurze Info bekommt ausführliche Daten kann man in die Card übergeben.
Ich bin ehrlich gesagt kein großer Fan der cards. Irgendwie ist das für mich kontraproduktiv, denn um die Infos zu lesen muß ich halt doch wieder das Handy oder Tablet in die Hand nehmen. Das praktische an Alexa ist doch gerade, dass ich Infos abrufen kann ohne ein Handheld nutzen zu müssen. Allerdings ist die Kürze der Antworten schon ein guter Punkt, dann muß man ausführlichere Infos z.B. über diverse re-prompts steuern, damit der Nutzer nachfragen kann, wenn mehr Infos erforderlich sind.
Das ist genau irgendwie das Problem weshalb ich momentan dazu tendiere das jeder sein Skill einfach selber zusammenbaut. Allen kann man es nie Recht machen. Zumindest hat man dann halt immer nur eine begrenzte Auswahl
Ja, klar, das führt dann zu custom skills für jeden, warum nicht. Die "hausinfo" ist ja auch als solcher gedacht. Allerdings bin ich auch für skills, die mal veröffentlicht werden sollen, der Meinung, dass man nicht versuchen muss, es allen recht zu machen. Das geht in der Tat nicht . ist aber bei jeder anderen Software auch so. Letztlich werden sich für jeden skill gewisse Interaktionen ergeben, die hoffentlich als "user interface" eingängig sind. Das wird sich auch bei Alexa und Co über die Zeit einspielen wie bei "klassischen" GUIs auch. Und genau wie dort gib es bessere und schlechtere, aber keine die es jedem recht macht ;)
Wenn jemand aber zum Beispiel eine Tochter hätte Michaela und gerne Fragen würde wie ist das Klima in Michaelas Zimmer siehst Du mit einem vordefinierten Skill schon wieder alt aus.
In gewissen Grenzen (ja, man kann's nicht jedem recht machen ;) ) ist das durchaus möglich. Schwierig wird's halt bei ausgefallenen Namen oder solchen, die zu ähnlich klingen. Aber ich gehe davon aus, dass Alexa da in Zukunft noch besser wird...
0 x
Benutzeravatar

JohnR
Beiträge: 1
Registriert: So 23. Apr 2017, 09:58

So 23. Apr 2017, 10:24

Ich würde z.B fragen: "Ist das Licht im Schlafzimmer noch an?" oder "Ist das Fenster im Badezimmer noch auf?"

Ich habe leider noch keinen Dot oder Echo, werde aber bald auf jeden Fall einen bestellen. Bin noch ziemlich am Anfang mit meiner Recherche was Alexa noch alles kann. Um auf das Beispiel mit Michaelas Zimmer zurück zu kommen. Kann man einen Skill so programmieren, das Alexa dazu lernt? Beispiel: Ich: "Alexa, wie ist das Klima in Michaelas Zimmer?" Alexa: "Was ist Michaelas Zimmer?" Ich: "Michaelas Zimmer ist das Kinderzimmer" Alexa merkt sich dann Michaelas Zimmer=Kinderzimmer. Ich weiß zwar wie Programmieren in etwa funktioniert, bin aber bei weitem kein Programmierer und habe noch viel zu wenig Ahnung von dem was mit den Skills und Alexa alles möglich ist. Also, ist sowas möglich? ☺
0 x
Benutzeravatar

Themenstarter
jjk
Beiträge: 6
Registriert: Sa 22. Apr 2017, 16:39

So 23. Apr 2017, 10:58

im Prinzip wär das sicher schon möglich, aber die Herausforderung ist im Moment noch, dass die sog. "utterances", also die Sätze und Worte, die Alexa kennt, in einem skill weitestgehend fest hinterlegt werden müssen. Man kann zwar sog. "slots" definieren, mit denen man dann zB. Varianten in einer Frage definieren kann, aber auch die Inhalte der slots, die Alexa "versteht" sind aktuell nach meinem Kenntnisstand durch den skill-Programmierer nicht dynamisch anpassbar. Wenn das mal eingeführt wird, wäre es sicher ein gewaltiger Sprung zur Flexibilisierung und Personalisierung der Alexa skills...
0 x
Benutzeravatar

Billy
Beiträge: 73
Registriert: Fr 3. Mär 2017, 13:09

So 23. Apr 2017, 11:28

Alexa hat nichts mit künstlicher Intelligenz zu tun. Sie kann nur gesprochene Wörter digitalisieren, mit ihrer Datenbank vergleichen und bei Gleichheit eine Aktion ausführen. Bei Ungleicheit sagt sie dann, entschuldige aber ich habe die Frage nicht verstanden. Oder eben eine andere zufällig ausgewählte Antwort.
0 x
Benutzeravatar

Fonzo
Beiträge: 1690
Registriert: Fr 24. Feb 2017, 00:06

So 23. Apr 2017, 12:31

JohnR hat geschrieben: So 23. Apr 2017, 10:24 Kann man einen Skill so programmieren, das Alexa dazu lernt?
Der Skill selber, die Einstellungen in der Developer Console, lernt leider gar nichts dazu. Der Skill besteht aus Utterances (vorgegebener Satzbau) und Slots (das sind die Dinge auf die Alexa reagieren soll). Die Intelligenz eines Skills liegt im Backend. Die Utterances und Slots kann nur der Author des Skills anpassen. Sobald es da eine Änderung gibt muss der Skill neu zertifiziert werden. Das Backend kann hingegen auch bei einem zertifizierten Skill angepasst werden und dazulernen.

Es gibt also nur zwei Möglichkeiten:
  • Man hat selber einen Developer Account und erstellt sich einen eigenen Skill, diesen kannst Du das anpassen wie Du willst Du musst den eigenen Skill auch nicht publizieren. So lange Du den Skill nicht publizierst brauchst Du Dich auch nicht an die Richtlinien zu halten die für eine Publikation bei Amazon zu berücksichtigen sind. Du kannst sogar Invocation Names (Aktivierungswort) nutzten die nur aus einem Wort bestehen. Und Du kannst die Slot Types individuell anpassen. Du könntest also so was wie "Alexa frage Enterprise nach der Temperatur auf der Commandobrücke" fragen. Unter Commandobrücke verstehst Du persönlich Wohnzimmer und die Enterprise ist den eigener Invocation Name. So was wollen im Gegenzug die wenigsten anderen User nutzten, es sei denn sie finden das ein guten Gag. Kurzum wenn Du alles individuell haben willst geht dies nur mit einem eigenen Skill. Hier kann man auch ein Framework nutzen wenn man das nicht komplett selber machen will wie z.B. Alexa Custom Skill Modul oder das Alexa SDK oder halt ein Framework schreiben für die Softwarelösung die man nutzten will.
  • Man hat eine feste Utterance aber auch Slot Types, sollte ein Slottype als Unknown erkannt werden arbeitet das Backend das trotzdem ab und arbeitet mit dem was Alexa übermittelt hat. Egal was Du machst Du brauchst in jedem Fall egal was für eine Software oder Funktion als Backend dient eine Zuordnung zu den einzelnen Datenpunkten. Schließlich muss Alexa ja wissen welchen Wert Sie Dir zurückgeben soll wenn Du z.B. Wohnzimmer sagst.
0 x
Benutzeravatar

Themenstarter
jjk
Beiträge: 6
Registriert: Sa 22. Apr 2017, 16:39

So 23. Apr 2017, 17:54

Der Skill selber, die Einstellungen in der Developer Console, lernt leider gar nichts dazu.
Das stimmt im Prinzip und hinsichtlich der "Logik" des skills. Allerdings habe ich festgestellt, dass die Aussage seitens Amazon, dass Alexa dazu lernt in sofern stimmt, dass das Wortverständnis sich verbessert, insbesondere bei Namen. Ich hatte genau das von @Fonzo beschriebene Problem bei einem custom skill
Wenn jemand aber zum Beispiel eine Tochter hätte Michaela und gerne Fragen würde wie ist das Klima in Michaelas Zimmer siehst Du mit einem vordefinierten Skill schon wieder alt aus
Die Namen meiner Kinder hat Alexa anfangs regelmäßig falsch "verstanden", inzwischen klappt es problemlos (ohne Änderung im skill).
0 x
Benutzeravatar

Fonzo
Beiträge: 1690
Registriert: Fr 24. Feb 2017, 00:06

So 23. Apr 2017, 18:10

jjk hat geschrieben: So 23. Apr 2017, 17:54 Die Namen meiner Kinder hat Alexa anfangs regelmäßig falsch "verstanden", inzwischen klappt es problemlos (ohne Änderung im skill).
Das ist ja auch keine Kunst für so was nutzt man auch Build In Slot Types und keinen Custom Slot in dem Fall AMAZON.DE_FIRST_NAME , Custom Slots sollte man nur benutzten wenn es keinen Build in Slot gibt. Und die Build In Slots werden kontinuierlich von Amazon verbessert. Sonst würdest Du ja gerade bei so was wie Vornamen, Städtenamen und ähnliches kirre werden wenn Du das alles als Slot hinterlegen sollst. Mit ging es aber nicht um Slot sondern um die Utterance die muss ja passen. Das heißt Du musst in dem Fall schon wissen das der User so was fragen könnte und dann den passenden Utterance mit Build In SlotType hinterlegen. Und das halte ich in dem Fall schwierig zu erahnen was der User denn alles an Ideen haben könnte den Skill anzusprechen.

In dem Fall z.B.
Alexa frage hausinfo wie warm ist es bei Michaela?
Alexa frage hausinfo wie warm ist es im Kinderzimmer?
Alexa frage hausinfo wie warm ist Michaelas Zimmer?

usw.

Ansonsten hast Du am Schluss keinen natürlichen Sprachfluss und der User muss erst auswendig lernen was Du meinst das er zu deinem Skill sagen soll.
0 x
Benutzeravatar

Themenstarter
jjk
Beiträge: 6
Registriert: Sa 22. Apr 2017, 16:39

So 23. Apr 2017, 18:45

Naja, ich sag ja, man kann's nicht allen recht machen ;)
Und das halte ich in dem Fall schwierig zu erahnen was der User denn alles an Ideen haben könnte den Skill anzusprechen.

In dem Fall z.B.
Alexa frage hausinfo wie warm ist es bei Michaela?
Alexa frage hausinfo wie warm ist es im Kinderzimmer?
Alexa frage hausinfo wie warm ist Michaelas Zimmer?
Solche Fragen sind aber schon darstellbar und im Prinzip genau das Beispiel, das ich zuvor gemeint hatte. Im ersten Fall ist der Slot AMAZON.DE_FIRST_NAME, im zweiten Fall entweder fest programmiert (und damit "default", falls kein anderer slot passt), oder ein "Zimmer slot", im dritten Fall wäre "Michaela" wieder der AMAZON.DE_FIRST_NAME standard slot. Schwierig wird's, wenn der Nutzer aufeinmal meint, er will was ganz anderes fragen, "wie warm ist es im Zimmer von Kind Nummer Eins?", oder "wie warm ist es im Zimmer neben Peters Zimmer?" - aber naja, man kann es halt nicht allen recht machen, solange Alexa keine echte KI ist ;)

Und ja, Mißverständnisse gibt es dabei immer wieder, aber das war eben genau was ich meinte, Alexa lernt zumindest bei den Standardslots dazu.

Und nochmal ja, das Problem der fehlenden Flexibilität bei der Anpassung von custom slots ist damit immer noch gelöst...!

ich finde es allerdings auch nicht schlimm, wenn der Nutzer ein paar Formulierungen kennen/lernen muß, um Alexa Fragen zu stellen. bei jeder anderen Software muß man auch einmal lernen, wie die Bedienung funktioniert...
0 x
Antworten

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

  • Information