Wie programmiert man Google Home Assistent Skill? Node.js, Express App und Dialogflow (1/2)

Laut einer Studie von Canalys werden bis Ende 2018 weltweit rund 100 Millionen intelligente Lautsprecher verkauft. [1] Dazu gehören unter anderem Google Home, Amazon Alexa und Apple HomePod. Nach Schätzungen von einer anderen Firma, Tractica wird die Anzahl der Benutzer dieses Typs Geräte bis 2025 voraussichtlich auf eine Milliarde ansteigen [2].  Der gleiche Rapport prognostiziert, dass der ganze Markt bis 2025 für Virtual Digital Assistenten Software  7.7 Milliarden Dollar wert sein wird.

Wir können erwarten, dass die Zukunft der Internetlösungen in vielen Bereichen auf Sprachassistenten basieren wird. Dabei werden vor allem die Firmen profitieren bei denen  zeitkritische Anwendungen die größte Rolle spielen.

Die Sprachassistenten lassen langwierige und zeitraubende manuelle Suchen auf der Tastatur obsolet werden und befreien uns davon, von einer Masse von Inhalten überwältigt zu werden, die uns bei der aktuellen Suche nicht interessieren. Sprachsuche ist der nächste Schritt auf dem Gebiet der Digitalisierung von medialen Inhalten. Es ersetzt die manuelle Suche, die im Moment die vorherrschende Form der Kommunikation zwischen Mensch und Computer darstellt. Der Assistent wird diesen Prozess straffen und ihn direkter und zugänglicher machen. Es ist auch eine Chance für Menschen, die zum Beispiel aus gesundheitlichen Gründen eingeschränkt sind, im Internet zu surfen.

Höchste Zeit daher für Entwickler sich mit der Programmierung von Sprachassistenten zu beschäftigen. In diesem Artikel werden wir die Grundlagen der Programmierung von Google Home Assistant vermitteln und zeigen wie man einen einfachen Skill bauen kann. (Amazon Alexa wurde von uns bereits in einem anderen Blogartikel beschrieben).

Google Assistant wurde vor zwei Jahren auf der Google I/O 2016 Konferenz vorgestellt. Er ist offiziell in 14 Ländern verfügbar und kommuniziert mit seinen Nutzern in acht Sprachen: Französisch, Japanisch, Italienisch, Deutsch, Portugiesisch, Englisch, Spanisch und Koreanisch. Die Anzahl der Sprachen ist noch nicht allzu groß, aber es zeigt auch, in welchen Märkten sich das Unternehmen am meisten konzentriert. Aus diesem Grund wurde während der diesjährigen I/O Konferenz 2018 mitgeteilt, dass Google Home Assistant bis Ende des Jahres in 52 Ländern verfügbar sein wird und mit den Nutzern in 25 Sprachen kommunizieren kann.

Im weiteren Teil des Artikels werden wir zeigen, wie man einen einfachen Google Home Assistant Skill für Radfahrer schreibt, der uns sagen wird, welches Wetter zu erwarten ist.

1.

Erstellen Sie zuerst ein neues Projekt in Google Actions https://developers.google.com/actions/

(Dazu benötigen Sie ein Google Konto). Klicken Sie „add/Import Project“ und geben Sie dem Projekt einen Namen (der Name ist irrelevant) und klicken Sie dann auf „create project“.

Auf der nächsten Seite einfach „skip“ auswählen.

In Actions definieren Sie die Invokation für den Skill, d.h. wie man den Skill aufrufen kann.

Sie haben ihr erstes Projekt erstellt. Der Simulator ist noch nicht aktiv.

Deswegen müssen wir DialogFlow https://console.dialogflow.com öffnen.

Erstellen Sie einen Agenten.

https://console.dialogflow.com/api-client/#/newAgent

Vergessen Sie nicht ihr erstelltes Projekt von Google Actions in DialogFlow zu importieren. Der Name in Dialogflow ist frei wählbar.

Im nächsten Schritt fügen Sie ein neues Intent „welcomeIntent“ hinzu. Intent ist quasi eine Funktion darauf Google Home Assistant reagiert wird.

6.

Wenn Sie „welcomeIntent“ selbst in ihrem Code definieren möchten, müssen Sie „Enable webhook call for this intent“ aud der Ende der Seite aktivieren und „save“ klicken.

Fügen Sie noch einen Intent hinzu, der die Wetterberichte holt. Geben Sie diesem Intent den Namen „getWeatherForcastIntent“.

Als Traning Phrases fügen Sie die folgenden Sätze ein:

Tell me the weather for Essen

Berlin

DialogFlow wird Essen automatisch als @sys.geo-city (also als einen Parameter) definieren. So können Sie in dem Skill nach allen Städten in der Welt fragen.

Zusätzlich müssen Sie auch Fulfillment als „Enable webhook call for this intent“ aktivieren.

Clonen Sie danach bitte mein Git Projekt:

https://github.com/falent/googleHomeAssistantExpressNodeJS

9.

Öffnen Sie 2 Terminal Tabs.

Im ersten Tab führen Sie folgenden Befehl aus:

cd googleHomeAssistantExpressNodeJS

./ngrok http 5000

Ngrok sichert, dass ihr Rechner ein Server für ihren Skill ist.

Sie bekommen eine zufällige Adresse:

https://5f04bf42.ngrok.io

  1. Wenn Sie kein node.js haben, installieren Sie es https://nodejs.org/en/download/ und dazu noch nodemon

npm install -g nodemon

(https://www.npmjs.com/package/nodemon es hilft uns die Änderungen sofort zu berücksichtigen)

11.

Starten Sie den Skill

cd googleHomeAssistantExpressNodeJS

nodemon index.js

Jetzt können wir zum Dialogflow zurückkommen und „Fullfilment“ Addresse einfügen. Es führt zu ihrem Rechner. In meinem Fall war es:

https://5f04bf42.ngrok.io/

Und „save“

Am Ende gehen Sie in Dialogflow zu Integrations und wählen Sie Google Assistant.

Erstellen Sie explicit eine Invocation als welcomeIntent!

Jetzt können Sie Ihren Skill im Actions Simulator testen. Klicken Sie unten Test.

Sie können auch ihr Skill mit Google Home Lautsprecher testen.

Für diesen Google Home Assistant Skill haben wir node.js als Programiersprache gewählt, weil es relativ einfach ist. Wir haben uns für die Node.js Express App entschieden, weil man die Applikation überall einfach als web-app hosten kann (AWS, Firebase, Heroku oder alle node.js https Servers)

In dem nächsten Blogartikel schreiben wir wie man unseren Skill bei Heroku deployen kann.

Falls Sie mehr über die Programmierung von Google Home Assistant lernen wollen, laden wir Sie herzlich zu unserem Google Home Assistant Hackathon in München ein. Wir planen ein Event im Oktober oder im November 2018 zu veranstalten. Alle Termine finden Sie bald in unserem MeetUp Profile:

https://www.meetup.com/Munchen-Coding-Dojo-Meetup/

Tomasz Krajewski und Christina Resing

References:

[1] https://www.canalys.com/newsroom/smart-speaker-installed-base-to-hit-100-million-by-end-of-2018

[2] https://www.tractica.com/newsroom/press-releases/enterprise-virtual-digital-assistant-users-to-surpass-1-billion-by-2025/

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

%d Bloggern gefällt das: