[JAVA] Watson Assistant (ehemals Conversation) auf Android

Gradle-Einstellungen Für Android Studio Fügen Sie Folgendes zu gradle hinzu (App.module)

implementation 'com.ibm.watson.developer_cloud:android-sdk:0.5.0'
implementation 'com.ibm.watson.developer_cloud:java-sdk:6.14.0'

0.5.0 scheint ohne zu funktionieren.

Da es Kommunikation gibt, fügen Sie bitte Folgendes zu AndroidManifest.xml hinzu. <uses-permission android:name="android.permission.INTERNET" />

Der Einfachheit halber verwenden wir die synchrone Kommunikation, daher sollte vor dem Kommunikationsprozess eine NetworkOnMainThreadException ausgegeben werden. Um dies zu vermeiden, fügen Sie die folgende Beschreibung hinzu.

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}

Watson Assistant hat v1 und v2. Die jeweils verwendete API ist unterschiedlich. Überprüfen Sie zunächst, welche Version auf dem Einstellungsbildschirm verwendet werden soll. Das Folgende ist eine Erklärung für den Betrieb mit v1.

[API Key] Die Authentifizierung ist etwas kompliziert. Es scheint, dass es früher durch Benutzername und Passwort authentifiziert wurde, aber jetzt wurde die Spezifikation in IAM geändert und die Authentifizierung erfolgt über den API-Schlüssel. Sie können Watson über das IBM Cloud-Dashboard konfigurieren und den IAM-Schlüssel auf der Konfigurationsseite des Zieldienstes (Assistent) anzeigen. Wir werden diesen Schlüssel zur Authentifizierung verwenden. Wenn jemand anderes ihn verwendet, wird Ihr Konto möglicherweise belastet.

[EndPoint] EndPoint wird als Set mit dem IAM-Schlüssel verwendet. Es ist eine URI, auf die zugegriffen werden kann, aber im Fall von Assitant gibt es mehrere Kandidaten. Wenn Sie es nicht wissen, können Sie es auf der Einstellungsseite überprüfen. Wenn der Server Washington DC ist https://gateway-wdc.watsonplatform.net/assistant/api Es wird sein.

[WorkSpace] Es fiel mir schwer, das zu finden, egal wo ich danach suchte. In IBMs Hands-On soll es auf der Einstellungsseite beschrieben werden, aber diese Spalte fehlt auf der aktuellen Seite und kann nicht bestätigt werden. Gehen Sie zu Skill-> Zielinstanz erstellen, um das Tool zu starten, mit dem die Assistentenkonversation konfiguriert wird. ~~ Die WorkSpace-ID ist zu diesem Zeitpunkt in der URI des Browsers ausgeblendet. Es befindet sich in ~ workspaces / here / build ~. ~~ Nachtrag: Ich konnte dies mit dem 3-Punkt-Punkt bestätigen.> API-Detail oben rechts im Rahmen jeder Fertigkeit auf dem Bildschirm anzeigen, um die erstellte Fertigkeit auszuwählen. </ font>

Einfache Probe

SampleAssistant.java


private static final String WORKSPACE_ID = "";
private static final String IAM_Key = "";
private static final String URI = "";

~Unterlassung~

String sendMessage = "Hallo";  //Zeichenfolge, die an Watson gesendet werden soll
IamOptions iamOptions = new IamOptions.Builder().apiKey(IAM_Key).build();
Assistant service = new Assistant("2018-09-20", iamOptions);
service.setEndPoint(URI);

InputData input = new InputData.Builder(sendMessage).build();

MessageOptions options = new MessageOptions.Builder(WORKSPACE_ID)
  .input(input)
  .build();

MessageResponse response = service.message(options).execute();

System.out.println(response);

Wenn nichts unternommen wird, befindet sich die Reaktion immer am Dialogstammknoten. Es scheint verschiedene Möglichkeiten zu geben, die Sitzung fortzusetzen. Am einfachsten ist es jedoch, den in der Antwort von Watson erhaltenen Kontext an die nächste Anfrage weiterzuleiten.

Context watsonContext = response.getContext();  //Und erhalten

SampleAssistant2.java


MessageOptions options;
if(watsonContext != null) {
    options = new MessageOptions.Builder(WORKSPACE_ID)
      .input(input)
      .context(watsonContext)  //Weiter zur nächsten Anfrage
      .build();
}else{
    options = new MessageOptions.Builder(WORKSPACE_ID)
    .input(input)
    .build();
}
MessageResponse response = watsonAssistant.message(options).execute();
watsonContext = response.getContext();

Jede von IBMs Watson bereitgestellte Funktion enthält Erklärungen (Englisch) mit Beispielcode für verschiedene Sprachen. API-Referenz V1 https://console.bluemix.net/apidocs/assistant API-Referenz V2 https://cloud.ibm.com/apidocs/assistant-v2 https://www.ibm.com/cloud/watson-assistant/

IBM Tutorial (Japanisch) https://cloud.ibm.com/docs/services/assistant?topic=assistant-getting-started#getting-started

Watson kann innerhalb eines bestimmten Bereichs kostenlos verwendet werden, ohne eine Kreditkarte zu registrieren. Warum berühren Sie es nicht, um ein Gefühl für die Nutzung von KI-Diensten zu bekommen? Insbesondere wird der Assistent empfohlen, da er konzeptionell leicht zu verstehen ist und auf verschiedene Websites angewendet werden kann. Es scheint ein Modul für Wordpress zu geben.

Recommended Posts

Watson Assistant (ehemals Conversation) auf Android
Gehen wir zu Watson Assistant (ehemals Conversation). ④ Verknüpfung mit Java-Logik
Gehen wir mit Watson Assistant (ehemals Conversation). ② Erstellen Sie einen Chatbot für die Hotelreservierung
Los geht's mit Watson Assistant (ehemals Conversation) ⑤ Erstellen Sie einen Chatbot mit Watson + Java + Slack
[Android] Hinweise zu XML
Bis das Google Assistant-Beispiel auf Android Things ausgeführt wird
Passen Sie die Listenansicht auf Android an
Mehrteilige Übertragungsbibliothek auf Android
Verwenden Sie die serielle Kommunikation unter Android
ROS App Entwicklung auf Android
Verwenden Sie nativen Code unter Android