Destaque

PedeAi

Plataforma de pedidos via Telegram que combina automação de workflows com n8n, backend Node.js, PostgreSQL, Redis e assistência baseada em Gemini.

Principais pontos
  • Automação de atendimento com n8n
  • Bot de pedidos integrado ao Telegram
  • Máquina de estados para o fluxo de pedidos
  • PostgreSQL com triggers e JSONB
  • Redis para cache e sessões
  • Invalidação de cache baseada em alterações
  • Assistente com Google Gemini
  • Agent handoff entre automação e IA
  • Rate limiting e proteção contra abuso
  • Docker Compose
Tecnologias utilizadas
Screenshot de capa de PedeAi

Visão geral

O PedeAi é uma plataforma de automação de pedidos para restaurantes construída em torno de um bot do Telegram.

O projeto combina uma API REST em Node.js, automação de workflows com n8n, PostgreSQL, Redis e um assistente baseado no Google Gemini.

A ideia central é unir um fluxo determinístico, responsável pelas etapas do pedido, com inteligência artificial para lidar com perguntas que não se encaixam diretamente nas opções previstas pelo fluxo.

Como funciona

O atendimento começa no Telegram e é orquestrado pelo workflow do n8n.

  1. O usuário envia uma mensagem para o bot.
  2. O n8n identifica o usuário e recupera seu estado de sessão.
  3. O workflow determina qual etapa do atendimento deve ser executada.
  4. Para operações estruturadas, o n8n consulta ou altera informações através da API backend.
  5. O estado da conversa é atualizado.
  6. A resposta é enviada novamente pelo Telegram.

Quando a mensagem não corresponde ao fluxo conhecido, acontece o agent handoff para o chatbot baseado em Gemini.

Nesse caso, o backend fornece ao modelo o contexto necessário sobre o cardápio e devolve a resposta para que o n8n continue a interação com o usuário.

Arquitetura

O projeto conecta diferentes serviços especializados:

                    Telegram
                       │
                       ▼
                      n8n
                       │
          ┌────────────┼────────────┐
          │            │            │
          ▼            ▼            ▼
      PostgreSQL    Backend       Gemini
          │            │
          │            ▼
          │          Redis
          │
          ▼
      Dados dos pedidos

Backend

O backend utiliza uma arquitetura em camadas:

Routes
  ↓
Controllers
  ↓
Services
  ↓
Repositories
  ↓
PostgreSQL

n8n

O n8n concentra a lógica de automação do chatbot, incluindo:

  • recebimento das mensagens;
  • gerenciamento do fluxo;
  • consulta de sessão;
  • menus dinâmicos;
  • chamadas para a API;
  • notificações;
  • agent handoff.

Redis

O Redis é utilizado para:

  • cache do cardápio;
  • histórico recente de conversas com o Gemini;
  • TTL das sessões;
  • rate limiting.

O projeto também possui invalidação do cache do cardápio quando os produtos são alterados.

Funcionalidades

  • Catálogo dinâmico baseado nos dados do backend.
  • Menus interativos através do Telegram.
  • Carrinho e criação de pedidos.
  • Máquina de estados para controlar o fluxo de atendimento.
  • Sessões persistidas no PostgreSQL.
  • Cache de cardápio com Redis.
  • Histórico de conversa com TTL.
  • Rate limiting por usuário.
  • Notificações de mudança de status através de webhooks.
  • Assistente Gemini para perguntas em linguagem natural.
  • Agent handoff entre fluxo determinístico e IA.
  • Documentação REST com Swagger.
  • Ambiente completo executado com Docker Compose.

Decisões técnicas

n8n para orquestração

A utilização do n8n permite concentrar a lógica de automação em workflows visuais, mantendo o backend responsável pelas regras e operações de dados da aplicação.

Fluxo determinístico + IA

O sistema não delega todo o atendimento para o modelo de linguagem.

As etapas previsíveis, como navegação do cardápio e fechamento do pedido, continuam sendo controladas por estados definidos.

O Gemini entra quando o usuário faz perguntas livres que precisam de interpretação de linguagem natural.

Redis para cache

O cardápio é consultado frequentemente durante as conversas. O cache reduz consultas repetidas ao banco e possui invalidação quando os produtos são modificados.

Agent handoff

A separação entre automação e IA permite que cada abordagem seja utilizada no tipo de problema em que ela é mais adequada.

Screenshots

Visual do fluxo de atendimento automatizado do PedeAi.

PedeAi • 1 de 1
PedeAi - Captura de tela 1

Aprendizados

O PedeAi reúne vários conceitos em um único fluxo de aplicação.

O projeto permitiu aprofundar:

  • automação de workflows com n8n;
  • integração entre serviços independentes;
  • modelagem de máquinas de estados;
  • uso de Redis para cache e sessões;
  • invalidação de cache;
  • integração de modelos de linguagem com aplicações reais;
  • processamento de linguagem natural;
  • agent handoff entre lógica determinística e LLM;
  • webhooks;
  • infraestrutura com Docker Compose.