Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.

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.

Einführung

Informationen zu AI "A3RT" finden Sie auf der offiziellen Website.

API bereitgestellt

Lassen Sie uns dieses Mal eine einfache Talk-App mit der Talk-API erstellen.

Umwelt / Vorbereitung

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/).

Beispielcode

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;
    }
}

Ergebnis

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]

abschließend

Diese KI wurde gerade veröffentlicht, also freuen wir uns auf zukünftiges Lernen.

Recommended Posts

Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe einen RESAS-API-Client in Java erstellt
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, JWT in Java zu verwenden
Ich habe versucht, innerhalb von 3 Monaten einen Antrag von unerfahren zu stellen
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, Dapr in Java zu verwenden, um die Entwicklung von Mikroservices zu erleichtern
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
[iOS] Ich habe versucht, mit Swift eine insta-ähnliche Verarbeitungsanwendung zu erstellen
Ich habe versucht, neunundneunzig in Java auszugeben
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, ein Beispielprogramm mit dem Problem des Datenbankspezialisten für domänengesteuertes Design zu erstellen
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Ich habe versucht, eine Datenbankverbindung in der Android-Entwicklung zu verwenden
Ich habe versucht, die Firebase-Push-Benachrichtigung in Java zu implementieren
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
# 2 [Anmerkung] Ich habe versucht, neunundneunzig mit Java zu berechnen.
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
~ Ich habe jetzt versucht, funktionale Programmierung mit Java zu lernen ~
Ich habe versucht, ein Aktienchart mit Java (Jsoup) zu kratzen.
Ich habe versucht herauszufinden, was sich in Java 9 geändert hat
Ich habe versucht, Java REPL zu verwenden
Machen Sie einen Diamanten mit Java
Ich habe versucht, Metaprogrammierung mit Java
Lassen Sie uns eine TODO-Anwendung mit Java 2 erstellen. Ich möchte eine Vorlage mit Spring Initializr erstellen und eine Hello-Welt erstellen
Ich bin gestolpert, als ich versucht habe, neo4j in der jenv-Umgebung zu verwenden. Machen Sie sich also eine Notiz
[Azure] Ich habe versucht, eine kostenlose Java-App zu erstellen ~ Mit FTP verbinden ~ [Anfänger]
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Erstellen wir eine Taschenrechner-App mit Java ~ Zeigen Sie das Anwendungsfenster an
Ich möchte einen relativen Pfad in einer Situation finden, in der Pfad verwendet wird
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe versucht, Java Optional und Guard-Klausel koexistieren zu lassen
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten