Skip to content

Transcreve mensagens de áudio no WhatsApp usando a Evolution API e o Groq.

License

Notifications You must be signed in to change notification settings

impacte-ai/transcrevezap

Repository files navigation

TranscreveZAP 2.0

Transcrição e Resumo de Áudios no WhatsApp usando Python com interface em Streamlit

ImpacteAI

Este projeto permite transcrever e resumir áudios enviados pelo WhatsApp usando inteligência artificial e integração com APIs. Ideal para automatizar o processamento de mensagens de áudio, oferecendo um resumo claro e prático.

Contato de email: [email protected] (ACESSE NOSSO SITE)

Nosso Grupo do Whatsapp: (Entre no GRUPO AQUI)

📋 Pré-requisitos

Antes de começar, certifique-se de ter os seguintes requisitos:

  • Python 3.10+ instalado (Download)
  • Docker e Docker Compose instalados (Instruções)
  • Uma conta Evolution API com chave válida
  • Uma conta GROQ API com chave válida (começa com 'gsk_') (Crie sua CONTA)
  • Em caso de uso com Proxy Reverso Aponte um Subdomínio para a API e outro para o MANAGER da aplicação

🚀 Instalação e Configuração

🐳 Docker Compose

  1. Clone o repositório:
   git clone https://github.com/seu-usuario/transcrevezap.git
   cd transcrevezap
  1. Configure o arquivo docker-compose.yaml:
    version: "3.7"
    services:
      tcaudio:
        image: impacteai/transcrevezap:latest
        ports:
          - 8005:8005  # Porta para FastAPI
          - 8501:8501  # Porta para Streamlit
        environment:
          - REDIS_HOST=redis
          - REDIS_PORT=6380
          - API_DOMAIN=seu-ip 
          - DEBUG_MODE=false
          - LOG_LEVEL=INFO
          - MANAGER_USER=admin
          - MANAGER_PASSWORD=sua_senha_aqui
        depends_on:
          - redis
      
      redis:
        image: redis:6
        command: redis-server --port 6380 --appendonly yes
        volumes:
          - redis_data:/data

    volumes:
      redis_data:
  1. Inicie os serviços:
docker-compose up -d

📖 Configuração da Interface

Acesse a interface de gerenciamento em http://seu-ip:8501. Faça login com as credenciais definidas em MANAGER_USER e MANAGER_PASSWORD. Na seção "Configurações", defina:

  1. GROQ_API_KEY: Sua chave da API GROQ
  2. BUSINESS_MESSAGE: Mensagem de rodapé após transcrição
  3. PROCESS_GROUP_MESSAGES: Habilitar processamento de mensagens em grupos
  4. PROCESS_SELF_MESSAGES: Habilitar processamento de mensagens próprias

🔧 Uso

Endpoint para Webhook da Evolution API Configure o webhook da Evolution API para apontar para:

http://seu-ip:8005/transcreve-audios

🔍 Troubleshooting

Se encontrar problemas:

  1. Verifique os logs dos containers:
docker-compose logs
  1. Certifique-se de que o Redis está rodando e acessível.
  2. Verifique se todas as configurações foram salvas corretamente na interface.

📖 Configuração Detalhada das Variáveis

Variáveis Essenciais

Variável Descrição Obrigatória Exemplo
GROQ_API_KEY Chave da API GROQ (deve começar com 'gsk_') Sim gsk_abc123...

Variáveis de Personalização

Variável Descrição Padrão Exemplo
BUSINESS_MESSAGE Mensagem de rodapé após transcrição Vazio substitua_sua_mensagem_de_servico_aqui
PROCESS_GROUP_MESSAGES Habilita processamento de mensagens em grupos false true ou false
PROCESS_SELF_MESSAGES Habilita processamento de mensagens enviadas por você true true ou false

Variáveis de Debug e Log

Variável Descrição Padrão Valores Possíveis
DEBUG_MODE Ativa logs detalhados para debugging false true ou false
LOG_LEVEL Define o nível de detalhamento dos logs INFO DEBUG, INFO, WARNING, ERROR, CRITICAL

🚀 Métodos de Execução

Usar sempre ao final do endereço definido o endpoint /transcreve-audios para que a API funcione.

Execução Local

uvicorn main:app --host 0.0.0.0 --port 8005

Endpoint para inserir no webhook da Evolution API para consumir o serviço

