186 lines
7.5 KiB
Markdown
186 lines
7.5 KiB
Markdown
# TranscreveZAP 1.0
|
|
## Transcrição e Resumo de Áudios no WhatsApp usando Python
|
|
|
|

|
|
|
|
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: contato@impacte.ai
|
|
([ACESSE NOSSO SITE](https://impacte.ai/))
|
|
|
|
Nosso Grupo do Whatsapp: ([Entre no GRUPO AQUI](https://chat.whatsapp.com/L9jB1SlcmQFIVxzN71Y6KG))
|
|
---
|
|
|
|
## 📋 **Pré-requisitos**
|
|
Antes de começar, certifique-se de ter os seguintes requisitos:
|
|
- Python 3.10+ instalado ([Download](https://www.python.org/downloads/))
|
|
- Docker e Docker Compose instalados ([Instruções](https://docs.docker.com/get-docker/))
|
|
- Uma conta Evolution API com chave válida
|
|
- Uma conta GROQ API com chave válida (começa com 'gsk_') ([Crie sua CONTA](https://console.groq.com/login))
|
|
|
|
---
|
|
|
|
## ⚙️ **Setup Local**
|
|
|
|
### Ambiente Virtual
|
|
Configure o ambiente virtual para instalar as dependências do projeto:
|
|
|
|
#### **Linux ou macOS**
|
|
```bash
|
|
virtualenv venv
|
|
source ./venv/bin/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
#### **Windows**
|
|
```bash
|
|
python -m venv .venv
|
|
source .venv/Scripts/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Configuração do Arquivo .env
|
|
Copie o arquivo `.env.example` para `.env` e configure suas variáveis:
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
## 📖 **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
|
|
```bash
|
|
uvicorn main:app --host 0.0.0.0 --port 8005
|
|
```
|
|
### Endpoint para inserir no webhook da Evolution API para consumir o serviço
|
|
```bash
|
|
http://127.0.0.1:8005/transcreve-audios
|
|
```
|
|
|
|
### 🐳 Docker Compose Simples
|
|
```yaml
|
|
version: "3.7"
|
|
services:
|
|
transcricaoaudio:
|
|
image: impacteai/transcrevezap:1.0
|
|
ports:
|
|
- 8005:8005
|
|
environment:
|
|
Uvicorn_port: 8005
|
|
Uvicorn_host: 0.0.0.0
|
|
Uvicorn_reload: "true"
|
|
Uvicorn_workers: 1
|
|
GROQ_API_KEY: "substitua_sua_chave_GROQ_aqui" #coloque sua chave GROQ aqui
|
|
BUSINESS_MESSAGE: "substitua_sua_mensagem_de_servico_aqui" #coloque a mensagem que será enviada ao final da transcrição aqui
|
|
PROCESS_GROUP_MESSAGES: "false" # Define se mensagens de grupos devem ser processadas
|
|
PROCESS_SELF_MESSAGES: "true" # Define se sua próprias mensagens devem ser processadas
|
|
DEBUG_MODE: "false"
|
|
LOG_LEVEL: "INFO"
|
|
```
|
|
|
|
### 🌟 Docker Swarm com Traefik
|
|
```yaml
|
|
version: "3.7"
|
|
|
|
services:
|
|
transcricaoaudio:
|
|
image: impacteai/transcrevezap:1.0
|
|
build: .
|
|
networks:
|
|
- suarededocker #troque pela sua rede do docker
|
|
ports:
|
|
- 8005:8005
|
|
environment:
|
|
Uvicorn_port: 8005
|
|
Uvicorn_host: 0.0.0.0
|
|
Uvicorn_reload: "true"
|
|
Uvicorn_workers: 1
|
|
GROQ_API_KEY: "substitua_sua_chave_GROQ_aqui" #coloque sua chave GROQ aqui
|
|
BUSINESS_MESSAGE: "substitua_sua_mensagem_de_servico_aqui" #coloque a mensagem que será enviada ao final da transcrição aqui
|
|
PROCESS_GROUP_MESSAGES: "false" # Define se mensagens de grupos devem ser processadas
|
|
PROCESS_SELF_MESSAGES: "true" # Define se sua próprias mensagens devem ser processadas
|
|
DEBUG_MODE: "false"
|
|
LOG_LEVEL: "INFO"
|
|
deploy:
|
|
mode: replicated
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.transcricaoaudio.rule=Host(`transcricaoaudio.seudominio.com.br`) #coloque seu subdominio apontado aqui
|
|
- traefik.http.routers.transcricaoaudio.entrypoints=websecure
|
|
- traefik.http.routers.transcricaoaudio.tls.certresolver=letsencryptresolver
|
|
- traefik.http.services.transcricaoaudio.loadbalancer.server.port=8005
|
|
- traefik.http.services.transcricaoaudio.loadbalancer.passHostHeader=true
|
|
- traefik.http.routers.transcricaoaudio.service=transcricaoaudio
|
|
- traefik.http.middlewares.traefik-compress.compress=true
|
|
- traefik.http.routers.transcricaoaudio.middlewares=traefik-compress
|
|
resources:
|
|
limits:
|
|
cpus: "1"
|
|
memory: 1024M
|
|
|
|
networks:
|
|
suarededocker: #troque pela sua rede do docker
|
|
external: true
|
|
name: suarededocker #troque pela sua rede do docker
|
|
```
|
|
|
|
### Endpoint para inserir no webhook da Evolution API para consumir o serviço
|
|
```bash
|
|
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 o DNS do seu domínio para apontar para o servidor
|
|
3. Ajustar as labels do Traefik conforme seu ambiente
|
|
4. Verificar se a rede externa existe no Docker Swarm
|
|
|
|
## 📝 **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](LICENSE) para detalhes.
|
|
|
|
---
|
|
### SE QUISER CONTRIBUIR COM O PROJETO, FAÇA O PIX NO QR CODE
|
|

|
|
--- |