DevOps im Startup

In agilen Umgebungen wie Startups sind starre Trennungen von Softwareentwicklung und IT Operations eher selten anzutreffen. Doch auch viele große Unternehmen wechseln immer öfter auf agile Prozesse und einem dazu passenden IT Umfeld. DevOps ermöglicht die Vernetzung der klassischen Silos. Durch die Einführung intelligenter und automatisierter Prozesse lässt sich die Auslieferung der Software und dessen Qualität erheblich steigern.

Die gängigen DevOps Prozesse und Tools decken die Bereiche Planung, Entwicklung, Build, Test, Release, Deployment, Operations und Monitoring ab. Welche Prozesse dabei automatisiert werden sollen und zu welchem Zeitpunkt hängt maßgeblich vom Reifegrad des Unternehmens und der verfügbaren Zeit ab. Dabei muss die DevOps Umgebung am Anfang nicht so perfekt optimiert sein wie bei Netflix deren Automatiserungsgrad einzigartig ist. Für die Einführung der Tools und Prozesse muss Zeit aufgewendet werden welche dann in der Entwicklung fehlt. Gerade bei Startups die noch ihr MVP (Minimum Viable Product) am Markt erproben wäre eine vollständige Automatisierung noch verfrüht. Dennoch hilft eine frühzeitige Einführung auch hier die Produktivität und Qualität zu erhöhen. Exemplarisch möchte ich die Umsetzung meines letzten Stacks für ein schnell wachsendes Startup Unternehmen beschreiben.

Ausgangslage und Anforderungen

Das MVP ist am Markt erprobt und das Team hat bereits einige Entwickler an Board. Die primären Anforderungen sind somit die Qualität der Software erhöhen, idealerweise durch Testautomatisierung und Code-Quality-Standards. Neue Features müssen jederzeit und von jedem Mitarbeiter getestet werden können bevor diese in die Produktionsumgebung kommen. Somit müssen mehrere Testumgebungen verfügbar sein. Im Hinblick auf weitere neue Entwickler sollen diese schnell produktiv sein. Außerdem müssen alle Umgebungen zur Nachstellung von Problemen gleichartig aufgesetzt und konfiguriert sein.

A fool with a tool is still a fool.

Ein weiteres wichtiges Kriterium ist eine einfache Wartbarkeit und Administration. Probleme und Anforderungen sollen nicht mit einem Zoo aus tausend Tools erschlagen werden. Dabei ist eine wichtige Frage welche Programme selber gehostet werden sollen und wo ein Zukauf bzw. ein SaaS Modell sinnvoll ist. Natürlich gilt es den Datenschutz bei letzterem zu wahren. Selber administrierte Tools müssen immer auf dem aktuellsten Softwarestand und mit sicheren Konfigurationen bestückt sein.

Tools

Ansible

Eines der zwei zentralen Tools ist hier Ansible geworden. In den sogenannten Playbooks und den Konfigurationsdateien lässt sich die gesamte Umgebung definieren. Ansible verfolgt dabei den Ansatz, dass der Endzustand beschrieben wird. Die Definition für den Applikationsserver sieht dann also beispielsweise wie folgt aus.

  • [AppServer]
    • Server1
    • Server2
  • [AppServer Installation]
    • nginx: installiert
    • PM2: gestartet
    • DatendankVerbindung: DbServerCluster

Ich nutze Ansible sogar um die Server direkt bei dem Cloud Anbieter aufzusetzen. Somit gibt es zwei Ansible Projekte. Ein Projekt um die gesamte Serverumgebung inkl. Datenbankservern, VPNs, Firewall Regeln, SSH-Keys und Object Storages zu verwalten und ein zweites Projekt welches dann für jeden Server die Software und deren Konfiguration beschreibt. Durch die einfache Konfiguration können somit innerhalb weniger Minuten beliebig viele gleichartige Integrations-/Testumgebungen aufgebaut werden. Alle Umgebungen werden außerdem automatisch in die Monitoring- (Icinga/Nagios) und Loggingumgebung (Graylog 2) eingebunden. Ich habe mich bewusst gegen Datadog und ähnliche SaaS Dienste entschieden weil die Administration und Konfiguration von Tools wie Graylog, Icinga, Elasticsearch und vielen mehr mit Ansible ein Kinderspiel ist. Wichtig sind hier nur zuverlässige und sichere Konfigurationsdefinitionen und sauber abgetrennte Netzwerkbereiche und Firewall Regeln.

