Pular para conteúdo

Repositorios

marie_ai (Backend)

Estrutura

src/
  agent/          # LangChain ReAct agent, tools e skills
  config/         # Configuracao de ambiente (env.ts)
  infra/          # MongoDB, RabbitMQ, GOWA, RD Station, Google Calendar, GCS, Embeddings
  lib/            # Utilitarios: logger, JID parser, envelope
  middlewares/    # Express error handler
  migrations/     # Migracoes MongoDB
  rabbitmq/       # Consumers (message.consumer.ts)
  repositories/   # Acesso a dados MongoDB
  routes/         # Rotas Express + OpenAPI spec
  services/       # Agent processor, CRM sync, timeouts, calendario, follow-up, remarketing
  types/          # Tipos TypeScript

Funcionalidades

  • Agents de IA com LangChain ReAct + Google Gemini
  • CRM sync automatico com RD Station (Marketing + CRM v1)
  • Agendamento com Google Calendar (multi-calendario, lembretes)
  • Follow-up e remarketing automatizados
  • RAG com GCS + MongoDB Vector Search
  • Webhooks para RD Station e agent_start
  • Tasks agendadas (lembretes, acoes futuras)

Comandos

npm run dev        # Desenvolvimento (tsx watch)
npm run build      # Compilar TypeScript
npm start          # Producao (node dist/server.js)
npx tsc --noEmit   # Type check

marie_frontend (Frontend)

Funcionalidades

  • Gestao de agents (CRUD, skills, modelo, temperatura, timezone)
  • Gestao de calendarios (multi-calendario Google, horarios, dias)
  • Gestao de eventos RD Station (triggers, stage map, follow-up)
  • Gestao de arquivos RAG (upload, chunks, vinculo com agents)
  • Follow-up e remarketing
  • Visualizacao de conversas e contatos

Comandos

npm run dev    # Desenvolvimento
npm run build  # Build (output: standalone)
npm start      # Producao

Build-time env

NEXT_PUBLIC_API_URL e injetada em build time via Docker build-arg, nao em runtime.


whatsapp_webhook_sqs (Webhook Bridge)

Como funciona

  1. Go-Whatsmeow envia webhooks para http://webhook_whatsapp:3000/events
  2. O servico recebe e publica na fila events do RabbitMQ
  3. O backend consome a fila e processa

Necessario porque Go-Whatsmeow nao tem integracao nativa com RabbitMQ.