-
Gebiet
-
Die vorliegende Offenbarung betrifft das Konfigurieren eines virtuellen Assistenten. Insbesondere betrifft die vorliegende Offenbarung computerimplementierte Verfahren, Vorrichtungen und Systeme für die Konfiguration eines virtuellen Assistenten.
-
Allgemeiner Stand der Technik
-
Virtuelle Assistenten ermöglichen die Kommunikation zwischen einem Benutzer und einer Rechenvorrichtung, indem sie eine Unterhaltung mit einem echten Menschen nachahmen. Sie können die Kommunikation zwischen einer Vorrichtung und einem Benutzer durch Verarbeitung natürlicher Sprache (natural language processing - NLP) ermöglichen.
-
Eine Benutzeroberfläche eines virtuellen Assistenten umfasst typischerweise einen oder mehrere vordefinierte Dialoge, d. h. den Austausch von Benutzeranforderungen und Antworten des virtuellen Assistenten. Dialoge können eine große Anzahl möglicher Benutzeranforderungen und -antworten umfassen, die vordefiniert werden müssen. Daher besteht ein Bedarf zum Konfigurieren eines virtuellen Assistenten.
-
-
Kurzdarstellung
-
In dieser Schrift offenbart sind Verfahren, Vorrichtungen und Systeme zum Konfigurieren eines virtuellen Assistenten.
-
Ein erster Aspekt der vorliegenden Offenbarung betrifft ein computerimplementiertes Verfahren zum Konfigurieren eines virtuellen Assistenten. Das Verfahren umfasst:
- • Einstellen einer ersten Benutzeranforderung, die über eine Benutzeroberfläche des virtuellen Assistenten einzugeben ist;
- • Zuordnen der ersten Benutzeranforderung zu einer ersten Ausgabe des virtuellen Assistenten;
- • Zuordnen der ersten Benutzeranforderung zu einer zweiten Ausgabe des virtuellen Assistenten;
- • Einstellen eines Steuerparameters, der durch den virtuellen Assistenten zu bestimmen ist; und
- • Erzeugen von Anweisungen für den virtuellen Assistenten, die, wenn sie durch den virtuellen Assistenten verarbeitet werden, den virtuellen Assistenten dazu konfigurieren, auf die erste Benutzeranforderung zu antworten, indem sie abhängig von der Bestimmung des Steuerparameters durch den virtuellen Assistenten entweder die erste Ausgabe oder die zweite Ausgabe auswählen.
-
Die Benutzeranforderung und die Ausgaben des virtuellen Assistenten können eine Kommunikation mit einem Benutzer ermöglichen. Dadurch reagiert die Vorrichtung des virtuellen Assistenten auf eine Benutzeranforderung, indem sie eine erste oder zweite Ausgabe ausgibt. Die Ausgabe kann ferner von einem Steuerparameter abhängen, sodass die gleiche Benutzeranforderung zu zwei unterschiedlichen Ausgaben führen kann. Dabei wird die Reaktion des virtuellen Assistenten nicht ausschließlich durch die Benutzeranforderung bestimmt, sondern kann beispielsweise von situativen Bedingungen abhängen. Der virtuelle Assistent kann dabei berücksichtigen, dass die gleiche Benutzeranforderung in einem anderen Kontext eine andere Bedeutung haben kann.
-
In einer Ausführungsform ist die Benutzeroberfläche des virtuellen Assistenten eine von:
- • einer textbasierten Benutzeroberfläche;
- • einer grafischen Benutzeroberfläche;
- • einer bildbasierten Benutzeroberfläche; und
- • einer sprachbasierten Benutzeroberfläche.
-
Dabei kann die Benutzeroberfläche eine dialogorientierte Benutzeroberfläche sein, d. h. eine Benutzeroberfläche, die eine Kommunikation in einer natürlichen Sprache nachahmt. Der virtuelle Assistent kann die Form einer Vorrichtung haben, die Eingabe- und Ausgabehardware umfasst, wie etwa Lautsprecher, einen Bildschirm, eine Tastatur oder ein Mikrofon. Die Vorrichtung des virtuellen Assistenten kann ferner in Software implementiert und auf einem Server ausgeführt werden, der durch ein Netzwerk mit der Eingabe-/Ausgabehardware gekoppelt ist. Alternativ kann die Vorrichtung des virtuellen Assistenten ein Chatbot sein.
-
In einer weiteren Ausführungsform umfasst der virtuelle Assistent eine Vorrichtung des virtuellen Assistenten und der Steuerparameter wird durch einen Sensor erzeugt, der kommunikativ mit der Vorrichtung des virtuellen Assistenten gekoppelt ist. Der Sensor kann eine Uhr, ein Temperatursensor, eine Kamera, ein Sensor eines globalen Navigationssystems oder ein beliebiger anderer Sensor sein. Dadurch wird ein situativer Steuerparameter bestimmt. Wenn zum Beispiel die Vorrichtung des virtuellen Assistenten in einem Fahrzeug enthalten ist und der Benutzer nach der Verfügbarkeit eines Dienstes wie etwa einer Tankstelle in der Nähe fragt, kann die Antwort des Systems von der Position abhängig sein. Als weiteres Beispiel kann der Sensor eine in Hardware oder Software implementierte Schaltung sein, die die Identität eines Lautsprechers basierend auf Eigenschaften der Stimme erkennt, sodass die Ausgabe von der Identität des Lautsprechers abhängig sein kann.
-
In einer weiteren Ausführungsform bewirkt eine Ausgabe des virtuellen Assistenten eines oder mehrere von:
- • einer Textausgabe durch eine Anzeige;
- • einer Sprachausgabe durch einen Lautsprecher;
- • Laden oder Speichern einer Variablen in einem Speicher;
- • Ausgabe von Anweisungen zum Konfigurieren einer Vorrichtung;
- • Ausführung von Programmcode.
-
Insbesondere eine Text- und/oder Sprachausgabe kann es ermöglichen, den Dialog mit dem Benutzer fortzusetzen; dadurch sammelt der virtuelle Assistent weitere Informationen, die benötigt werden, um einer Benutzeranforderung nachzukommen. Der weitere Verlauf des Dialogs, insbesondere Anzahl und Inhalt weiterer Text- und/oder Sprachausgaben, kann von den Benutzeranforderungen abhängig sein. Dadurch kann die Vorrichtung des virtuellen Assistenten dem Benutzer die relevanten Fragen für ein gewünschtes Ergebnis stellen und unnötige Fragen vermeiden, sodass ein Dialog kurz und effizient gehalten wird.
-
In einer weiteren Ausführungsform umfasst das Verfahren ferner:
- • Einstellen einer Anfangsausgabe, die über die Benutzeroberfläche der Vorrichtung des virtuellen Assistenten auszugeben ist;
- • Einstellen einer zweiten Benutzeranforderung, die über die Benutzeroberfläche der Vorrichtung des virtuellen Assistenten einzugeben ist; und
- • Zuordnen der zweiten Benutzeranforderung zu einer dritten Ausgabe der Vorrichtung des virtuellen Assistenten.
-
In dieser Ausführungsform konfigurieren die Anweisungen den virtuellen Assistenten dazu, auf die zweite Benutzeranforderung zu reagieren, indem die dritte Ausgabe ausgewählt wird. Außerdem sind in dieser Ausführungsform die erste Benutzeranforderung und die zweite Benutzeranforderung der Anfangsausgabe zugeordnet. Die Anfangsausgabe kann eine durch die Vorrichtung des virtuellen Assistenten gestellte Frage umfassen, auf die eine Vielzahl von erwarteten Antworten, z. B. die erste und zweite Benutzeranforderung, eingestellt werden. Dabei kann der Benutzer zwischen einer Vielzahl von Optionen wählen. Insbesondere muss eine Benutzeranforderung kein genau vordefinierter Satz sein. Im Fall einer binären Frage (Ja/Nein) kann jede positive Antwort beispielsweise der dritten Ausgabe zugeordnet werden und kann jede negative Antwort entweder der ersten Ausgabe oder der zweiten Ausgabe zugeordnet werden, in Abhängigkeit von dem Steuerparameter wie vorstehend beschrieben. In einer weiteren Ausführungsform wird das Verfahren durch eine Rechenvorrichtung ausgeführt, die eine zweite Benutzeroberfläche umfasst. Die zweite Benutzeroberfläche erlaubt dadurch einem Programmierer, die Konfiguration der Vorrichtung des virtuellen Assistenten zu steuern. Eine speziell für diese Aufgabe entworfene Programmiersprache kann bereitgestellt werden.
-
In einer weiteren Ausführungsform ist die zweite Benutzeroberfläche eine grafische oder textbasierte Benutzeroberfläche. Im Falle einer grafischen Benutzeroberfläche kann eine grafische Programmiersprache verwendet werden, die grafische Elemente darstellt, wie etwa Knoten, die eine oder mehrere Aktionen anzeigen, und Linien, die Verbindungen zwischen Knoten und/oder Aktionen anzeigen. Aktionen können Benutzeranforderungen, Ausgaben, wie etwa Sprachausgabe, Laden oder Speichern von Daten in einem Speicher oder beliebige der vorstehend beschriebenen Operationen umfassen.
-
In einer weiteren Ausführungsform umfasst das Einstellen einer oder mehrerer der Benutzeranforderungen und/oder Ausgaben:
- • Bereitstellen einer oder mehrerer Optionen für die Benutzeranforderung und/oder Ausgabe durch die zweite Benutzeroberfläche;
- • Empfangen einer Angabe der Benutzeranforderung und/oder Ausgabe durch die zweite Benutzeroberfläche; und
- • Anzeigen eines grafischen Elements, das in der zweiten Benutzeroberfläche enthalten ist und die Benutzeranforderung und/oder Ausgabe angibt.
-
Die Möglichkeiten können beispielsweise durch ein Suchformular mit Autovervollständigungsfunktion oder ein Drag-and-Drop-Verfahren zum Anordnen von grafischen Elementen bereitgestellt werden. Insbesondere kann ein Knoten eine Vielzahl von Indikatoren für auszuführende Aktionen umfassen. Ein Knoten kann ferner eine oder mehrere Benutzeranforderungen zusammen mit einer oder mehreren Steuervariablen umfassen. Damit lassen sich zusammengehörige Informationen kompakt auf einem Bildschirm darstellen.
-
Ein zweiter Aspekt der vorliegenden Offenbarung betrifft eine Rechenvorrichtung zum Konfigurieren einer Vorrichtung des virtuellen Assistenten. Ein dritter Aspekt der vorliegenden Offenbarung betrifft ein System, das die Rechenvorrichtung und die Vorrichtung des virtuellen Assistenten umfasst. Alle Eigenschaften des ersten Aspekts gelten auch für den zweiten und dritten Aspekt.
-
Kurzbeschreibung der Zeichnungen
-
Die Merkmale, Aufgaben und Vorteile der vorliegenden Offenbarung werden aus der nachfolgend dargelegten detaillierten Beschreibung deutlicher, wenn sie in Verbindung mit den Zeichnungen betrachtet wird, in denen sich gleiche Bezugszeichen auf ähnliche Elemente beziehen.
- 1 stellt ein Blockdiagramm eines Systems gemäß einer Ausführungsform dar;
- 2 stellt ein Ablaufdiagramm eines Verfahrens zum Konfigurieren eines virtuellen Assistenten gemäß einer Ausführungsform dar;
- 3 stellt eine grafische Ausgabe eines Dialogs gemäß einer Ausführungsform dar; und
- 4 stellt eine grafische Ausgabe eines grafischen Elements gemäß einer Ausführungsform dar.
-
Detaillierte Beschreibung der bevorzugten Ausführungsformen
-
1 zeigt ein Blockdiagramm eines Systems 100, das eine Rechenvorrichtung zum Konfigurieren eines virtuellen Assistenten gemäß einer Ausführungsform umfasst. Die Rechenvorrichtung umfasst einen Konfigurationsserver 102, der die Konfigurationssoftwareinstanz 104 ausführt, und einen Konfigurationsclient 106, der über ein Netzwerk 108 kommunikativ mit dem Konfigurationsserver gekoppelt ist. Die Konfigurationssoftware ist dazu konfiguriert, die Schritte des Bereitstellens von Optionen für den Entwickler und des Empfangens von Eingaben von diesem über den Konfigurationsclient 106 auszuführen. Somit kann der Entwickler unter Verwendung des Konfigurationsclients 106 die Software 104 als ein Entwurfswerkzeug verwenden, um Inhalt für eine Konversationsbenutzeroberfläche (conversational user interface - CUI) des virtuellen Assistenten zu erstellen, wie nachfolgend detailliert beschrieben. In einer alternativen Ausführungsform kann das Entwurfswerkzeug jedoch durch eine einzelne Rechenvorrichtung ausgeführt werden und von dieser zugreifbar sein. Ferner umfasst das System 100 einen virtuellen Assistenten, der eine Softwareinstanz 112 des virtuellen Assistenten umfasst, die durch einen Server 110 des virtuellen Assistenten ausgeführt wird, und eine Vorrichtung 114 des virtuellen Assistenten, die Eingabe-/Ausgabehardware 116 und Sensor(en) 118 umfasst. Die Software 112 kann eine CUI ausführen und die Vorrichtung 114 kann nur die Eingabe-/Ausgabehardware umfassen. Im Allgemeinen kann eine Vielzahl von virtuellen Assistenten gleichzeitig verwendet werden, die jeweils eine Softwareinstanz 112 umfassen, die sich auf eine Vorrichtung 114 bezieht. In einer alternativen Ausführungsform kann die Software 112 jedoch auf Verarbeitungshardware in der Vorrichtung des virtuellen Assistenten selbst ausgeführt werden. Eingabe-/Ausgabehardware kann ein Mikrofon und einen Lautsprecher im Fall einer sprachbasierten CUI oder einen Bildschirm und eine Tastatur im Fall einer textbasierten oder grafischen CUI umfassen.
-
2 zeigt ein Ablaufdiagramm eines Verfahrens 200 zum Konfigurieren eines virtuellen Assistenten gemäß einer Ausführungsform. Das Verfahren 200 kann durch eine Instanz 104 einer Konfigurationssoftware ausgeführt werden. Nach dem Start 202 stellt die Software eine Anfangsausgabe 204 ein. Diese Ausgabe kann bewirken, dass der virtuelle Assistent einem Benutzer eine Frage stellt. In diesem Fall kann die Software die Frage in einem Antwortknoten über die zweite Benutzeroberfläche anzeigen, wie in Bezug auf 3 detailliert beschrieben. Dies ist jedoch optional. Falls keine Anfangsausgabe eingestellt ist, kann das System auf eine Eingabe durch den Benutzer warten, die in einem Auslöseknoten gezeigt werden kann, wie nachfolgend detailliert beschrieben. Eine erste Benutzeranforderung wird eingestellt, 206, die eine erwartete verbale Eingabe von einem Benutzer sein kann. Diese verbale Eingabe kann eindeutig identifiziert werden, wie etwa eine positive Antwort auf eine Frage, aber sie kann je nach Situationsparametern eine andere semantische Bedeutung haben. Der ersten Benutzeranforderung ist eine erste Ausgabe 208 und eine zweite Ausgabe 210 zugeordnet, die die unterschiedlichen Situationsparameter berücksichtigen. Ein Steuerparameter wird eingestellt, 212, abhängig davon, welche Ausgabe ausgewählt wird, falls die erste Benutzeranforderung empfangen wird. Optional kann eine zweite Benutzeranforderung eingestellt werden, 212, wie etwa eine negative Antwort auf eine Frage, die einer dritten Ausgabe zugeordnet sein kann, 214. Alternativ kann der zweiten Benutzeranforderung eine vierte Ausgabe zugeordnet werden, und ein zweiter Steuerparameter kann eingestellt werden, je nachdem, welche von der dritten oder vierten Ausgabe ausgewählt wird. Bei 218 werden Anweisungen erzeugt, die den virtuellen Assistenten dazu konfigurieren, auf die erste Benutzeranforderung zu antworten, indem abhängig von der Bestimmung des Steuerparameters durch den virtuellen Assistenten entweder die erste Ausgabe oder die zweite Ausgabe ausgewählt wird, und auf die zweite Benutzeranforderung zu antworten, indem die dritte Ausgabe ausgewählt wird. Alternativ kann eine größere Anzahl von Benutzeranforderungen, Ausgaben und Steuerparametern definiert werden.
-
3 zeigt einen beispielhaften Dialog 300, wie er durch die Rechenvorrichtung gemäß einer Ausführungsform gezeigt wird. Der Dialog umfasst eine Vielzahl von Knoten, wie nachfolgend beschrieben. In dieser beispielhaften Ausführungsform umfasst ein Auslöseknoten 302 eine Benutzeranforderung. In diesem veranschaulichenden Beispiel wird eine Anforderung für einen Wäscheservice an einen virtuellen Assistenten gegeben, was eine übliche Situation in einem Hotelzimmer sein kann. Der Dialog beginnt, sobald die in der Benutzeranforderung angegebene Frage durch die Vorrichtung empfangen wird. Der Antwortknoten 306 gibt eine anfängliche Rückantwort 308 an, die Informationen umfasst, die dem Benutzer gegeben werden. Die anfängliche Rückantwort 308 umfasst auch eine zugehörige Frage, die anschließend gestellt wird, zum Beispiel, dass ein Wäscheservice verfügbar ist, und die Frage, ob der Benutzer diesen nutzen möchte. Das heißt, im vorliegenden Beispiel ist die Frage eine binäre Frage (Ja/Nein). Der Auslöseknoten 302 und der Antwortknoten 306 sind verbunden, um anzugeben, dass die Anweisungen im Antwortknoten 306 als Reaktion auf den Auslöseknoten 302 ausgeführt werden. Der Antwortknoten 306 umfasst ferner zwei mögliche erste Benutzeranforderungen und eine Bedingung in Bezug auf einen Steuerparameter, die als drei Elemente 310 gezeigt ist. Zwei der drei Elemente sind einer positiven Antwort zugeordnet. Welche dieser beiden Benutzeranforderungen identifiziert wird, hängt von dem als „Bedingung“ gekennzeichneten Steuerparameter ab. In diesem Beispiel kann der Benutzer als Benutzer mit VIP-Status gekennzeichnet sein, der immer einen Expressdienst bestellt. Der Steuerparameter kann in einem mit dem virtuellen Assistenten verbundenen Speicher gespeichert und aus diesem geladen werden. Der Steuerparameter kann durch einen Sensor erzeugt werden. In diesem Beispiel kann der Sensor eine Uhr sein, sodass der Steuerparameter zu bestimmten Zeiten eingestellt wird, wenn nur ein Expressdienst verfügbar ist. Alternativ kann die Variable die Ausgabe einer Sprechererkennungsvorrichtung sein, die einen Client als Benutzer mit VIP-Status identifiziert. Alternativ kann ein Steuerparameter semantische Informationen der erkannten Sprache umfassen, wie etwa die Verwendung eines bestimmten Wortlauts. In anderen beispielhaften Ausführungsformen kann jeder Sensor, der kommunikativ mit dem virtuellen Assistenten gekoppelt ist, verwendet werden, um einen Steuerparameter zu erzeugen. Unter weiterer Bezugnahme auf das vorliegende Beispiel wird, falls der Steuerparameter auf einen ersten Wert eingestellt ist, ein Expressauftrag aufgegeben und bestätigt, wie im Antwortknoten 316 angegeben. Wenn dies nicht der Fall ist, folgt ein weiterer Austausch einer Vorrichtungsrückantwort und einer Benutzeranforderung, wie durch einen weiteren Antwortknoten 312 angegeben, und dann wird ein Auftrag aufgegeben und bestätigt (Antwortknoten 314 und 316). Die Antwortknoten 314 und 316 umfassen auch Aktionen 320, die keine Vorrichtungsrückantwort umfassen, d. h. die keine an den Benutzer gegebene Ausgabe umfassen. Im vorliegenden Beispiel beziehen sie sich auf ein Ausgangssignal, das an ein Auftragssystem einer Wäscherei gegeben wird. In alternativen Ausführungsformen können sie sich auf das Konfigurieren von Vorrichtungen beziehen, wie etwa das Einstellen der Lautstärke eines Lautsprechers, das Beginnen der Ausführung eines anderen Programms oder das Umschalten von einem Dialog zu einem anderen.
-
4 zeigt ein grafisches Element 400 gemäß einer Ausführungsform. In das grafische Element kann eine Aktion 402 integriert sein. Die Benutzeroberfläche bietet dem Entwickler Optionen durch eine Drop-down-Liste oder indem Suchvorschläge gemacht werden, z. B. mit einer Autovervollständigungsfunktion, und der Entwickler kann Eingaben machen, welche Option ausgewählt wird. Die Aktionen können sich ferner auf die Steuerung einer Vorrichtung beziehen. Es können eine Vielzahl von Aktionen und eine Vielzahl von Benutzeranforderungen hinzugefügt werden.
-
Bezugszeichen
-
- 100
- System
- 102
- Konfigurationsserver
- 104
- Instanz der Konfigurationssoftware
- 106
- Konfigurationsclient
- 108
- Netzwerk
- 110
- Server des virtuellen Assistenten
- 112
- Software des virtuellen Assistenten
- 114
- Vorrichtung(en)
- 116
- Eingabe-/Ausgabehardware
- 118
- Sensor(en)
- 200
- Verfahren zum Konfigurieren eines virtuellen Assistenten
- 202-222
- Schritte des Verfahrens 200
- 300
- Dialog
- 302
- Auslöseknoten
- 304
- Anfängliche Benutzeranforderung
- 306
- Antwortknoten
- 308
- Erste Vorrichtungsrückantwort
- 310
- Benutzeranforderung und Bedingungselemente
- 312-318
- Weitere Antwortknoten
- 320
- Aktionen
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 10678406 B1 [0004]
- US 20030229855 A1 [0004]
- US 7143042 B1 [0004]