Jenkins

Die zweite Zentrale Software ist Jenkins. Dieser löst Deploybot ab um mehr Kontrolle über den gesamten Release Prozess zu haben. Jenkins kümmert sich um mehrere Teile. Zum einen prüft er sämtliche Check-Ins die auf GitHub getätigt werden. Dies umfasst die Prüfung der Code Qualität (Linting, SonarQube, …). Zum anderen führt Jenkins Unit Tests durch, startet die API Tests mit postman bzw. newman und führt die User Acceptance Tests von Selenium aus. Abhängig von den gewählten Branches automatisiert Jenkins auch das Deployment. Sämtliche commits auf den develop branch führen zu einem Deployment auf die Integrationsumgebung. Alle master commits müssen von mindestens zwei Entwicklern und Jenkins selber geprüft werden und führen dann zu einem Deployment auf die Produktionsumegbung.

Jeder Entwickler hat darüber hinaus jederzeit die Möglichkeit beliebige Branches auf Testumgebungen zu deployen. Dabei kann außerdem festgelegt werden welche Testdaten initial in den Datenbankservern zur Verfügung gestellt werden. Die Testumgebungen werden darüber hinaus in gesonderten virtuellen Netzwerken aufgebaut.

Produktion als lokale Entwicklunsumgebung

Ansible funktioniert auch mit Vagrant. Sämtliche Konfigurationen die für die Serverumgebungen definiert sind funktionieren somit auch lokal. Jeder Entwickler hat daher eine Umgebung deren Softwarestände und Konfiguration 1:1 mit der Produktion übereinstimmen. Lediglich die Datenbank ist in den Entwicklungsumgebung lokal anstelle von dedizierten Servern. Die lokalen Umgebungen können jederzeit auf Knopfdruck neu erstellt werden und erhalten direkt Testdaten. Neue Mitarbeiter lassen sich somit innerhalb von ca. 30 Minuten arbeitsfähig einbinden!

Zusammenfassung

Durch die Automatisierung des Aufbaus der lokalen Entwicklungsumgebung bis hin zur vollständigen Serverumgebung und der Automatisierung der Deployments findet jeder Entwickler jederzeit gleichartige Umgebungen vor. Fehler können lokal nachgestellt werden und notwenige Konfigurationsänderungen werden versioniert und auditiert zentral verwaltet. Jeder Entwickler kann jederzeit Änderungen von Code und Infrastruktur nachvollziehen und überprüfen.

 

Bildquelle: pixabay.com

Digitaler Minimalismus – Das papierlose Büro und Heim

Im Lauf der Zeit sammelt sich ein riesiger Berg Papier im Haushalt an. Darunter fallen Ausdrucke von Rechnungen, Verträgen, Skizzen und Notizen. Neben dem unschönen Effekt von übervollen Ordnern und Schränken sorgt diese Menge auch für eine fehlende Übersicht und lange Zeit für die Suche nach den richtigen Dokumenten. Das papierlose Büro oder auch das papierlose Heim kann hier Abhilfe schaffen. Dabei ist das papierlose Büro doch überhaupt nichts neues, nur hat es sich bisher nicht durchgesetzt. Doch die Digitalisierung ändert einiges und ermöglicht damit den Papier Minimalismus.

Klappt doch nicht?!

Das papierlose Büro wird seit Jahren versprochen und doch sammeln sich die Papierstapel weiter an. Es gibt aber mittlerweile einige Änderungen die sich diesem möglichen Ideal annähern. In den Zeiten von eCommerce und Smartphones gibt es durchaus schnelle und einfache Methoden alles zu digitalisieren. Die einzelnen Bereiche werden hier betrachtet und auch Möglichkeiten zur sinnvollen Datenablage.

Digitalisieren der Inhalte

Hier sind die wichtigsten Varianten und Quellen von Dokumenten beschrieben und wie sich diese erfassen lassen.

E-Mail und PDF

Immer mehr Einkäufe erfolgen über das Internet und die Onlinehändler haben sich bereits in vielen Bereichen von der Papiervariante der Rechnung verabschiedet. Händler wie beispielsweise Amazon verschicken ihre Pakete ohne eine beiliegende Rechnung. Diese kann nach dem Versand direkt über den Kundenbereich heruntergeladen werden. Bei anderen Plattformen kommt die Rechnung oft bereits per E-Mail. Somit lassen sich diese Rechnungen direkt digital archivieren.

