Cet article utilise l '"API Talk" de l'IA "A3RT" fournie par Recruit pour créer une application de discussion, et même si cela peut être facilité en écrivant avec des commandes curl, Python et JavaScript, j'ose utiliser pleinement ** Java **. (Souffrance?) ~~ Il s'agit d'un article sur une personne de loisir qui a quitté GW.
Veuillez vous référer au Site officiel pour AI "A3RT".
Cette fois, créons une application de conversation simple à l'aide de l'API Talk.
Étant donné que la clé API est requise pour exécuter l'API, émettez-la à l'adresse ici.
Une spécification simple qui boucle simplement cela en envoyant la chaîne de caractères acquise par l'entrée standard à l'API par POST et en obtenant le résultat. Tapez "bye" pour quitter. Étant donné que l'environnement créé était un environnement avec Proxy, l'exemple de code a une description autour de Proxy, mais il n'est pas nécessaire s'il s'agit d'un environnement sans Proxy. De plus, étant donné que certains des caractères de réponse sont des chaînes de caractères Unicode, il existe un processus pour les convertir en chaînes de caractères ordinaires. Veuillez me pardonner car la gestion des erreurs est lâche. : Ouvre la bouche et ferme les yeux:
python
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
public class SmallTalkApp {
public static void main(String[] args) {
while (true) {
HttpURLConnection conn = null;
try {
//Entrée standard
System.out.print("[me]");
BufferedReader br
= new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
if (input == null || input.isEmpty()) {
continue;
} else if (input.equals("bye")) {
System.out.println("Fin");
return;
}
//Données de transmission
//Écrivez la clé API émise
String data = "apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&query=" + input;
//Connexion HTTP
URL url = new URL("https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk");
//Paramètres du proxy(Uniquement lorsqu'il y a un proxy dans l'environnement net)
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxyhost", 9999));
conn = (HttpURLConnection) url.openConnection(proxy);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
//Transmission POST
try (DataOutputStream dos = new DataOutputStream(conn.getOutputStream())) {
dos.writeBytes(data);
}
//Recevoir une réponse
int rescode = conn.getResponseCode();
if (rescode == HttpURLConnection.HTTP_OK) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
StringBuilder buf = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
buf.append(line);
}
System.out.println(convertToOiginal(buf.toString()));
}
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
}
}
}
/**
*Convertir une chaîne Unicode en chaîne(u\3042 ⇒ Oh)
*
* @param unicode Chaîne de caractères contenant une chaîne de caractères unicode
* @chaîne de retour
*/
private static String convertToOiginal(String unicode) {
String tmp = unicode;
while (tmp.indexOf("\\u") > 0) {
String str = tmp.substring(tmp.indexOf("\\u"), tmp.indexOf("\\u") + 6);
int c = Integer.parseInt(str.substring(2), 16);
tmp = tmp.replaceFirst("\\" + str, new String(new int[]{c}, 0, 1));
}
return tmp;
}
}
Vous pouvez parler (yeux blancs: rolling_eyes:
[me]Vive le bon travail.
{"status": 0, "message": "ok", "results": [{"perplexity": 0.7773633993386415, "reply": "Je ne déteste pas tellement"}]}
[me]Merci beaucoup.
{"status": 0, "message": "ok", "results": [{"perplexity": 0.07521183094611102, "reply": "Tu fais bien?"}]}
[me]Oui. Tu fais bien?
{"status": 0, "message": "ok", "results": [{"perplexity": 1.5817458708187506, "reply": "Est-ce à moi?C'est un secret"}]}
[me]S'il vous plaît. s'il vous plaît dites-moi!
{"status": 0, "message": "ok", "results": [{"perplexity": 2.4087016492196223, "reply": "Tu fais bien?"}]}
[me]Je suis aussi un secret
{"status": 0, "message": "ok", "results": [{"perplexity": 0.23161212785866075, "reply": "Tu fais bien?"}]}
[me]Que faites-vous pendant vos vacances?
{"status": 0, "message": "ok", "results": [{"perplexity": 7.697953651890003, "reply": "Vous vérifiez bien?"}]}
[me]
Cette IA vient de sortir, alors attendons avec impatience les futurs apprentissages.
Recommended Posts