http://127.0.0.1:8005/transcreve-audios
  1. Aponte um subomínio com o IP do seu servidor para a API da TranscreveZAP
  2. Aponte um subomínio com o IP do seu servidor para o MANAGER da TranscreveZAP

🌟 Docker Swarm com Traefik

version: "3.7"

services:
  tcaudio:
    image: impacteai/transcrevezap:latest
    networks:
      - sua_rede_externa # Substitua pelo nome da sua rede externa
    ports:
      - 8005:8005  # Porta para FastAPI
      - 8501:8501  # Porta para Streamlit
    environment:
      - UVICORN_PORT=8005
      - UVICORN_HOST=0.0.0.0
      - UVICORN_RELOAD=true
      - UVICORN_WORKERS=1
      - API_DOMAIN=seu.dominio.com   #coloque seu subdominio da API apontado aqui
      - DEBUG_MODE=false
      - LOG_LEVEL=INFO
      - MANAGER_USER=seu_usuario_admin   # Defina Usuário do Manager
      - MANAGER_PASSWORD=sua_senha_segura   # Defina Senha do Manager
      - REDIS_HOST=redis-transcrevezap
      - REDIS_PORT=6380 # Porta personalizada para o Redis do TranscreveZAP
    depends_on:
      - redis-transcrevezap
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      labels:
        - traefik.enable=true
        - traefik.http.routers.tcaudio.rule=Host(`seu.dominio.com`)   #coloque seu subdominio da API apontado aqui
        - traefik.http.routers.tcaudio.entrypoints=websecure
        - traefik.http.routers.tcaudio.tls.certresolver=letsencryptresolver
        - traefik.http.services.tcaudio.loadbalancer.server.port=8005
        - traefik.http.services.tcaudio.loadbalancer.passHostHeader=true
        - traefik.http.routers.tcaudio.service=tcaudio
        - traefik.http.middlewares.traefik-compress.compress=true
        - traefik.http.routers.tcaudio.middlewares=traefik-compress
        # Configuração do Streamlit
        - traefik.http.routers.tcaudio-manager.rule=Host(`manager.seu.dominio.com`)   #coloque seu subdominio do Manager apontado aqui
        - traefik.http.routers.tcaudio-manager.entrypoints=websecure
        - traefik.http.routers.tcaudio-manager.tls.certresolver=letsencryptresolver
        - traefik.http.services.tcaudio-manager.loadbalancer.server.port=8501
        - traefik.http.routers.tcaudio-manager.service=tcaudio-manager
    command: ./start.sh

  redis-transcrevezap:
    image: redis:6
    command: redis-server --port 6380 --appendonly yes
    volumes:
      - redis_transcrevezap_data:/data
    networks:
      - sua_rede_externa # Substitua pelo nome da sua rede externa

networks:
  sua_rede_externa:  # Substitua pelo nome da sua rede externa
    external: true
    name: sua_rede_externa  # Substitua pelo nome da sua rede externa

volumes:
  redis_transcrevezap_data:
    driver: local

Endpoint para inserir no webhook da Evolution API para consumir o serviço

https://transcricaoaudio.seudominio.com.br/transcreve-audios

🔧 Configuração do Traefik

Para usar com Traefik, certifique-se de:

  1. Ter o Traefik configurado em seu ambiente Docker Swarm
  2. Configurar 2 DNS do seu domínio para apontar para a API e para o MANAGER
  3. Ajustar as labels do Traefik conforme seu ambiente
  4. Verificar se a rede externa existe no Docker Swarm
  5. Utilize a stack de exemplo contida no projeto para guiar a instalação

📝 Notas Importantes

  • A GROQ_API_KEY deve começar com 'gsk_'
  • O BUSINESS_MESSAGE suporta formatação do WhatsApp (negrito, itálico)
  • Para quebras de linha no BUSINESS_MESSAGE, use \n
  • Em produção, recomenda-se DEBUG_MODE=false
  • Configure LOG_LEVEL=DEBUG apenas para troubleshooting

🔍 Troubleshooting

Se encontrar problemas:

  1. Verifique se todas as variáveis obrigatórias estão configuradas
  2. Ative DEBUG_MODE=true temporariamente
  3. Verifique os logs do container
  4. Certifique-se que as APIs estão acessíveis

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.


AJUDE CONTRIBUINDO COM O PROJETO, FAÇA O PIX NO QR CODE

PIX

About

Transcreve mensagens de áudio no WhatsApp usando a Evolution API e o Groq.

Resources

License

Stars

Watchers

Forks

Packages

No packages published