Smartphone

Im Supermarkt nehmen viele Menschen den Kassenbon mit um einen Überblick über die Ausgaben zu behalten. Oft landet der Zettel dann im Portemonnaie und verblasst über die Zeit. Deutlich leichter ist hier die Nutzung einer der unzähligen Scanner Apps aus den Android und Apple App Stores. In allen Modernen Smartphone sind die Kameras ausreichend aufgelöst um klare Fotos von den Belegen aufzunehmen. Ebenfalls können normale Rechnungen auf Papier so erfasst werden. Die Bilder lassen sich dann später sichten und archivieren.

Scanner

Für eine große Menge von Dokumenten oder für das Erfassen von Texten in digitaler Form eignen sich Dokumentenscanner. Einfache Versionen ermöglichen das Einschieben der Dokumente und am Ende erfolgt die Ausgabe als Bild oder PDF. Die größeren Versionen umfassen neben dem automatischen Einzug von vielen Seiten auch den Duplex Scan, also die automatische Erfassung beider Seiten. Außerdem können diese Geräte mittels Texterkennung (OCR) durchsuchbare PDF Dateien erzeugen. Das ist besonders praktisch falls über große Datenbestände spezielle Inhalte auffindbar sein sollen.

Dokumentenablage

Die richtige Struktur der Dokumentenablage endet schnell in einer eigenen Wissenschaft. Sollen alle eigenen Rechnungen in einen eigenen Ordner? Jeder Händler? Was ist mit Verträgen? Mein Tipp ist hier mit einer einfachen Struktur starten. Aufteilen in Rechnungen (alles was zu einem gekauften Produkt gehört und irgendwann irrelevant wird) und sonstige Dokumente. In jedem der Ordner gibt es dann die Dokumente mit einer sinnvollen Namenskonvention. Das ist idealerweise etwas wie JAHR\MONAT\TAG_NAME.xyz oder JAHR\MONAT\TAG\NAME\HINWEIS.xyz. Eine Rechnung von Amazon wäre dann also etwas wie 2017\12\12\Amazon\Weinachtseinkauf.pdf oder ähnliches. Oft fallen weniger Dokumente an als man glaubt. Andernfalls können je nach Bedarf weitere Unterordner erstellt werden.

Niemals sollten die Daten jedoch nur auf einem Gerät liegen! Eine Strategie zur Datensicherung ist unabdingbar!

Jetzt dürfte dem papierlosen Büro und Heim kein Hindernis mehr im Weg stehen! Frohes Erfassen!

 

Bild: pixabay.com

Digitaler Minimalismus – Accounts löschen

Was der Frühjahrsputz im Haushalt ist, dass ist das Löschen von Accounts im digitalen Leben. Es geht viel zu schnell und einfach im Internet – Hier eine Bestellung im Onlineshop, da eine Anmeldung auf einem sozialen Netzwerk und dann noch ein paar Anmeldungen in diversen Foren. Plötzlich ist man nach einem Jahr auf einigen Dutzend oder Hunderten Webseiten angemeldet. Grundsätzlich problematisch ist dies dann, wenn die Plattformen nicht mehr genutzt werden und später möglicherweise einem Hackerangriff zum Opfer fallen. Dann sind viele persönliche Daten im Netz. Die Lösung: Accounts löschen – ganz einfach ist das aber nicht immer.

Accounts löschen

Eigentlich muss jede Webseite in Deutschland eine Möglichkeit zur Verfügung stellen um den Account zu löschen. Da viele Webseiten aber im Ausland beheimatet sind oder sich einen Spaß daraus machen diese Option zu verstecken ist das Löschen oft nicht ganz einfach. Idealerweise erstellt man sich eine Liste mit allen Seiten auf denen ein Account besteht (noch besser ein sicherer Passwortspeicher mit individuellen Daten) und pflegt diese regelmäßig. Danach erfolgt die Sichtung der Inhalte ein oder zweimal im Jahr. Jede Webseite die nicht besucht wurde oder nicht mehr relevant ist kommt auf die Liste der zu löschenden Accounts.

Sind alle Accounts bekannt die zu löschen sind dann bietet sich ein Besuch auf der Webseite an. Oft lässt sich unter Menüpunkten wie „Profil“ oder „Account“ ein Button oder Link zum Löschen finden. Alle Webseite die diese Option nicht direkt bieten lassen sich mittels Google klären. Der ideale Suchbegriff ist hierbei „Account löschen NAME_DER_WEBSEITE“. In den Treffern befinden sich die Links zum Löschen oder mindestens hilfreich Anleitungen dafür.

