Warum ein Java-Entwickler ChatGPT braucht? Oder wie man die Angst vor neuronalen Netzen verliert und sie lieben lernt
\nHallo, Kollege! Wenn du das liest, hast du wahrscheinlich, genau wie ich, genug davon, immer die gleichen Antworten für den technischen Support zu schreiben, langweilige Produktbeschreibungen zu generieren oder Bewertungen manuell zu analysieren. Was wäre, wenn ich dir sage, dass du an nur einem Abend deiner Java-Anwendung Leben einhauchen kannst, indem du echte künstliche Intelligenz anschließt? Ja, genau, ich meine den ChatGPT, der Witze machen, Code schreiben und sogar einer Katze den Satz des Pythagoras erklären kann.
\nIn diesem Artikel werden wir nicht die Wahrscheinlichkeitstheorie analysieren oder Transformatoren lernen. Wir nehmen einfach Java, fügen eine Prise HTTP-Anfragen hinzu und lassen GPT-4 (oder 3.5, wenn das Budget knapp ist) für uns arbeiten. Klingt wie Magie? In Wirklichkeit ist es reine Ingenieurskunst. Los geht's!
\n\nWas brauchen wir? Die minimale Grundausstattung
\nBevor wir Code schreiben, stelle sicher, dass du Folgendes hast:
\n- \n
- JDK 11 oder höher (wir werden den neuen
HttpClientverwenden, der genau in Version 11 eingeführt wurde); \n - OpenAI-API-Schlüssel — diesen erhältst du auf der OpenAI-Plattform. Vergiss nicht, dein Guthaben aufzuladen (buchstäblich ein paar Dollar reichen für Tests); \n
- Eine beliebige IDE — IntelliJ IDEA, Eclipse oder sogar ein Editor, wenn du ein Hardcore-Entwickler bist; \n
- Maven oder Gradle — zum bequemen Einbinden von Abhängigkeiten (aber wir kommen mit einem Minimum aus). \n
Übrigens, falls du denkst, dass die Integration von ChatGPT in Java etwas Kompliziertes ist, das maschinelles Lernen erfordert, dann kann ich dich beruhigen: Alles wird mit einer einfachen HTTP-Anfrage gelöst. Keine neuronalen Netze zur Laufzeit, nur REST API.
\n\nProjektvorbereitung: Maven und Abhängigkeiten
\nErstelle ein neues Maven-Projekt und füge in die pom.xml nur eine einzige Bibliothek hinzu — Jackson für die Arbeit mit JSON. Ohne sie geht es nicht, denn ChatGPT kommuniziert mit der Welt ausschließlich in dieser Sprache.
<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n <version>2.15.2</version>\n</dependency>\n\nDas war's! Keine SDKs, keine Wrapper — nur reines Java und unser Einfallsreichtum. Wenn du Gradle verwendest, füge einfach implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2' hinzu.
Struktur der Anfrage an die OpenAI API
\nBevor wir Code schreiben, lass uns verstehen, was der Server von uns will. Die ChatGPT API akzeptiert eine POST-Anfrage an den Endpunkt https://api.openai.com/v1/chat/completions. Der Anfragetext ist ein JSON mit folgender Struktur:
{\n "model": "gpt-3.5-turbo",\n "messages": [\n {"role": "system", "content": "Du bist ein hilfreicher Assistent."},\n {"role": "user", "content": "Erzähl einen Witz über Java-Entwickler."}\n ],\n "temperature": 0.7\n}\n\nLass uns die Felder analysieren:\n
- \n
- model — welches Modell antwortet. Nimm aus Kostengründen
gpt-3.5-turbo, für coole Antwortengpt-4; \n - messages — ein Array von Nachrichten. Die Systemnachricht gibt den Ton an, und user ist unsere Anfrage; \n
- temperature — von 0 bis 2. Je höher, desto kreativer die Antwort (und desto größer die Wahrscheinlichkeit, dass das neuronale Netz zu halluzinieren beginnt). \n
Die Antwort kommt ebenfalls im JSON-Format, und uns interessiert das Feld choices[0].message.content. Genau dort verbirgt sich der Text, den wir dem Benutzer anzeigen werden.
Code schreiben: Java-Client für ChatGPT
\nErstellen wir eine Klasse ChatGPTClient. Sie wird für das Senden von Anfragen und die Verarbeitung von Antworten zuständig sein. Der gesamte Code befindet sich in einer Datei, um keine überflüssigen Entitäten zu erzeugen.
import java.net.URI;\nimport java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpRes