Go und ChatGPT: Erstellen eines KI-Assistenten für die Entwicklung mit Golang

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Go trifft KI: Warum das für Entwickler wichtig ist



Die Welt der Entwicklung hat sich verändert. Früher haben wir Code manuell geschrieben und Stunden mit der Fehlersuche verbracht, heute übernehmen neuronale Netze die Routinearbeit. Aber wie funktioniert das in der Praxis? Kann man die Leistungsfähigkeit von Go und ChatGPT in einem Projekt vereinen? Die Antwort ist ja, und es ist einfacher, als man denkt.



Golang ist eine Sprache, die für Leistung und Parallelität entwickelt wurde. Und ChatGPT ist ein Modell, das Texte generieren, Fragen beantworten und sogar Code schreiben kann. Zusammen bilden sie ein Tandem, das Dokumentation automatisieren, Tests generieren, Fehler analysieren und vieles mehr kann. In diesem Artikel werden wir untersuchen, wie man ChatGPT in der Entwicklung mit Go anhand realer Codebeispiele einsetzt.



Erste Schritte: Einrichtung der Umgebung für die Arbeit mit der OpenAI API



Bevor wir Code schreiben, müssen wir Zugang zur OpenAI API erhalten. Es handelt sich um eine standardmäßige REST-Schnittstelle, die von jeder Sprache, einschließlich Go, leicht aufgerufen werden kann.



Schritt 1: API-Schlüssel abrufen

Registrieren Sie sich auf platform.openai.com und erstellen Sie einen neuen geheimen Schlüssel im Bereich API Keys. Bewahren Sie ihn auf – er wird für alle Anfragen benötigt.



Schritt 2: Grundstruktur des Go-Projekts erstellen

Erstellen Sie ein neues Modul und installieren Sie die Abhängigkeiten:



mkdir go-chatgptcd go-chatgptgo mod init go-chatgpt


Wir benötigen einen HTTP-Client. Sie können den Standard-net/http verwenden, aber der Einfachheit halber fügen wir eine Bibliothek für die Arbeit mit JSON hinzu:



go get github.com/go-resty/resty/v2


Erste Anfrage an ChatGPT in Go schreiben



Der einfachste Weg, ChatGPT zu integrieren, ist das Senden einer POST-Anfrage an den Endpunkt https://api.openai.com/v1/chat/completions. Betrachten wir ein Beispiel, in dem wir das Modell bitten, zu erklären, was eine Goroutine in Go ist.



Beispiel 1: Einfache Anfrage an das Modell



package main

import (\t"encoding/json"\t"fmt"\t"os"

\t"github.com/go-resty/resty/v2")

type Message struct {\tRole string `json:"role"`\tContent string `json:"content"`}

type Request struct {\tModel string `json:"model"`\tMessages []Message `json:"messages"`}

type Response struct {\tChoices []struct {\t\tMessage Message `json:"message"`\t} `json:"choices"`}

func main() {\tapiKey := os.Getenv("OPENAI_API_KEY")\tif apiKey == "" {\t\tfmt.Println("Fehler: Setzen Sie die Umgebungsvariable OPENAI_API_KEY")\t\treturn\t}

\tclient := resty.New()

\treq := Request{\t\tModel: "gpt-3.5-turbo",\t\tMessages: []Message{\t\t\t{Role: "user", Content: "Erkläre in einfachen Worten, was eine Goroutine in Go ist"},\t\t},\t}

\treqBody, _ := json.Marshal(req)

\tvar resp Response\t_, err := client.R().\t\tSetHeader("Authorization", "Bearer "+apiKey).\t\tSetHeader("Content-Type", "application/json").\t\tSetBody(string(reqBody)).\t\tSetResult(&resp).\t\tPost("https://api.openai.com/v1/chat/completions")

\tif err != nil {\t\tfmt.Println("Anfragefehler:", err)\t\treturn\t}

\tif len(resp.Choices) > 0 {\t\tfmt.Println("Antwort von ChatGPT:")\t\tfmt.Println(resp.Choices[0].Message.Content)\t}}


Führen Sie das Skript aus:

export OPENAI_API_KEY="sk-ihr_schlüssel"go run main.go


Sie erhalten eine ausführliche Antwort vom neuronalen Netz. Dies ist die Grundlage, auf der jede Integration von ChatGPT mit Go aufbaut.



Fortgeschrittene Szenarien: Erstellen eines KI-Assistenten für Entwickler



Einfach nur Anfragen zu senden, ist langweilig. Lassen Sie uns etwas Nützliches tun: Wir schreiben einen Assistenten, der Go-Code als Eingabe nimmt und eine optimierte Version mit Kommentaren zurückgibt.



Beispiel 2: KI-Code-Reviewer für Golang



package main

import (\t"bufio"\t"encoding/json"\t"fmt"\t"os"\t"strings"

\t"github.com/go-resty/re

Blogs

Buchempfehlungen