Por que um desenvolvedor Java precisa do ChatGPT? Ou como parar de ter medo e amar as redes neurais
\nOlá, colega! Se você está lendo isso, significa que, assim como eu, está cansado de escrever respostas padronizadas para o suporte técnico, gerar descrições chatas de produtos ou analisar avaliações manualmente. E se eu disser que em apenas uma noite você pode dar vida à sua aplicação Java, conectando-a a uma inteligência artificial real? Sim, estou falando daquele ChatGPT que sabe fazer piadas, escrever código e até explicar o teorema de Pitágoras para um gato.
\nNeste artigo, não vamos analisar a teoria das probabilidades ou ensinar transformers. Vamos simplesmente pegar o Java, adicionar uma pitada de requisições HTTP e fazer o GPT-4 (ou 3.5, se o orçamento estiver apertado) trabalhar para nós. Parece mágica? Na verdade, é pura engenharia. Vamos nessa!
\n\nO que vamos precisar? Um kit básico essencial
\nAntes de escrever código, certifique-se de que você tem:
\n- \n
- JDK 11 ou superior (vamos usar o novo
HttpClient, que surgiu na versão 11); \n - Chave da API OpenAI — você pode obtê-la na plataforma OpenAI. Não se esqueça de adicionar créditos (apenas alguns dólares, o suficiente para testes); \n
- Qualquer IDE — IntelliJ IDEA, Eclipse ou até um bloco de notas, se você for hardcore; \n
- Maven ou Gradle — para conectar as dependências de forma prática (mas vamos usar o mínimo). \n
A propósito, se você acha que a integração do ChatGPT em Java é algo complicado que exige machine learning, apresso-me em te alegrar: tudo se resolve com uma simples requisição HTTP. Nada de redes neurais em tempo de execução, apenas REST API.
\n\nPreparação do projeto: Maven e dependências
\nCrie um novo projeto Maven e adicione no pom.xml apenas uma biblioteca — Jackson para trabalhar com JSON. Sem ela não dá, porque o ChatGPT se comunica com o mundo exclusivamente nessa linguagem.
<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n <version>2.15.2</version>\n</dependency>\n\nPronto! Nada de SDKs, nada de wrappers — apenas Java puro e nossa engenhosidade. Se você usa Gradle, basta adicionar implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'.
Estrutura da requisição para a API OpenAI
\nAntes de escrever código, vamos entender o que o servidor espera de nós. A API ChatGPT aceita uma requisição POST no endpoint https://api.openai.com/v1/chat/completions. O corpo da requisição é um JSON com esta estrutura:
{\n "model": "gpt-3.5-turbo",\n "messages": [\n {"role": "system", "content": "Você é um assistente útil."},\n {"role": "user", "content": "Conte uma piada sobre desenvolvedores Java."}\n ],\n "temperature": 0.7\n}\n\nVamos analisar os campos:\n
- \n
- model — qual modelo responde. Para economizar, use
gpt-3.5-turbo; para respostas incríveis, usegpt-4; \n - messages — array de mensagens. A mensagem do sistema define o tom, e a do user é a nossa pergunta; \n
- temperature — de 0 a 2. Quanto maior, mais criativa a resposta (e maior a chance de a rede neural começar a alucinar). \n
A resposta também vem em JSON, e o que nos interessa é o campo choices[0].message.content. É lá que está o texto que vamos exibir para o usuário.
Escrevendo o código: Cliente Java para ChatGPT
\nVamos criar a classe ChatGPTClient. Ela será responsável por enviar requisições e processar respostas. Todo o código em um único arquivo, para não criar muitas entidades.
import java.net.URI;\nimport java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpRes