Agentes IAWhatsAppDjangoPython

Construa um Agente de IA para WhatsApp com Django e Zavu

Tutorial passo a passo para criar um agente de WhatsApp com Django usando o AI Gateway da Zavu, sem precisar de API keys externas.

Escrito por: Victor VillalobosRevisado por: Jennifer Villalobos15 de dezembro de 202512 min de leitura

Construa um Agente de IA para WhatsApp com Django e Zavu

Crie um agente de WhatsApp pronto para producao em poucas etapas usando Django + o AI Gateway da Zavu. Voce acessa GPT-4, Claude, Gemini e Mistral sem gerenciar chaves externas.

O que vamos construir

Aplicacao Django que:
  • Recebe webhooks do WhatsApp
  • Valida assinaturas
  • Chama um agente gerenciado da Zavu para responder
  • Mantem contexto automaticamente

Pre-requisitos

  • Python 3.9+
  • Conta na Zavu e sender WhatsApp aprovado
  • ngrok (ou tunnel similar) para testes locais

Instalacao

bash
mkdir whatsapp-agent && cd whatsapp-agent python -m venv venv && source venv/bin/activate pip install django zavudev python-dotenv django-admin startproject config . python manage.py startapp agent

Estrutura

text
whatsapp-agent/ ├── config/ ├── agent/ │ ├── views.py │ ├── urls.py │ └── services.py ├── .env └── manage.py

Configuracao do ambiente

.env:
text
ZAVUDEV_API_KEY=suachave ZAVU_WEBHOOK_SECRET=segreto_webhook ZAVU_SENDER_ID=sender_xxx
config/settings.py:
python
import os from dotenv import load_dotenv load_dotenv() ZAVUDEV_API_KEY = os.getenv('ZAVUDEV_API_KEY') ZAVU_WEBHOOK_SECRET = os.getenv('ZAVU_WEBHOOK_SECRET') ZAVU_SENDER_ID = os.getenv('ZAVU_SENDER_ID')

Como funciona o AI Gateway da Zavu

  • Um unico endpoint para modelos GPT, Claude, Gemini e Mistral
  • Gerencia contexto, memoria e billing
  • Permite usar suas chaves, se quiser

Criando o agente

Via dashboard

  • Acesse Senders → AI Agent
  • Escolha o sender WhatsApp
  • Defina nome, modelo (gpt-4o-mini, claude-3-5-sonnet, etc.) e prompt
  • Ajuste janela de contexto e ativar ferramentas
  • Salve — pronto!
  • Via SDK Python

    python
    from zavudev import Zavudev client = Zavudev(api_key=ZAVUDEV_API_KEY) agent = client.senders.agent.create( sender_id=os.environ['ZAVU_SENDER_ID'], name='Suporte Pro', provider='zavu', model='gpt-4o-mini', system_prompt='Ajude clientes sobre WhatsApp, SMS e email.', context_window_messages=8, include_contact_metadata=True, enabled=True )

    Webhook

    agent/views.py:
    python
    import json import hmac import hashlib from django.http import JsonResponse, HttpResponseForbidden from zavudev import Zavudev client = Zavudev(api_key=ZAVUDEV_API_KEY) def verify_signature(payload, signature): digest = hmac.new( ZAVU_WEBHOOK_SECRET.encode(), msg=payload, digestmod=hashlib.sha256 ).hexdigest() return hmac.compare_digest(digest, signature) @csrf_exempt def whatsapp_webhook(request): signature = request.headers.get('X-ZAVU-SIGNATURE') payload = request.body if not verify_signature(payload, signature): return HttpResponseForbidden() event = json.loads(payload) if event['type'] == 'message.received': client.senders.agent.reply( sender_id=ZAVU_SENDER_ID, contact_id=event['data']['contact']['id'], message_id=event['data']['message']['id'] ) return JsonResponse({ 'status': 'ok' })
    agent/urls.py:
    python
    from django.urls import path from .views import whatsapp_webhook urlpatterns = [ path('webhooks/whatsapp/', whatsapp_webhook, name='whatsapp-webhook') ]

    Inclua em config/urls.py e exponha via ngrok:

    bash
    ngrok http 8000

    Configure o webhook no dashboard apontando para https://xxxx.ngrok.app/webhooks/whatsapp/.

    Conhecimento e ferramentas

    Bases de conhecimento

    • Via dashboard: anexe documentos, URLs ou FAQs
    • Via SDK:
    python
    client.senders.agent.knowledge_bases.attach( sender_id=ZAVU_SENDER_ID, knowledge_base_id='kb_docs' )

    Ferramentas customizadas

    • Crie funcoes no dashboard (ex.: consultar estoque)
    • Ou registre via SDK:
    python
    client.senders.agent.tools.create( sender_id=ZAVU_SENDER_ID, name='check_inventory', description='Consulta estoque na API interna', url='https://api.example.com/inventory', method='POST' )

    Recursos adicionais

    • Analytics em tempo real (latencia, CSAT, execucoes)
    • Conversas podem disparar automacoes/fallbacks
    • Opcionalmente use suas chaves OpenAI/Anthropic se quiser controlar billing (provider='bring-your-own')

    Proximos passos

  • Adicione knowledge bases e ferramentas especificas
  • Habilite conversas omnichannel (SMS, email) usando o mesmo agente
  • Implante no ambiente cloud (Railway, Fly.io, Render)
  • Precisa de ajuda? Agende uma demo ou fale com o time no Discord.

    Precisa de ajuda? Contate-nos ou junte-se à nossa comunidade Discord para suporte.

    Follow us on social media

    Veja em ação

    Agende uma demonstração personalizada para ver como os Agentes IA da Zavu podem transformar sua comunicação com clientes.

    Construa um Agente de IA para WhatsApp com Django e Zavu | Zavu Blog | Zavu