Não se fala em outra coisa ultimamente a não ser sobre IA, em especial as IAs generativas como ChatGPT e outros. E embora em algum momento próximo esse hype diminua para níveis mais saudáveis (o Hype Cycle do Gartner nunca erra), é inegável que dá pra fazer um bom dinheiro surfando do ímpeto das empresas que querem integrar suas aplicações com soluções de IA ou até mesmo das pessoas que não páram de instalar apps de IA em seus smartphones ou mesmo usando em aplicações web. E a melhor parte: enquanto no passado você tinha de construir seu próprio modelo, o que levava muito tempo, dinheiro e dados, agora o trabalho duro já foi feito por empresas como a OpenAI, basta se integrar, criar prompts inteligentes e voilá, sua funcionalidade ou soluções que usa IA está pronta!
Claro, dá pra ir muito além do que apenas essa receita de “miojo de IA”, mas a base é essa, usada pela maioria das startups de IA do mercado, e uma vez que domine ela, pode se especializar em um ou outro aspecto mais interessante desse tipo de desenvolvimento (como AI Agents). Pensando nisso, nesse tutorial eu vou te mostrar como fazer a integração de sua aplicação Node.js com as APIs da OpenAI, a criadora do ChatGPT e líder do mercado.
Vamos lá!
#1 – Setup do Ambiente
Para fazer este tutorial você vai precisar do Node.js e do Visual Studio Code instalados na sua máquina. Você pode baixar e instalar eles pelos links que forneci antes ou assistir ao vídeo abaixo com o passo a passo.
Depois disso, você vai precisar de uma API Key da OpenAI, a empresa criadora do ChatGPT, Sora, Dall-e e outros modelos famosos de IA generativa. Para criar sua chave, acesse este link e se autentique. Depois mande criar sua chave e guarde-a em um lugar seguro, não tem como você vê-la uma segunda fez e terá de criar outra caso perca essa.
Agora que você tem a sua chave, é importante você saber que ela só funcionará caso você tenha adquirido créditos junto à OpenAI. Sim, eles não possuem APIs gratuitas ou limite de uso gratuito, tem de colocar ao menos U$5 de crédito para começar a brincar e depois sempre manter saldo na sua conta se for colocar seu projeto em produção.
Para adicionar crédito, você deve ir nas configurações da sua conta (settings) e dentro dela, na seção de cobrança (billing), acessível neste link. Adicione uma forma de pagamento, coloque saldo e pronto, agora pode usar sua chave. Dica: você pode obter um incremento gratuito de tokens (usados nas requisições) para usar na plataforma se compartilhar os seus dados com a OpenAI, neste link.
Depois disso, dependendo do modelo de IA que vier a usar (existem vários), pode ser necessário uma verificação da sua conta, que você faz nesse link.

