IA em Next.js: como criar chatbots inteligentes em minutos
Rocketseat

Rocketseat

3 min de leitura
react-next
“Até 2030, a inteligência artificial poderá contribuir com até US$ 15 trilhões para a economia global.” – Fonte: PwC
Você já imaginou o impacto que a IA pode ter na sua aplicação web? E se eu te dissesse que integrar modelos de IA em Next.js é mais fácil do que parece?
Neste guia prático, você vai aprender passo a passo como usar IA no seu projeto Next.js, criando um chatbot interativo capaz de responder perguntas dos usuários.
Bora desbloquear esse superpoder?

Por que integrar IA em aplicações Next.js?

A inteligência artificial está revolucionando a forma como interagimos com a tecnologia. Aplicações modernas utilizam IA para:
Personalização – Sugestões de conteúdo sob medida para cada usuário.
Automação – Redução de tarefas repetitivas e suporte 24/7 com chatbots.
Análise de Dados – Geração de insights valiosos para tomada de decisões.
Interação Inteligente – Experiências mais naturais e conversacionais.
Agora, por que usar Next.js para isso?
API Routes & Serverless Functions – Crie endpoints para IA sem configurar um backend separado.
SSR (Server-Side Rendering) – Reduza o tempo de resposta processando IA no servidor.
Compatibilidade com Bibliotecas de IA – Como TensorFlow.js, OpenAI API e Brain.js.

Conceitos básicos de IA: desmistificando a inteligência artificial

Se você acha que IA é coisa de cientistas de dados, pode relaxar! Aqui está a explicação mais simples possível:
Um modelo de IA aprende com exemplos e faz previsões.
Imagine que você queira ensinar um modelo a reconhecer fotos de gatos. Você o treina mostrando milhares de imagens de gatos. Com o tempo, ele aprende os padrões (orelhas, bigodes, olhos) e consegue identificar gatos sozinho!
Principais ferramentas para IA no universo JavaScript:
TensorFlow.js – Treine e execute modelos no navegador ou no Node.js.
OpenAI API – Use modelos prontos, como GPT, para criar assistentes virtuais.
Brain.js – Uma biblioteca mais leve para redes neurais simples.
Agora, bora codar!

Criando um chatbot com Next.js

Vamos desenvolver um chatbot que responde perguntas sobre a Rocketseat usando Next.js e uma base de conhecimento simples.

Passo 1: configurando o projeto Next.js

Crie um novo projeto Next.js com:
npx create-next-app meu-chatbot-ia cd meu-chatbot-ia npm run dev
Agora, sua aplicação está rodando em http://localhost:3000.

Passo 2: criando uma API para processar perguntas

Estrutura do projeto
/meu-chatbot-ia ├── /pages │ ├── /api │ │ ├── chatbot.js │ ├── index.js ├── faq.json ├── package.json
Criando um banco de perguntas e respostas (faq.json):
{ "perguntas": [ { "pergunta": "O que é a Rocketseat?", "resposta": "A Rocketseat é uma escola de programação que te leva do zero ao próximo nível!" }, { "pergunta": "Quais cursos a Rocketseat oferece?", "resposta": "A Rocketseat oferece cursos de desenvolvimento web, mobile, backend e especializações como IA para devs!" } ] }
Criando a API do chatbot (pages/api/chatbot.js):
import faq from "../../faq.json"; // Esta função recebe uma pergunta e retorna uma resposta correspondente export default function handler(req, res) { if (req.method !== 'POST') { return res.status(405).json({ error: 'Método não permitido' }); } const { pergunta } = req.body; if (!pergunta) { return res.status(400).json({ error: 'Nenhuma pergunta fornecida' }); } // Procura a pergunta no JSON e retorna a resposta correspondente const resposta = faq.perguntas.find( (item) => item.pergunta.toLowerCase().includes(pergunta.toLowerCase()) ); return res.status(200).json({ resposta: resposta ? resposta.resposta : "Desculpe, não sei a resposta." }); }
Agora temos um endpoint API funcional que recebe uma pergunta e responde com base no faq.json!

Passo 3: criando a interface do chatbot

Criando a página principal (pages/index.js):
import { useState } from 'react'; export default function Home() { const [pergunta, setPergunta] = useState(''); const [resposta, setResposta] = useState(''); const handleSubmit = async (e) => { e.preventDefault(); const res = await fetch('/api/chatbot', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ pergunta }), }); const data = await res.json(); setResposta(data.resposta); }; return ( <div style={{ textAlign: 'center', marginTop: '50px' }}> <h1>Chatbot Rocketseat</h1> <form onSubmit={handleSubmit}> <input type="text" value={pergunta} onChange={(e) => setPergunta(e.target.value)} placeholder="Faça sua pergunta..." /> <button type="submit">Perguntar</button> </form> {resposta && <p>Resposta: {resposta}</p>} </div> ); }
Agora, teste seu chatbot! Rode npm run dev e faça perguntas para ele!

Integrando um modelo de IA ao chatbot

Agora que criamos um chatbot básico que responde com um banco de perguntas fixo (faq.json), vamos dar um grande upgrade e integrar um modelo de IA real.
Para isso, utilizaremos a OpenAI API, que fornece modelos como o GPT, permitindo gerar respostas dinâmicas com base na entrada do usuário.

