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

Rocketseat

Navegação Rápida:
“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! Rodenpm 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
- Acesse o site da OpenAI: https://platform.openai.com/signup.
- Crie uma conta ou faça login.
- 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.