Testsätze für FHEM-ChatBot gesucht.

Begonnen von Prof. Dr. Peter Henning, 07 Februar 2018, 20:08:18

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich suche Testsätze für den FHEM-ChatBot im Babble-Modul: Welchen Dialog möchte man gerne mit seinem Haus führen ?

LG

pah

igami

Beleuchtung schalten.
Der Dialog sollte von alle Devices die mit dem Attribut genericDeviceType (wurde zumindest mal von manchen Frontend Ansätzen verwendet) den Status anzeigen und durch weitere Befehle verändern lassen (on/off und pct falls möglich).
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Prof. Dr. Peter Henning

Ah, Missverständnis - das ist so nämlich genau nicht gemeint.

Erstens geht das Schalten und Abfragen beliebiger Devices bereits jetzt problemlos, genau das leistet das Modul Babble.

Zweitens ist das nicht ganz so einfach, wie es in dem Wunsch auftaucht: "on/off und pct falls möglich". Denn ebenso wie ein grafisches Frontend eine visuelle Zwischenschicht darstellt, muss hier eine sprachliche Zwischenschicht hinein. Man möchte eben nicht sagen
ZitatHaus, set WZ.L.ET on
- sondern eher "Haus, schalte die Leuchte am Esstisch ein". Deshalb muss die sprachliche Zwischenschicht als Übersetzung umgangssprachlicher Bezeichnungen immer definiert werden. Wie das mit dem Babble-Modul geht, habe ich auf einer entsprechenden Wiki-Seite dokumentiert, siehe https://wiki.fhem.de/wiki/Modul_Babble.

Drittens, um was geht es im ersten Post nun wirklich ? Der ChatBot ist nicht nötig, um die konkreten Schalt- und Abfragebefehle zu erkennen und umzusetzen.  Sondern nur, falls solche nicht erkennbar sind - etwa, wenn der Benutzer die allgemeine Frage stellt "Was kannst Du denn steuern". Auf diese Frage beispielsweise antwortet der ChatBot mit einer Liste der bekannten Devices, also etwa "Ich kenne die folgenden Geräte: Licht, Heizung und Bewässerung". Der ChatBot interagiert dafür im Hintergrund mit Babble und holt sich dort die Liste der Geräte

Wenn der Benutzer dann nachfragt "Wie kannst Du Heizung steuern?", holt sich der ChatBot den in Babble vordefinierten Hilfesatz, z.B. "Sprich: Stelle die Heizung, gefolgt von einer Ortsangabe, auf eine Temperaturangabe".

Wenn der Benutzer dann sagt "Stelle die Heizung im Wohnzimmer auf 21 Grad", wird Babble das ausführen und den ChatBot gar nicht bemühen.

Der ChatBot dient also dazu, informelle Gespräche einzufangen und auf eine formelle Anweisung hin zu moderieren.


LG

pah

igami

Dann muss ich mir das nachher noch mal genauer überlegen.
Es gibt ja bereits ein ähnliches Modul (msgDialog) in dem vordefinierte Dialoge erzeugt werden.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Prof. Dr. Peter Henning

msgDialog kenne ich natürlich. Liegt aber nicht ganz genau auf der mit dem Babble-ChatBot verfolgten Linie, weil es auch auf formalen Eingaben beruht. Zentraler Fokus bei Babble ist aber die Analyse informeller Sprache. Zitat aus dem Wiki:

ZitatBabble überprüft einen empfangenen natürlichsprachlichen Satz auf einen darin enthaltenen Orts-Identifikator, sowie auf eine Liste von vordefinierten Verben und Verbteilen. Ein weiteres darin enthaltenes Nomen wird je nach Artikeln und Verben als Gerät identifiziert. Beispielsweise resultieren die beiden Eingabesätze

    Schalte die Beleuchtung in der Sitzgruppe an
    Beleuchtung in der Sitzgruppe anschalten

jeweils im gleichen Ergebnis:

Gerät=licht Ort=sitzgruppe Verb=schalten Ziel=ein

LG

pah