124 lines
4.9 KiB
Markdown
124 lines
4.9 KiB
Markdown
# 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.
|
|
|
|
---
|
|
|
|
## 📋 **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
|
|
|
|
---
|
|
|
|
## ⚙️ **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
|
|
```
|
|
Para sair do ambiente virtual, use:
|
|
```bash
|
|
deactivate
|
|
```
|
|
### 🚀 Como Executar Localmente
|
|
Certifique-se de que todas as dependências foram instaladas.
|
|
Rode o comando abaixo para iniciar o servidor:
|
|
```bash
|
|
uvicorn main:app --host 0.0.0.0 --port 8005
|
|
```
|
|
Acesse o serviço localmente em: http://127.0.0.1:8005.
|
|
|
|
### 🌐 Configuração de Webhook na Evolution API
|
|
Endpoint para Webhook
|
|
Use o seguinte endpoint para configurar seu webhook na Evolution API:
|
|
```bash
|
|
https://transcricaoaudio.seudominio.com.br/transcreve-audios
|
|
```
|
|
### Testando Localmente
|
|
Se estiver rodando localmente, use o comando curl para testar:
|
|
```bash
|
|
curl --location 'http://127.0.0.1:8005/transcreve-audios'
|
|
```
|
|
### 🐳 Instalação com Docker Swarm e Traefik
|
|
Se preferir rodar o projeto em um ambiente de produção com Docker Swarm e Traefik, use o arquivo de configuração abaixo como referência.
|
|
|
|
docker-compose.yaml
|
|
```bash
|
|
version: "3.7"
|
|
|
|
services:
|
|
transcricaoaudio:
|
|
image: impacteai/transcrevezap:latest
|
|
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
|
|
WHATSAPP_API_KEY: "substitua_sua_chave_aqui" #coloque sua api key evolution aqui
|
|
WHATSAPP_API_URL: "https://suaevolutionapi.sedominio.com.br/" #coloque sua url evolution aqui
|
|
WHATSAPP_INSTANCE: "substitua_sua_instancia_aqui" #coloque nome da sua instancia evolution aqui
|
|
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
|
|
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
|
|
```
|
|
---
|
|
|
|
## 📖 **Configuração das Variáveis de Ambiente**
|
|
Ao usar o Docker Compose, configure as seguintes variáveis de ambiente no arquivo `docker-compose.yaml`:
|
|
|
|
| Variável | Descrição |
|
|
|------------------------|--------------------------------------------------------------------------------------------|
|
|
| `WHATSAPP_API_KEY` | Chave da API Evolution para integração com o WhatsApp. |
|
|
| `WHATSAPP_API_URL` | URL da sua instância da Evolution API. |
|
|
| `WHATSAPP_INSTANCE` | Nome da instância configurada na Evolution API. |
|
|
| `GROQ_API_KEY` | Chave da API GROQ para realizar transcrições e resumos de áudios. |
|
|
| `BUSINESS_MESSAGE` | Mensagem de divulgação que será adicionada ao final das transcrições. |
|
|
| `PROCESS_GROUP_MESSAGES` | Define se mensagens enviadas em grupos devem ser processadas (`true`) ou ignoradas (`false`). |
|
|
|
|
--- |