#2 – Setup do Projeto
Agora crie o seu projeto Node.js com os comandos abaixo, um de cada vez.
1 2 3 4 5 6 |
mkdir openai-example cd openai-example npm init -y npm install dotenv openai |
As extensões que instalamos no último comando foram:
- DotEnv: para configurações do projeto;
- OpenAI: SDK de integração com os modelos da OpenAI;
Agora abra o projeto no VS Code e crie um arquivo .env na raiz do projeto com as variáveis que vamos usar, principalmente a sua chave da OpenAI e lembre-se de não subir esse .env para seu GitHub se for versionar o projeto.
1 2 3 4 |
# .env OPENAI_API_KEY=xxxxxxx |
Também crie um index.js e coloque nele o carregamento do .env.
1 2 3 4 |
//index.js require("dotenv").config(); |
Agora sim, temos tudo pronto para programar nosso exemplo de integração OpenAI, usando qualquer um dos modelos deles como ChatGPT, Dall-e e outros.
#3 – Fazendo a Primeira Chamada
Vamos fazer um primeiro exemplo usando o modelo mais popular atualmente, o GPT-4o. Para isso, primeiro carregue a classe da OpenAI e inicialize um objeto com ela, usando a sua API Key.
1 2 3 4 5 6 7 |
const OpenAI = require("openai"); const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); |
Agora vou criar uma função async só para poder usar o await dentro dela e escrever tudo sem me preocupar com promises. Nessa função, vou fazer uma chamada à API da OpenAI, onde informo o modelo que quero usar, as instruções de como o modelo deve interpretar e responder aos comandos e o input, que é a pergunta/comando em si.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
async function start() { const response = await client.responses.create({ model: "gpt-4o", instructions: "Você é um assistente de código, especializado em JavaScript", input: "Me escreva uma função que ordene um array recebido usando quicksort", }); console.log(response.output_text); } start(); |
Note como a instrução inicial vai contextualizar a resposta. Neste caso, receberei um exemplo de código em JS, pois o meu agente é especializado nessa tecnologia. Veja abaixo a resposta deste exemplo.
Agora que fizemos a primeira chamada com sucesso, vale a pena você voltar em settings e ir em usage, para entender como você será cobrado pelo uso. Cada modelo possui um preço, baseado na quantidade de tokens dos inputs e também dos outputs, sendo que um token é aproximadamente uma palavra (para o caso de texto). Veja abaixo um exemplo, do modelo que usamos no teste.
Nesse modelo, o custo é de $2.50 para cada 1M de tokens nos inputs e mais $10 para cada 1M de tokens nos outputs. Veja minha cobrança depois de 3 testes:
No gráfico de tokens gastos temos o output em vermelho e o input em amarelo, com a soma total. Se eu seguir nesse ritmo, meus $5 vão durar aproximadamente 3400 chamadas como essas que mostrei no exemplo (de tamanho similar). Claro, esse modelo aí está longe de ser o mais barato, usei ele como exemplo e por ser o padrão. Se você não necessitar de todo o poder de fogo do modelo GPT completo, pode usar sua versão “gpt-4.1-nano” que custa 25x menos que a versão padrão.

#4 – Encadeando Chamadas
Cada chamada é stateless, ou seja, a OpenAI não mantém memória entre suas requisições, então caso você queira manter uma conversa, você deve sempre reenviar o conteúdo de respostas anteriores junto do input do novo comando/pergunta. Obviamente como pagamos por tokens, você deve logo notar que manter longas conversas custa mais caro do que perguntas/respostas simples, mas é o jeito quando temos de refinar o retorno que estamos tendo.
Felizmente você não precisa ficar guardando os prompts e reenviando eles, a própria API fornece um mecanismo de encadeamento que, embora não omita os custos em tokens, torna mais fácil essa tarefa de encadeamento. Para isso, pegue o id da resposta anterior e use como previous_response_id na nova chamada, como abaixo, onde aproveitei e mudei para um modelo mais barato.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
async function start() { const model = "gpt-4.1-nano"; const message1 = "Me escreva uma função que ordene um array recebido usando quicksort"; console.log(message1); const response1 = await client.responses.create({ model, instructions: "Você é um assistente de código, especializado em JavaScript", input: message1, }); console.log(response1.output_text); const message2 = "Converta exatamente este código que me passou para TypeScript"; console.log(message2); const response2 = await client.responses.create({ model, previous_response_id: response1.id, input: message2, }); console.log(response2.output_text); } |
Note na resposta que recebi, como a IA entende que está mantendo uma conversa.
Um último ponto de atenção aqui é que, além dos custos crescerem conforme você for encadeando as mensagens é que existe um limite total para os tokens envolvidos em uma interação, chamado Context Windows (Janela de Contexto). A Context Window de uma requisição inclui os inputs, os outputs e os chamados reasoning tokens, para o caso de modelos que “raciocinam” (não é o caso de modelos GPT, mas vale o aviso) e essa informação fica junto das características do modelo, por exemplo, 1.047.576 tokens no caso dos dois modelos que usei nos exemplos acima. Assim, se sua primeira requisição consumir 20 tokens na pergunta e 50 na resposta, são 70 tokens. Na segunda interação encadeada, seu custo vai ser de 70 tokens (pagos de novo) + os novos inputs e outputs, entende? Então o custo cresce exponencialmente em conversas longas.
Dito isso, vamos encerrar por aqui este tutorial introdutório que espero tenha sido útil para seus aprendizados iniciais de uso das APIs da OpenAI.
Até a próxima!

Olá, tudo bem?
O que você achou deste conteúdo? Conte nos comentários.