Go e ChatGPT: criando um assistente de IA para desenvolvimento em Golang

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Go encontra a IA: por que isso é importante para o desenvolvedor



O mundo do desenvolvimento mudou. Se antes escrevíamos código manualmente e gastávamos horas procurando bugs, hoje as redes neurais assumem a rotina. Mas como isso funciona na prática? É possível unir o poder do Go e ChatGPT em um único projeto? A resposta é sim, e é mais simples do que parece.



Golang é uma linguagem criada para desempenho e paralelismo. E o ChatGPT é um modelo capaz de gerar texto, responder perguntas e até escrever código. Juntos, eles formam uma dupla que pode automatizar documentação, gerar testes, analisar erros e muito mais. Neste artigo, vamos explorar como usar o ChatGPT no desenvolvimento em Go com exemplos reais de código.



Por onde começar: configurando o ambiente para trabalhar com a API OpenAI



Antes de escrever código, você precisa obter acesso à API OpenAI. Esta é uma interface REST padrão que pode ser facilmente chamada de qualquer linguagem, incluindo Go.



Passo 1. Obter a chave da API

Cadastre-se em platform.openai.com, crie uma nova chave secreta na seção API Keys. Salve-a — ela será necessária para todas as requisições.



Passo 2. Criar a estrutura básica do projeto em Go

Crie um novo módulo e instale as dependências:



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


Precisaremos de um cliente HTTP. Podemos usar o padrão net/http, mas para maior comodidade, adicionaremos uma biblioteca para trabalhar com JSON:



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


Escrevendo a primeira requisição para o ChatGPT em Go



A maneira mais simples de integrar o ChatGPT é enviar uma requisição POST para o endpoint https://api.openai.com/v1/chat/completions. Vejamos um exemplo onde pedimos ao modelo para explicar o que é uma goroutine em Go.



Exemplo 1: requisição simples para o modelo



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("Erro: defina a variável 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: "Explique o que é uma goroutine em Go em palavras simples"},\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("Erro na requisição:", err)\t\treturn\t}

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


Execute o script:

export OPENAI_API_KEY="sk-sua_chave"go run main.go


Você receberá uma resposta detalhada da rede neural. Esta é a base sobre a qual qualquer integração do ChatGPT com Go é construída.



Cenários avançados: criando um assistente de IA para o desenvolvedor



Apenas enviar requisições é entediante. Vamos fazer algo útil: escrever um assistente que recebe código em Go como entrada e retorna sua versão otimizada com comentários.



Exemplo 2: Revisor de código com IA em Golang



package main

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

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

Blogs

Book Recommendations