A integração de chatbots com inteligência artificial transformou-se numa ferramenta essencial para aplicações web modernas. O Node.js oferece a arquitetura ideal para desenvolver estas soluções, combinando performance e simplicidade. Este tutorial demonstra como implementar um chatbot funcional utilizando GPT-3 da OpenAI.
Preparação do Ambiente de Desenvolvimento
Para começar, você precisa do Node.js instalado (versão LTS recomendada) e uma chave API da OpenAI. Acesse a plataforma da OpenAI para obter suas credenciais de acesso.
Crie seu projeto e instale as dependências necessárias:
mkdir chatbot-gpt3
cd chatbot-gpt3
npm init -y
npm install openai express body-parser dotenv cors
Estas bibliotecas fornecem funcionalidades essenciais: Express para o servidor web, OpenAI para integração com GPT-3, e dotenv para gerenciar variáveis de ambiente de forma segura.
Configuração Inicial do Servidor
Crie o arquivo principal app.js com a configuração básica do servidor:
require(\'dotenv\').config();
const express = require(\'express\');
const bodyParser = require(\'body-parser\');
const cors = require(\'cors\');
const { Configuration, OpenAIApi } = require(\'openai\');
const app = express();
// Middlewares
app.use(cors());
app.use(bodyParser.json());
app.use(express.static(\'public\'));
// Configuração OpenAI
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
Crie um arquivo .env na raiz do projeto para armazenar sua chave API de forma segura:
OPENAI_API_KEY=sua_chave_api_aqui
PORT=3000
Implementação do Endpoint do Chatbot
Desenvolva o endpoint principal que processará as mensagens dos usuários:
app.post(\'/chat\', async (req, res) => {
const { message, context = [] } = req.body;
if (!message) {
return res.status(400).json({ error: \'Mensagem é obrigatória\' });
}
try {
// Construir contexto da conversa
let prompt = \'Você é um assistente útil e amigável.\\n\\n\';
context.forEach(msg => {
prompt += Usuário: ${msg.user}\\nAssistente: ${msg.assistant}\\n;
});
prompt += Usuário: ${message}\\nAssistente:;
const response = await openai.createCompletion({
model: \'text-davinci-003\',
prompt: prompt,
max_tokens: 150,
temperature: 0.7,
stop: [\'Usuário:\', \'Assistant:\']
});
const botResponse = response.data.choices[0].text.trim();
res.json({
response: botResponse,
timestamp: new Date().toISOString()
});
} catch (error) {
console.error(\'Erro na API OpenAI:\', error.message);
res.status(500).json({
error: \'Erro interno do servidor\',
message: \'Tente novamente em alguns instantes\'
});
}
});
Interface Web Simples
Crie uma interface básica para testar o chatbot. Adicione um arquivo public/index.html:
Chatbot GPT-3
Chatbot com GPT-3
Inicialização e Tratamento de Erros
Complete o arquivo app.js com a inicialização do servidor e tratamento adequado de erros:
// Middleware para rotas não encontradas
app.use(\'*\', (req, res) => {
res.status(404).json({ error: \'Endpoint não encontrado\' });
});
// Tratamento global de erros
app.use((error, req, res, next) => {
console.error(\'Erro não tratado:\', error);
res.status(500).json({ error: \'Erro interno do servidor\' });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(? Servidor rodando em http://localhost:${PORT});
console.log(\'? Acesse /chat para enviar mensagens ao chatbot\');
});
Teste e Validação
Execute sua aplicação com o comando:
node app.js
Acesse http://localhost:3000 para interagir com a interface web, ou teste diretamente o endpoint usando cURL:
curl -X POST http://localhost:3000/chat \\
-H "Content-Type: application/json" \\
-d \'{"message": "Olá, como você pode me ajudar?"}\'
Otimizações e Boas Práticas
Para desenvolvimento web profissional, implemente estas melhorias:
- Rate Limiting: Limite requisições por IP para evitar abuso da API
- Autenticação: Adicione sistema de autenticação para usuários
- Logs: Implemente logging detalhado para monitoramento
- Cache: Use Redis para armazenar contextos de conversa
- Validação: Valide entradas do usuário rigorosamente
Considere também configurar um servidor VPS adequado para hospedar sua aplicação em produção, garantindo performance e escalabilidade.
Considerações de Custos
A API do GPT-3 cobra por token processado. Monitore o uso implementando contadores de tokens e estabelecendo limites por usuário. A configuração max_tokens controla o tamanho máximo das respostas, impactando diretamente nos custos.
Segurança e Privacidade
Nunca exponha sua chave API no código frontend. Implemente validação de entrada para prevenir ataques de prompt injection. Considere filtrar conteúdo inadequado nas respostas do bot antes de enviá-las aos usuários.
Este tutorial fornece a base para criar chatbots inteligentes com Node.js e GPT-3. A partir desta implementação, você pode expandir funcionalidades específicas conforme as necessidades do seu projeto.
Comentários
0Inicie sessão para deixar um comentário
Iniciar sessãoSé el primero en comentar