Passo 1: criando uma conta na OpenAI e gerando a API Key

  1. Acesse o site da OpenAI: https://platform.openai.com/signup.
  1. Crie uma conta ou faça login.
  1. No painel, vá até API Keys e gere uma chave secreta (anote-a, pois será usada no código).

Passo 2: instalando a biblioteca OpenAI no Next.js

Dentro do seu projeto, instale a biblioteca oficial da OpenAI com o comando:
npm install openai

Passo 3: criando a API Route para IA no Next.js

Agora, vamos modificar nossa API para chamar o modelo de IA da OpenAI em vez de apenas buscar respostas fixas no faq.json .
⚠️
A OpenAI pode atualizar a forma como sua API funciona, incluindo mudanças nos endpoints e métodos. Antes de implementar o código abaixo, confira a documentação oficial para garantir que a versão usada ainda está compatível: Documentação OpenAI API
Edite pages/api/chatbot.js para ficar assim:
import { Configuration, OpenAIApi } from "openai"; // Configure a API Key (recomenda-se usar variáveis de ambiente para segurança) const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY, // Defina sua chave no arquivo .env.local }); const openai = new OpenAIApi(configuration); export default async function handler(req, res) { if (req.method !== 'POST') { return res.status(405).json({ error: 'Método não permitido' }); } const { pergunta } = req.body; if (!pergunta) { return res.status(400).json({ error: 'Nenhuma pergunta fornecida' }); } try { // Enviando a pergunta para a API da OpenAI (usando o modelo GPT-3.5 Turbo) const response = await openai.createChatCompletion({ model: "gpt-3.5-turbo", messages: [{ role: "system", content: "Você é um chatbot útil e amigável que responde perguntas sobre a Rocketseat." }, { role: "user", content: pergunta }], }); // Obtendo a resposta gerada pela IA const resposta = response.data.choices[0].message.content; return res.status(200).json({ resposta }); } catch (error) { console.error("Erro ao chamar a OpenAI API:", error); return res.status(500).json({ error: "Erro ao processar a resposta da IA" }); } }
O que esse código faz?
  • Recebe uma pergunta do usuário.
  • Envia essa pergunta para a API da OpenAI (modelo GPT-3.5-turbo).
  • Obtém uma resposta gerada pela IA e retorna para o frontend.

Passo 4: configurando a API Key no ambiente

Por questões de segurança, nunca coloque sua API Key diretamente no código! Em vez disso, crie um arquivo .env.local na raiz do projeto e adicione:
OPENAI_API_KEY=SUA_CHAVE_AQUI
Importante!
  • Nunca compartilhe sua API Key publicamente, pois isso pode comprometer sua conta.
  • Sempre adicione o arquivo .env.local ao seu .gitignore, para que a chave não seja enviada ao GitHub ou a outros repositórios públicos.
Depois, reinicie o servidor Next.js para aplicar as mudanças:
npm run dev

Passo 5: atualizando o Frontend do chatbot

Agora, vamos atualizar a interface do chatbot (pages/index.js) para conectar com nossa nova API:
import { useState } from 'react'; export default function Home() { const [pergunta, setPergunta] = useState(''); const [resposta, setResposta] = useState(''); const [loading, setLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); setResposta(''); const res = await fetch('/api/chatbot', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ pergunta }), }); const data = await res.json(); setResposta(data.resposta); setLoading(false); }; return ( <div style={{ textAlign: 'center', marginTop: '50px' }}> <h1>Chatbot com IA 🚀</h1> <form onSubmit={handleSubmit}> <input type="text" value={pergunta} onChange={(e) => setPergunta(e.target.value)} placeholder="Faça sua pergunta..." /> <button type="submit">Perguntar</button> </form> {loading && <p>Gerando resposta...</p>} {resposta && <p><strong>IA:</strong> {resposta}</p>} </div> ); }
Agora o chatbot está integrado com a OpenAI! Ele gera respostas dinâmicas para qualquer pergunta feita pelo usuário.

Próximos passos: expandindo a inteligência do chatbot

Agora que você integrou IA ao seu projeto, que tal dar o próximo passo?
  • Melhorar o contexto das respostas
    • Enviar mensagens anteriores na API para manter uma conversa contínua.
  • Usar um modelo mais avançado
    • Trocar o gpt-3.5-turbo por um modelo mais atual, caso tenha disponível em sua conta.
  • Adicionar suporte a voz
    • Integrar bibliotecas como Web Speech API para transformar texto em áudio! 🎙
Agora que você aprendeu o básico, o céu é o limite!

Conclusão: o futuro está em suas mãos!

Neste guia, você aprendeu como integrar um modelo de IA em Next.js para criar um chatbot funcional.
Agora, imagine o que você pode criar dominando IA de verdade!
👉
Quer se tornar um especialista em IA para desenvolvimento web? Conheça a formação IA para devs da Rocketseat e dê o próximo passo!
Agora é sua vez! Teste, experimente e compartilhe suas criações com a comunidade. O próximo nível te espera!
Artigos_

Explore conteúdos relacionados

Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.

Aprenda programação do zero e DE GRAÇA

No Discover você vai descomplicar a programação, aprender a criar seu primeiro site com a mão na massa e iniciar sua transição de carreira.

COMECE A ESTUDAR AGORA