In diesem Artikel wird die von Recruit bereitgestellte "Talk-API" der KI "A3RT" verwendet, um eine Talk-App zu erstellen. Auch wenn dies durch das Schreiben mit Curl-Befehlen, Python und JavaScript vereinfacht werden kann, wage ich es, ** Java ** vollständig zu nutzen. (Leiden?) ~~ Dies ist ein Artikel über eine Freizeitperson, die GW verlassen hat.
Informationen zu AI "A3RT" finden Sie auf der offiziellen Website.
Lassen Sie uns dieses Mal eine einfache Talk-App mit der Talk-API erstellen.
Da der API-SCHLÜSSEL zum Ausführen der API erforderlich ist, geben Sie ihn unter [hier] aus (https://a3rt.recruit-tech.co.jp/product/talkAPI/).
Eine einfache Spezifikation, die dies einfach wiederholt, indem sie die durch Standardeingabe per POST erfasste Zeichenfolge an die API sendet und das Ergebnis erhält. Geben Sie zum Beenden "bye" ein. Da es sich bei der erstellten Umgebung um eine Umgebung mit Proxy handelt, enthält der Beispielcode eine Beschreibung zu Proxy. Dies ist jedoch nicht erforderlich, wenn es sich um eine Umgebung ohne Proxy handelt. Da es sich bei einigen Antwortzeichen um Unicode-Zeichenfolgen handelt, werden sie in normale Zeichenfolgen konvertiert. Bitte verzeihen Sie mir, da die Fehlerbehandlung locker ist. : stick_out_tongue_closed_eyes:
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 {
//Standardeingabe
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("Ende");
return;
}
//Übertragungsdaten
//Schreiben Sie den ausgegebenen API-SCHLÜSSEL
String data = "apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&query=" + input;
//HTTP-Verbindung
URL url = new URL("https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk");
//Proxy-Einstellungen(Nur wenn sich Proxy in der Netzumgebung befindet)
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);
//POST-Übertragung
try (DataOutputStream dos = new DataOutputStream(conn.getOutputStream())) {
dos.writeBytes(data);
}
//Antwort erhalten
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();
}
}
}
}
/**
*Konvertieren Sie eine Unicode-Zeichenfolge in eine Zeichenfolge(u\3042 ⇒ Oh)
*
* @param unicode Zeichenkette mit Unicode-Zeichenkette
* @Zeichenfolge zurückgeben
*/
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;
}
}
Sie können sprechen (weiße Augen: rollende_Augen:
[me]Ist Prost auf gute Arbeit.
{"status": 0, "message": "ok", "results": [{"perplexity": 0.7773633993386415, "reply": "Ich hasse es nicht so sehr"}]}
[me]Vielen Dank.
{"status": 0, "message": "ok", "results": [{"perplexity": 0.07521183094611102, "reply": "Geht es dir gut?"}]}
[me]Ja. Geht es dir gut?
{"status": 0, "message": "ok", "results": [{"perplexity": 1.5817458708187506, "reply": "Ist es meins?Es ist ein Geheimnis"}]}
[me]Bitte. bitte sag mir!
{"status": 0, "message": "ok", "results": [{"perplexity": 2.4087016492196223, "reply": "Geht es dir gut?"}]}
[me]Ich bin auch ein Geheimnis
{"status": 0, "message": "ok", "results": [{"perplexity": 0.23161212785866075, "reply": "Geht es dir gut?"}]}
[me]Was machst du während deines Urlaubs??
{"status": 0, "message": "ok", "results": [{"perplexity": 7.697953651890003, "reply": "Sie überprüfen gut?"}]}
[me]
Diese KI wurde gerade veröffentlicht, also freuen wir uns auf zukünftiges Lernen.
Recommended Posts