Abos prüfen

Wenn regelmäßig Verträge geschlossen wurden beispielsweise bei Spotify, Telekom, Apple, Audible, usw. können diese Abos oft direkt beim Hersteller gekündigt werden. Andernfalls helfen Webseiten wie Aboalarmsepastop.eu oder check24 bei der Erinnerung an die Kündigungsfristen. Die Accounts sind dadurch aber nicht automatisch gelöscht! Dies muss im Anschluss wie oben beschrieben erfolgen!

 

Bildquelle: pixabay.com

IOTA, Bitcoin und Ethereum kaufen

Derzeit vergeht kein Tag an dem nicht irgendeine Webseite über Kryptowährungen (insbesondere Bitcoin) und deren neue Rekorde und Gefahren berichtet. Viele warnen davor, dass es sich hier um eine große Blase handelt die irgendwann platzen muss. Die Muster ähneln den letzten Entwicklungen von Aktienkursen kurz vor den großen Abstürzen der Geschichte. Trotzdem beflügeln die Zuwächse von 2700% und mehr den Traum von vielen Menschen um schnell reich zu werden. Wer sich auch (noch) an dem Hype beteiligen möchte und alles als großes Glücksspiel sieht hat derzeit viele Möglichkeiten die Währungen zu kaufen. Ein paar Hürden sind dabei aber zu überwinden.

DISCLAIMER: Um es noch einmal deutlich vorab zu sagen. Der Kurs der Kryptowährungen ist aktuell nicht vorauszusagen. Entweder verhundertfacht sich alles noch und es gibt riesige Gewinne zu holen oder das ganze System crash unvermittelt. Der Kauf von Bitcoin und Co. sollte daher auch nur mit Geld gemacht werden welches man auch für ein gutes Abendessen oder einem Besuch im Casino erübrigen kann. Es ist nach aktuellen Einschätzungen keine Geldanlage! Der Artikel ist keine Finanzberatung und Gewinne aus Spekulationen sind natürlich zu versteuern!

Genug der warnenden Worte. Jetzt geht es los mit dem Kauf der Währungen. Dabei ist der Erwerb des klassischen Bitcoins (BTC) und Ethereum (ETH) am einfachsten. Der Weg zur Währung IOTA geht über ein paar Zwischenstationen. Bei allen vorgestellten Wegen ist etwas Zeit einzuplanen. Sowohl die Identifikation auf den Plattformen (glücklicherweise nur einmalig) und der Transfer bzw. deren Bestätigung dauert ein paar Minuten.

Im Folgenden sind ein paar Portale vorgestellt über die ich meine Transaktionen abwickle. Wichtig ist hierbei zu wissen, dass es aufgrund des Booms auch eine Explosion an Handelsplätzen gibt. Einige davon sind durchaus mit Skepsis zu betrachten und manchen Börsen sind erhebliche Geldmengen abhandengekommen. Große Geldbeträge sollten daher immer nur in lokalen Wallets oder auf dem Papier liegen (dazu ggf. in einem weiteren Artikel mehr)!

bitcoin.de

Die Webseite bitcoin.de* ist ein Bitcoin-Marktplatz mit Sitz und Entwicklerteam in Deutschland. Neben Bitcoins können dort auch „Bitcoin Cash“ und Ether erworben werden. Die Registrierung ist sehr einfach mittels E-Mail-Adresse und einem einmaligen Passwort je Anmeldung durchzuführen. Danach wird einmalig das Bankkonto durch eine Überweisung verifiziert. Über die Funktion Kauf können die verschiedenen Währungen erworben werden. Dies erfolgt so, dass die gewünschte Menge eingetragen wird. Nach einigen Sekunden erscheinen dann mögliche Angebote. Durch den Klick auf Kauf können diese dann erworben werden. Die Bezahlung erfolgt per Überweisung direkt an den Verkäufer.

In der nicht verifizierten Version können maximal 2500€ transferiert werden und viele Angebote stehen nur Personen mit höheren Bewertungen zur Verfügung. Dadurch sind die Kurse für „Standardbenutzer“ mitunter schlechter. Es gibt zwei Wege dies zu verbessern. Entweder mittels Ident-Verfahren (Post-ident oder Video-ident) oder durch ein Konto bei der Fidor Bank. Beim Video-ident Anbieter häufen sich zum Zeitpunkt dieses Artikels gerade die Meldungen über extrem lange Wartezeiten auf den Prozess. Ein Konto bei der Fidor Bank ist kostenlos!

