[JAVA] Watson Assistant (anciennement Conversation) sur Android

paramètres de gradle Pour Android Studio Ajoutez ce qui suit à gradle (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 semble fonctionner sans lui.

Puisqu'il y a communication, veuillez ajouter ce qui suit à AndroidManifest.xml. <uses-permission android:name="android.permission.INTERNET" />

Par souci de simplicité, nous utiliserons la communication synchrone, donc une exception NetworkOnMainThreadException doit être émise avant le processus de communication. Pour éviter cela, ajoutez la description suivante.

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

Watson Assistant a v1 et v2. L'API utilisée pour chacun est différente. Tout d'abord, vérifiez quelle version utiliser sur l'écran de réglage. Ce qui suit est une explication lors de l'utilisation de la v1.

[API Key] L'authentification est un peu compliquée. Il semble qu'il était auparavant authentifié par nom d'utilisateur et mot de passe, mais maintenant la spécification a changé en IAM et l'authentification est effectuée par clé API. Vous pouvez configurer watson à partir du tableau de bord IBM Cloud et vous pouvez voir la clé IAM sur la page de configuration Target Service (Assistant). Nous utiliserons cette clé pour nous authentifier, donc si quelqu'un d'autre l'utilise, votre compte pourra être débité.

[EndPoint] EndPoint est utilisé en combinaison avec la clé IAM. C'est un URI auquel accéder, mais dans le cas d'Assitant, il y a plusieurs candidats. Si vous ne savez pas, vous pouvez le vérifier sur la page des paramètres. Si le serveur est Washington DC https://gateway-wdc.watsonplatform.net/assistant/api Ce sera.

[WorkSpace] J'avais du mal à le trouver, peu importe où je le cherchais. Dans la pratique d'IBM, il est censé être décrit sur la page de configuration, mais cette colonne est manquante sur la page en cours et ne peut pas être confirmée. Accédez à Créer une compétence-> Instance cible pour lancer l'outil qui configure la conversation Assistant. ~~ L'ID de l'espace de travail est masqué dans l'URI du navigateur à ce moment-là. Il se trouve dans ~ workspaces / here / build ~. ~~ Addendum: J'ai pu le confirmer avec le point à 3 points-> Voir les détails de l'API en haut à droite du cadre de chaque compétence sur l'écran pour sélectionner la compétence créée. </ font>

Échantillon simple

SampleAssistant.java


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

~Omission~

String sendMessage = "Bonjour";  //Chaîne à envoyer à Watson
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);

Si rien n'est fait, la réaction sera toujours au niveau du nœud racine de la boîte de dialogue. Il semble y avoir plusieurs façons de poursuivre la session, mais le plus simple est de transmettre le contexte reçu dans la réponse de watson à la requête suivante.

Context watsonContext = response.getContext();  //Et recevoir

SampleAssistant2.java


MessageOptions options;
if(watsonContext != null) {
    options = new MessageOptions.Builder(WORKSPACE_ID)
      .input(input)
      .context(watsonContext)  //Passer à la demande suivante
      .build();
}else{
    options = new MessageOptions.Builder(WORKSPACE_ID)
    .input(input)
    .build();
}
MessageResponse response = watsonAssistant.message(options).execute();
watsonContext = response.getContext();

Chaque fonction fournie par watson d'IBM est fournie avec des explications (en anglais) avec un exemple de code pour différentes langues. Référence API V1 https://console.bluemix.net/apidocs/assistant Référence API V2 https://cloud.ibm.com/apidocs/assistant-v2 https://www.ibm.com/cloud/watson-assistant/

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

watson est libre d'utiliser dans une certaine plage sans enregistrer une carte de crédit. Pourquoi ne pas y toucher pour avoir une idée de l'utilisation des services d'IA? En particulier, Assistant est recommandé car il est conceptuellement facile à comprendre et peut être appliqué à divers sites. Il semble y avoir un module pour Wordpress.

Recommended Posts

Watson Assistant (anciennement Conversation) sur Android
Allons-y avec Watson Assistant (anciennement Conversation) ④ Comment créer un lien avec la logique Java
C'est parti avec Watson Assistant (anciennement Conversation) ② Faire un chatbot de réservation d'hôtel
Allons-y avec Watson Assistant (anciennement Conversation) ⑤ Créez un chatbot avec Watson + Java + Slack
[Android] Notes sur xml
Jusqu'à ce que l'exemple de l'Assistant Google s'exécute sur Android Things
Personnaliser la vue de liste sur Android
Bibliothèque de transmission en plusieurs parties sur Android
Utiliser la communication série sur Android
Développement d'applications ROS sur Android
Utiliser le code natif sur Android