Inhaltsverzeichnis:
- Schritt 1: Legen Sie Ihre Google-Kontoberechtigungen fest
- Schritt 2: Erstellen Sie Ihre Aktion
- Schritt 3: Aktionsaufruf
- Schritt 4: Fügen Sie Ihre erste Aktion hinzu
- Schritt 5: Trainingssätze für Ihre Absicht
- Schritt 6: Entitäten
- Schritt 7: Aktion und Parameter
- Schritt 8: Erfüllung
- Schritt 9: Willkommensabsicht
- Schritt 10: Ihr Python-Webdienst
- Schritt 11: Testen Sie Ihre Aktion
- Schritt 12: Geben Sie Ihre Aktion frei
Video: Benutzerdefinierte Aktionen für Google Assistant erstellen: 12 Schritte
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Als ich das Potenzial von Google Assistant sah, wie er in Google I/O 18 sowie Volvo Cars in ihrem Infotainment-System präsentiert wurde, konnte ich nicht widerstehen, es auszuprobieren. Ich habe eines meiner älteren Projekte, VasttraPi, wiederverwendet und mit Google Assistant verbunden. Wenn Sie mehr über das Projekt erfahren möchten, würde ich mich freuen, wenn Sie einen Blick in den entsprechenden Artikel auf meinem Blog werfen: Benutzerdefinierte Aktionen für Google Assistant.
In diesem Instructable gehen wir die erforderlichen Schritte durch, um Ihre eigene Google Assistant-Aktion zu starten, die mit Ihrem Server kommuniziert und mit Ihnen zurückspricht und bevorstehende Abfahrten auflistet. Denken Sie daran, dass wir das SDK nicht verwenden werden, da wir es vollständig in Google Assistant und nicht auf unserem eigenen Gerät ausführen. Insgesamt soll es schlicht gehalten werden. Ihre Aktion kann auf Geräten verwendet werden, die Google Assistant unterstützen, wie Telefone, Tablets, Heimassistenten und Wearables, und Sie können sie sogar wie mit einer App im Play Store teilen!
Einer der Hauptvorteile der Erstellung von so etwas gegenüber der Verwendung von Diensten wie IFTTT besteht darin, dass Sie auf Ihrem Server benutzerdefinierte Antworten erstellen können, die von Google Assistant gelesen werden. Bei IFTTT ist die Kommunikation für mich unidirektional.
Folgende Themen werden behandelt:
- Erstellen Sie Ihr erstes Aktionsprojekt
- Erstellen Ihres benutzerdefinierten Intents
- Erstellen Ihrer benutzerdefinierten Entität
- Einen Webhook einrichten, um Ihre Aktion auszuführen
- Einrichten eines einfachen REST-Servers, der mit Flask in Python geschrieben wurde und die Antworten oder "Erfüllung" bereitstellt
- Testen Sie Ihr Action-Projekt
- Freigabe Ihres Aktionsprojekts
Hier finden Sie nicht viele Details oder Theorie zu den verschiedenen Funktionen und Konzepten von Google Assistant. Wenn Sie daran interessiert sind, empfehle ich Ihnen dringend, dem offiziellen Tutorial zu folgen oder dieses Video anzusehen.
Schritt 1: Legen Sie Ihre Google-Kontoberechtigungen fest
Bevor wir beginnen, müssen wir sicherstellen, dass Google Assistant über die entsprechenden Berechtigungen verfügt.
- Gehe zu Aktivitätssteuerung
-
Stellen Sie sicher, dass Folgendes aktiviert ist:
- Web- & App-Aktivitäten
- Geräteinformation
- Sprach- und Audioaktivität
Schritt 2: Erstellen Sie Ihre Aktion
- Gehen Sie zur Actions Console und klicken Sie auf "Projekt hinzufügen/importieren".
- Nennen wir dieses Actions-Projekt "Local-Traffic-Planner".
- Klicken Sie auf "Projekt erstellen".
- Wählen Sie auf der nächsten Seite keine Kategorie aus und klicken Sie auf "Überspringen".
- Sie sollten sich jetzt auf der Hauptseite der Actions Console befinden.
Schritt 3: Aktionsaufruf
Legen Sie fest, wie Sie Google Assistant auslösen möchten, um Ihre Aktion zu starten.
- Klicken Sie unter "Schnelleinrichtung" auf "Entscheiden, wie Ihre Aktion aufgerufen wird".
- Nennen Sie es "Mein lokaler Verkehrsplaner" und klicken Sie auf "Speichern".
-
Klicken Sie auf die Eingabeaufforderung "UPDATE SAMPLE INVOCATIONS", die nach dem Klicken auf Speichern angezeigt wurde.
Diese Option finden Sie auch unter "Verzeichnisinformationen"
- Fügen Sie "Meinen lokalen Verkehrsplaner fragen" als neuen Aufruf hinzu und klicken Sie auf "Speichern".
Schritt 4: Fügen Sie Ihre erste Aktion hinzu
- Klicken Sie in der linken Leiste auf "Aktionen".
- Klicken Sie auf "DEINE ERSTE AKTION HINZUFÜGEN".
- Wählen Sie "Benutzerdefinierte Absicht" und klicken Sie dann auf "Erstellen".
- Sie werden zur Dialogflow-Seite weitergeleitet, auf der Sie die Hauptlogik implementieren.
Schritt 5: Trainingssätze für Ihre Absicht
- Wählen Sie Ihre Zeitzone und klicken Sie auf "Erstellen".
- Belassen Sie auf der nächsten Seite die bestehenden Intents und klicken Sie auf "CREATE INTENT".
- Geben Sie dem Intent einen sinnvollen Namen, z. B. "Abflüge".
- Gehen Sie zu „Trainingsphrasen“und klicken Sie auf „Trainingsphrasen hinzufügen“.
-
Verwenden Sie die folgenden Ausdrücke, um Ihr Modell zu trainieren, damit es interpretieren kann, was Sie ihm sagen:
- Ich bin gerade zu Hause
- Vorerst bin ich zu Hause
- Ich bin gerade in unserer Wohnung
- ich sitze zu hause
- Aktuell bin ich in der Nähe der Arbeit
- ich bin bei der Arbeit
- Ich bin im Büro
- Arbeit
- Heim
Schritt 6: Entitäten
Nachdem Sie nun festgelegt haben, was als Eingabe mehr oder weniger erwartet werden soll, müssen wir definieren, welche Teile der Eingabe für unsere Geschäftslogik von Interesse sind, damit sie extrahiert und auf unserem Server hervorgehoben werden können. In unserem Fall möchten wir wissen, ob der Benutzer zu Hause oder auf der Arbeit ist, damit wir mit den Abfahrten von der jeweiligen Station antworten können. Mal sehen, wie wir das machen können.
- Wenn Sie auf ein oder mehrere Wörter der Trainingsphrasen doppelklicken, erhalten Sie eine Liste vordefinierter Entitäten. Sie können hier mehr zu jedem von ihnen lesen. Insgesamt wäre @sys.location am besten geeignet, aber ich denke, es ist am besten und einfachsten, wenn wir unsere eigene Entität erstellen, die wir @current-location nennen sollten.
- Klicken Sie auf der linken Seite auf die Option "Entitäten".
- Klicken Sie auf „EINHEIT ERSTELLEN“.
-
Setzen Sie den Namen auf "aktueller Standort" und definieren Sie zwei Referenzwerte zusammen mit ihren Synonymen:
-
Heimat
Zuhause, Haus, Wohnung, Krippe
-
Arbeit
Arbeit, Büro, Aptiv, Code Minen (lol nur ein Scherz)
-
- Klicken Sie auf "Speichern". Für einen zusätzlichen Effekt können Sie auch auf "Automatische Erweiterung zulassen" klicken, um Google Assistant weitere Freiheiten zu geben, weitere Synonyme mit Ihren Referenzwerten abzugleichen.
Schritt 7: Aktion und Parameter
Es ist an der Zeit, den Schlüsselwörtern in Ihren Trainingssätzen eine Bedeutung zu geben.
- Klicken Sie auf "Intents" und navigieren Sie dann zu Ihrem benutzerdefinierten Intent, d. h. "Abflüge", wenn Sie meinen Namensvorschlägen gefolgt sind.
- Scrollen Sie nach unten zu "Trainingssätze".
- Doppelklicken Sie auf die Wörter, die Ihren aktuellen Standort angeben, und wählen Sie das @current-location-Tag aus dem Popup-Fenster aus.
- Scrollen Sie nach unten zu "Aktionen und Parameter", klicken Sie auf "Verwalten"
- Wenn alles richtig gemacht wurde, wird Ihre neue Entität dort aufgelistet.
- Aktivieren Sie das Kontrollkästchen "Erforderlich", wodurch eine neue Spalte "Aufforderungen" angezeigt wird. Eingabeaufforderungen sind das, was der Benutzer hören soll, wenn nichts geliefert wurde, was den Erwartungen entspricht.
- Klicken Sie auf „Eingabeaufforderungen definieren“und fügen Sie etwas wie „Ich habe Ihren Standort nicht verstanden. Wo sind Sie gerade?“ein.
Schritt 8: Erfüllung
Jetzt ist es an der Zeit, Ihren Webdienst mit der Google Assistant-Aktion zu verbinden. Ihr Hook wird aufgerufen, wenn diese spezifische Absicht ausgelöst wird und sollte die Erfüllung dieser Aktion bewirken. Davor wollen wir auch unsere Absicht festlegen, die Aktion nach Erfüllung abzuschließen.
- Gehen Sie zu "Antworten" und klicken Sie auf "ANTWORT HINZUFÜGEN".
- Fügen Sie keine Antworten hinzu, aktivieren Sie einfach "Diese Absicht als Gesprächsende festlegen".
- Scrollen Sie nach unten zu "Erfüllung", klicken Sie auf "ERFÜLLUNG AKTIVIEREN" und aktivieren Sie dann "Webhook-Anruf für diese Absicht aktivieren".
- Klicken Sie auf "Speichern" und gehen Sie dann auf der linken Seite zur Option "Erfüllung".
-
Aktivieren Sie die Option "Webhook" und geben Sie die URL ein, die von Ihrem Webserver "abgehört" wird.
Immer wenn der Intent ausgelöst wird, wird eine POST-Anfrage an Ihre Website gesendet, wobei der Hauptteil der Anfrage ein JSON-Objekt mit dem aktuellen Standort des Benutzers enthält
- Klicken Sie auf Speichern.
- Jetzt sind wir bereit, unseren Webservice zu erstellen, aber vorher sollten wir sicherstellen, dass unsere Aktion uns in angemessener Weise willkommen heißt.
Schritt 9: Willkommensabsicht
Um die Benutzererfahrung anzupassen, sollten wir eine angemessene Begrüßung für uns erstellen, wenn wir unsere Aktion auslösen.
- Gehen Sie zu "Intents" und klicken Sie dann auf "Default Welcome Intent".
- Scrollen Sie nach unten zu "Antworten", entfernen Sie die vorhandenen und fügen Sie ein, wie Sie Ihre Aktion begrüßen möchten, sobald sie eingeleitet wurde.
- Klicken Sie auf "Speichern".
Schritt 10: Ihr Python-Webdienst
Lassen Sie uns mit Flask einen schnellen und schmutzigen Python-Server erstellen. Keine Screenshots für diesen Schritt, aber es sollte ziemlich einfach sein.
- Öffnen Sie einen neuen Tab und erstellen Sie ein Konto auf pythonanywhere.com
- Bestätigen Sie Ihre E-Mail.
- Richten Sie Ihre Webanwendung ein, indem Sie auf "Web-Tab öffnen" klicken.
- Klicken Sie auf "Neue Web-App hinzufügen" und wählen Sie "Flask" als Ihr Python-Web-Framework aus.
- Wählen Sie Python 3.6 aus und klicken Sie auf "Weiter".
- Wählen Sie den Pfad aus, in dem sich Ihre "flask_app.py" befinden soll. Ich habe sie direkt in meinem Home-Ordner als "/home/your-username/flask_app.py" abgelegt.
- Kehren Sie zur Hauptseite zurück, indem Sie auf das Python-Logo in der oberen linken Ecke klicken.
- Klicken Sie unter Dateien auf "flask_app.py", um mit der Bearbeitung zu beginnen.
- Wenn der Webtext-Editor geöffnet wird, fügen Sie den folgenden Code ein und klicken Sie auf "Speichern". Die allgemeine Idee ist, dass unser Server abhängig von der geparsten JSON, die von Google Assistant kommt, eine Aktion ausführt (z. B. Lesen oder Schreiben) und dies als Antwort zurückmeldet /Erfüllung, die dem Benutzer vorgelesen werden soll.
- Klicken Sie erneut auf "Web-Tab öffnen" und dann auf den grünen "Neu laden-Button".
- Inzwischen sollten Sie Ihren eigenen Python-Webserver unter "https://your-username.pythonanywhere.com/departures" laufen lassen.
Schritt 11: Testen Sie Ihre Aktion
Okay, du bist jetzt so gut wie fertig. Lassen Sie uns jetzt den gesamten Stack testen und dieses "Hello world"-Beispiel zum Laufen bringen!
- Klicken Sie in der linken Seitenleiste auf "Integrationen".
- Klicken Sie unter der Option Google Assistant auf "Integrationseinstellungen".
- Fügen Sie unter "Impliziter Aufruf" den Namen Ihres Intents hinzu, z. B. "Abflüge", damit dieser direkt ausgelöst werden kann, indem Sie beispielsweise "Hey Google, sprechen Sie mit meinem lokalen Verkehrsplaner über Abfahrten von zu Hause" sagen.
- Aktivieren Sie "Auto-Vorschau"-Änderungen.
- Klicken Sie auf "Test", um eine neue Seite zu öffnen.
- Geben Sie "Mit meinem lokalen Verkehrsplaner sprechen" ein.
- Ihre Aktion sollte aufgerufen werden, die Sie mit einer der zuvor festgelegten Willkommens-Intent-Antworten begrüßt.
- Geben Sie dann "Ich bin bei der Arbeit" ein. Ihr Python-Server sollte kontaktiert werden und die Antwort wird von Google Assistant gelesen.
Cool, nicht wahr? Stellen Sie sich nun vor, was Sie bei der Interaktion mit Sensoren, Aktoren und anderen APIs über Ihren Google Assistant tun können.
Schritt 12: Geben Sie Ihre Aktion frei
Nachdem Sie Ihre Aktion getestet haben und sie in einem guten Zustand ist, ist es an der Zeit, die Liebe mit der Welt oder, wenn dies keinen Sinn ergibt, mit Ihren Freunden und Ihrer Familie zu teilen.
- Gehen Sie zurück zu Ihrer Actions-Konsole und wählen Sie Ihre lokale Verkehrsplaner-Aktion aus.
- Klicken Sie unter "Bereit für die Bereitstellung" auf "Geben Sie die erforderlichen Informationen für die Auflistung Ihrer Aktion im Aktionsverzeichnis ein".
- Geben Sie eine kurze Beschreibung, eine längere Beschreibung, ein kleines Logo, Ihre Kontaktdaten, einen Link zur Datenschutzerklärung (wenn Sie dies nicht öffentlich teilen, setzen Sie einfach einen Link zu Ihrer Website oder so etwas) und eine Kategorie ein.
- Scrollen Sie nach oben und klicken Sie auf "Speichern".
- Klicken Sie in der linken Seitenleiste auf die Option "Freigeben".
- Hier können Sie auswählen, in welchem Zustand sich Ihre Aktion befindet. Wenn Sie die Antwort "Lass uns die Testversion von Mein lokaler Verkehrsplaner holen" nicht hören möchten, müssen Sie eine vollwertige öffentliche Freigabe vornehmen. Dies erfordert jedoch eine Überprüfung durch Google und wird in diesem Tutorial nicht behandelt. Stattdessen können Sie dies immer noch mit bis zu 20 Personen teilen, indem Sie eine Alpha-Version auswählen und sie als Alpha-Tester hinzufügen.
- Fügen Sie Alpha-Tester hinzu, indem Sie ihnen entweder einen Link senden oder ihre E-Mails hinzufügen.
- Klicken Sie auf "ANSENDEN FÜR ALPHA", aktivieren Sie die Kästchen, klicken Sie auf "ABSENDEN" und Sie sind fertig!
Jetzt ist deine Aktion live und kann von dir und deinen Freunden abgerufen werden. Spaß haben!
Wenn Sie sich für den von mir verwendeten Code interessieren, schauen Sie sich das Projekt auf GitHub an.
Empfohlen:
Erstellen Sie benutzerdefinierte Karten für Ihr Garmin GPS - Gunook
Erstellen Sie benutzerdefinierte Karten für Ihr Garmin-GPS: Wenn Sie ein Garmin-GPS haben, das für Wanderungen und andere Outdoor-Aktivitäten entwickelt wurde (einschließlich der GPSMAP-, eTrex-, Colorado-, Dakota-, Oregon- und Montana-Serien, unter anderem), müssen Sie dies nicht tun Begnügen Sie sich mit den nackten Karten, die darauf vorinstalliert waren. E
So erstellen Sie benutzerdefinierte stilisierte Karten mit OpenStreetMap - Gunook
So erstellen Sie benutzerdefinierte stilisierte Karten mit OpenStreetMap: In diesem anweisbaren beschreibe ich einen Prozess, mit dem Sie Ihre eigenen stilisierten Karten erstellen können. Eine stilisierte Karte ist eine Karte, bei der der Benutzer angeben kann, welche Datenebenen visualisiert werden, sowie den Stil definieren, mit dem jede Ebene v
So erstellen Sie benutzerdefinierte PCB-Formen (mit Inkscape und Fritzing) - Gunook
So erstellen Sie benutzerdefinierte PCB-Formen (mit Inkscape und Fritzing): Wenn Sie ein Anfänger sind und eine PCB mit benutzerdefinierter Form benötigen … viel Zeit damit zu lernen, wie man mit fortschrittlicher Software arbeitet, weil man irgendwann ein Board oder anderes macht … das
So erstellen Sie eine benutzerdefinierte Leiterplatte mit einem Lasergravierer mit geringer Leistung - Gunook
So erstellen Sie eine benutzerdefinierte Leiterplatte mit einem Lasergravierer mit geringer Leistung: Wenn es um die Herstellung einer selbstgemachten Leiterplatte geht, finden Sie online mehrere Methoden: von den rudimentärsten mit nur einem Stift bis hin zu den anspruchsvolleren mit 3D-Druckern und anderen Geräten. Und dieses Tutorial fällt auf den letzten Fall! In diesem Projekt habe ich
So erstellen Sie Ihre erste Aktion für Google Home (in 10 Minuten) Teil 1: 10 Schritte
So erstellen Sie Ihre erste Aktion für Google Home (in 10 Minuten) Teil 1: Hallo, Dies ist der erste einer Reihe von Artikeln, die ich schreibe, in denen wir lernen, wie Sie Aktionen auf Google entwickeln und bereitstellen. Eigentlich arbeite ich an „Aktionen bei Google“der letzten Monate. Ich habe viele Artikel durchgesehen, die auf