Coinbase

Die Webseite Coinbase* ermöglicht das Kaufen von Litecoin, Bitcoin und Ethereum mittels Bankeinzug oder Kreditkarte. Die Kreditkarte kann nach einem sehr kurzen Verifikationsprozess mit bis zu 500€ pro Monat für Transaktionen genutzt werden.

Zwischendurch gibt es dort Hinweise auf langsame Transfers „ETH Delays – We’re currently experiencing delays in processing some ETH transactions. Recent or new outbound transactions may remain pending longer than expected.“.

Bitfinex

Bei Bitfinex handelt es sich um eine der größten (Bitcoin) Handelsplattformen. Hier gibt es neben den klassischen Kryptowährungen auch den besagten IOTA, NEO, Monero, ZSCAH, Ripple und noch viele mehr. Dabei lassen sich viele Coins aus US-Dollar und Bitcoin eintauschen. Für manche Währungen gibt es auch die Möglichkeit Ethereum einzutauschen. Der Verifikationsprozess ist extrem langsam und umfangreich. Idealerweise ist Bitfinex also die Zwischenstation für den Handel mit den einzelnen Währungen. Über die Wallets (quasi die Konten) können von anderen Plattformen die Währungen übertragen werden (Transaktionsgebühren beachten!) und dann gehandelt werden. Zum Auszahlen lassen sich Bitcoins und Ethereum dann wieder zurück transferieren.

Kaufen

Bitcoins und Ethereum lassen sich zusammengefasst also sehr leicht bei bitcoin.de per Überweisung oder bei Coinbase mittels Kreditkarte und Bankeinzug erwerben oder auszahlen. Bei IOTA müssen die erworbenen Bitcoins oder Ethereum an die Wallets auf Bitfinex übertragen werden. Danach lassen sich diese über die Börse in IOTA traden. Sowohl bei den einzelnen Käufen als auch bei den Transfers fallen Transaktionskosten an!

Übersicht behalten und Steuern

Über mehrere Webseiten verteilt ist eine Übersicht nicht so einfach. Mit Hilfe von CoinTracking* lassen sich die Daten aller Käufe, Verkäufe und Transaktionen importieren. Dies erfolgt entweder per CSV Datei, wobei für jede Seite eine kurze Anleitung existiert oder per API, dies jedoch nur in der bezahlten Version. Als besonderes Feature können Steuer-Reports generiert werden. Hierbei sind die einzelnen Gewinne der Coins ausgewiesen mit verschiedenen Verrechnungsmodellen. Eine enorme Zeitersparnis bei der Steuererklärung.

Mehr Informationen

Die Webseite bitcoin.de betreibt ein deutschsprachiges Forum unter Coinforum.de.

* Der Link ist ein Affiliate Link. Für dich als Besucher entstehen keine Kosten oder Nachteile. Ich erhalte eine kleine Provision die zur Erhaltung der Webseite beiträgt. Vielen Dank!

Spracherkennung, Chatbot mit Watson und Raspberry Pi

IBM stellt in seiner Bluemix Cloud-Plattform als Service (PaaS) unter anderem die Dienste von Watson Analytics zur Verfügung. Mit Hilfe der Services Speech to Text (Spracherkennung), Conversation (Chatbot) und Text to Speech (Sprachausgabe) lässt sich auf dem Raspberry Pi ein intelligentes System erschaffen. Durch die tiefere Integration der Dienste können hiermit auch Haussteuerungen oder Kundeninformationssysteme (KIS) realisiert werden.

Grundlage ist neben der Anschaffung eines Raspberry Pi (Einkaufsliste) mit allen relevanten Komponenten, die komplette Einrichtung des Systems. Darauf baut die Installation, der für Watson notwendigen Teile, auf. Zusätzlich ist ein USB Mikrofon notwendig und Lautsprecher oder ein Fernseher mit HDMI Anschluss.

HINWEIS: Die hier beschriebene Installation ist auf Deutsch. Leider sind nicht alle Watson Dienste für die deutsche Sprache erhältlich. Insbesondere die Spracherkennung funktioniert noch nicht auf Deutsch.

Mikrofon prüfen

Bei dem Raspberry Pi 3 funktioniert der Playstation Eye Treiber direkt.

