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-chatgptPrecisaremos 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/v2Escrevendo 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.goVocê 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