$ lsusb
Bus 001 Device 006: ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye

Zum Testen reicht das Aufnehmen und Abspielen einer kurzen Datei. Hierbei helfen die Advanced Linux Sound Architecture (ALSA) Tools.

$ sudo apt-get install alsa-base alsa-utils

$ arecord -D plughw:1,0 -f cd test.wav
$ aplay test.wav

Speech to Text (Spracherkennung)

Der folgende Teil basiert auf den Beispielen des TJBot welcher von IBM selber zur Verfügung gestellt wird.

Der erste Schritt besteht darin, das Node.js Repository einzubinden. Dies ermöglicht die Installation der aktuellsten Version. Danach lässt sich der Code von Github.com auschecken und die Abhängigkeiten installieren.

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs

$ git clone https://github.com/ibmtjbot/tjbot.git
$ cd tjbot/recipes/speech_to_text
$ npm install

Jetzt ist ein guter Zeitpunkt erreicht einen (kostenlosen) Bluemix Account anzulegen. Der Prozess ist selbsterklärend. Andernfalls gibt es ein kleines PDF dazu. Nach der Einrichtung des Accounts ist unter Services – Watson – Text to Speech ein neuer Dienst anzulegen. In der Einstellung des Services stehen unter dem Punkt Serviceberechtigungsnachweise – Berechtigungsnachweise anzeigen die Zugangsdaten. Diese sind in der config.js zu hinterlegen.

Der Beispielcode sieht das Einschalten einer mehrfarbigen LED von Adafruits vor. Ich habe diese LED nicht und war nur an der Ausgabe des Dienstes interessiert. Ich habe daher eine Kopie der Hauptdatei erstellt und den Code innerhalb der LED Steuerung auskommentiert. Nach dem Starten lauscht der Raspberry Pi auf die Sprache und wartet bis zur ersten Sprechpause. Die erkannten Sätze erscheinen dann in der Textausgabe.

$ vi config.js

$ cp stt.js stt_console.js
# Licht Code auskommentiert
$ sudo node stt_console.js

Update: Der vereinfachte Code ohne die Lichtsteuerung kann jetzt in meinem Github.com Projekt heruntergeladen werden.

$ git clone https://github.com/spech66/watson_speech_to_text.git
$ cd watson_speech_to_text
$ npm install
$ vi config.js
$ sudo node speech_to_text.js

Chatbot und Text to speech (Sprachausgabe)

Mit den beiden zusätzlichen Services ist das Erstellen von interaktiven Systemen sehr einfach. In dem oben bereits ausgecheckten Code findet sich das Verzeichnis conversations. Hier lauscht der Raspberry Pi auf ein Aktivierungswort (Watson als Default) und schickt den Satz nach dem Schlüsselwort an den Conversations Dienst, dieser ermittelt eine sinnvolle Antwort und schickt den Text zurück. Der Text kann dann durch den Sprachausgabedienst in eine Audiodatei umgewandelt werden, die sich dann abspielen lässt. Zuerst die Services Text to Speech und Conversation aktivieren. Danach sind in beiden Services wieder die Zugangsdaten hinterlegt. Diese gehören in die config.js Datei.

$ cd ~/crmcopter/tjbot/recipes/conversation
$ vi config.js

Damit eine sinnvolle Konversation entstehen kann muss noch ein Dialog angelegt werden. In dem Service Conversatin gibt es den Button „Launch Tool“, hier gelangt man zum eigentlich Designer. Nach dem Anlegen eines Workspaces kann unter der Übersicht – Workspaces – View Details die Workspace ID kopiert werden.

Intents

Mit den Intents sind Schlüsselwörter und Sätze für den folgenden Dialog zu definieren. Für das Beispiel sollten mindestens zwei Intents („Hello“ und „Goodbye“) erstellt werden. Jeder Intent erhält dazu eine Reihe von möglichen Alternativen Worten und Sätzen (siehe Bild unten).

Dialoge

Dialoge verknüpfen Intents zu einer Verknüpfung von Aktionen und Reaktionen. Mit der Hilfe von If Abfragen können die Intents ermittelt werden (siehe Bild). Die Reaktion definiert die Rückgabe des Textes des Service.

Starten

    sudo node conversation.js

WATSON und TEXT sagen

IBM Watson Dialog
IBM Watson Dialog
IBM Watson Intents
IBM Watson Intents
IBM Bluemix Watson Raspberry Pi
IBM Bluemix Watson Raspberry Pi