alterações nas orientações de uso da nova aplicação

This commit is contained in:
Fábio Cavalcanti 2024-12-11 23:39:07 -03:00
parent a299805fee
commit 74f01bfb1d
5 changed files with 141 additions and 90 deletions

View File

@ -3,30 +3,24 @@ version: "3.7"
services: services:
tcaudio: tcaudio:
image: impacteai/transcrevezap:latest image: impacteai/transcrevezap:latest
build: .
networks: networks:
- suarededocker - transcrevezap_network
ports: ports:
- 8005:8005 # FastAPI - 8005:8005 # Porta para FastAPI
- 8501:8501 # Streamlit - 8501:8501 # Porta para Streamlit
environment: environment:
Uvicorn_port: 8005 - UVICORN_PORT=8005
Uvicorn_host: 0.0.0.0 - UVICORN_HOST=0.0.0.0
Uvicorn_reload: "true" - UVICORN_RELOAD=true
Uvicorn_workers: 1 - UVICORN_WORKERS=1
GROQ_API_KEY: "${GROQ_API_KEY}" - DEBUG_MODE=false
BUSINESS_MESSAGE: "*Impacte AI* Premium Services" - LOG_LEVEL=INFO
PROCESS_GROUP_MESSAGES: "false" - MANAGER_USER=seu_usuario_admin
PROCESS_SELF_MESSAGES: "true" - MANAGER_PASSWORD=sua_senha_segura
DEBUG_MODE: "false" - REDIS_HOST=redis-transcrevezap
LOG_LEVEL: "INFO" - REDIS_PORT=6380
MANAGER_USER: "admin" depends_on:
MANAGER_PASSWORD: "impacte2024" - redis-transcrevezap
volumes:
- ./config.json:/app/config.json
- ./backups:/app/backups
- ./transcription_logs.json:/app/transcription_logs.json
- ./static:/app/static
deploy: deploy:
mode: replicated mode: replicated
replicas: 1 replicas: 1
@ -35,7 +29,7 @@ services:
- node.role == manager - node.role == manager
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.tcaudio.rule=Host(`transcrevezap.seudominio.com.br`) - traefik.http.routers.tcaudio.rule=Host(`seu.dominio.com`)
- traefik.http.routers.tcaudio.entrypoints=websecure - traefik.http.routers.tcaudio.entrypoints=websecure
- traefik.http.routers.tcaudio.tls.certresolver=letsencryptresolver - traefik.http.routers.tcaudio.tls.certresolver=letsencryptresolver
- traefik.http.services.tcaudio.loadbalancer.server.port=8005 - traefik.http.services.tcaudio.loadbalancer.server.port=8005
@ -44,13 +38,26 @@ services:
- traefik.http.middlewares.traefik-compress.compress=true - traefik.http.middlewares.traefik-compress.compress=true
- traefik.http.routers.tcaudio.middlewares=traefik-compress - traefik.http.routers.tcaudio.middlewares=traefik-compress
# Configuração do Streamlit # Configuração do Streamlit
- traefik.http.routers.tcaudio-manager.rule=Host(`manager.transcrevezap.seudominio.com.br`) - traefik.http.routers.tcaudio-manager.rule=Host(`manager.seu.dominio.com`)
- traefik.http.routers.tcaudio-manager.entrypoints=websecure - traefik.http.routers.tcaudio-manager.entrypoints=websecure
- traefik.http.routers.tcaudio-manager.tls.certresolver=letsencryptresolver - traefik.http.routers.tcaudio-manager.tls.certresolver=letsencryptresolver
- traefik.http.services.tcaudio-manager.loadbalancer.server.port=8501 - traefik.http.services.tcaudio-manager.loadbalancer.server.port=8501
- traefik.http.routers.tcaudio-manager.service=tcaudio-manager - 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:
- transcrevezap_network
networks: networks:
suarededocker: transcrevezap_network:
external: true external: true
name: suarededocker name: sua_rede_externa # Substitua pelo nome da sua rede externa
volumes:
redis_transcrevezap_data:
driver: local

BIN
fluxo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

@ -68,7 +68,9 @@ def show_logo():
try: try:
logo_path = os.path.join(os.path.dirname(__file__), "static", "fluxo.png") logo_path = os.path.join(os.path.dirname(__file__), "static", "fluxo.png")
if os.path.exists(logo_path): if os.path.exists(logo_path):
st.image(logo_path, width=150) col1, col2, col3 = st.columns([1, 2, 1])
with col2:
st.image(logo_path, width=300) # Aumentado o tamanho para 300
else: else:
st.warning("Logo não encontrada.") st.warning("Logo não encontrada.")
except Exception as e: except Exception as e:
@ -77,7 +79,7 @@ def show_logo():
def show_footer(): def show_footer():
st.markdown( st.markdown(
""" """
<div class="footer"> <div class="footer" style="text-align: center; margin-top: 50px;">
<p>Desenvolvido por <a href="https://impacte.ai" target="_blank">Impacte AI</a> | <p>Desenvolvido por <a href="https://impacte.ai" target="_blank">Impacte AI</a> |
Código fonte no <a href="https://github.com/impacte-ai/transcrevezap" target="_blank">GitHub</a></p> Código fonte no <a href="https://github.com/impacte-ai/transcrevezap" target="_blank">GitHub</a></p>
</div> </div>

168
readme.md
View File

@ -19,29 +19,74 @@ Antes de começar, certifique-se de ter os seguintes requisitos:
--- ---
## ⚙️ **Setup Local** ## 🚀 **Instalação e Configuração**
### Ambiente Virtual ### 🐳 Docker Compose
Configure o ambiente virtual para instalar as dependências do projeto: 1. Clone o repositório:
```bash
git clone https://github.com/seu-usuario/transcrevezap.git
cd transcrevezap
```
2. Configure o arquivo `docker-compose.yaml`:
```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
- 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
#### **Linux ou macOS** volumes:
```bash redis_data:
virtualenv venv
source ./venv/bin/activate
pip install -r requirements.txt
``` ```
#### **Windows** 3. Inicie os serviços:
```bash ```bash
python -m venv .venv docker-compose up -d
source .venv/Scripts/activate
pip install -r requirements.txt
``` ```
### Configuração do Arquivo .env ## 📖 Configuração da Interface
Copie o arquivo `.env.example` para `.env` e configure suas variáveis:
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:
GROQ_API_KEY: Sua chave da API GROQ
BUSINESS_MESSAGE: Mensagem de rodapé após transcrição
PROCESS_GROUP_MESSAGES: Habilitar processamento de mensagens em grupos
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:
```bash ```bash
cp .env.example .env http://seu-ip:8005/transcreve-audios
``` ```
## 🔍 Troubleshooting
Se encontrar problemas:
1. Verifique os logs dos containers:
```bash
docker-compose logs
```
2. Certifique-se de que o Redis está rodando e acessível.
3. Verifique se todas as configurações foram salvas corretamente na interface.
## 📖 **Configuração Detalhada das Variáveis** ## 📖 **Configuração Detalhada das Variáveis**
### Variáveis Essenciais ### Variáveis Essenciais
@ -78,50 +123,32 @@ uvicorn main:app --host 0.0.0.0 --port 8005
http://127.0.0.1:8005/transcreve-audios http://127.0.0.1:8005/transcreve-audios
``` ```
### 🐳 Docker Compose Simples
```yaml
version: "3.7"
services:
transcricaoaudio:
image: impacteai/transcrevezap:latest
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 ### 🌟 Docker Swarm com Traefik
```yaml ```yaml
version: "3.7" version: "3.7"
services: services:
transcricaoaudio: tcaudio:
image: impacteai/transcrevezap:latest image: impacteai/transcrevezap:latest
build: .
networks: networks:
- suarededocker #troque pela sua rede do docker - transcrevezap_network
ports: ports:
- 8005:8005 - 8005:8005 # Porta para FastAPI
- 8501:8501 # Porta para Streamlit
environment: environment:
Uvicorn_port: 8005 - UVICORN_PORT=8005
Uvicorn_host: 0.0.0.0 - UVICORN_HOST=0.0.0.0
Uvicorn_reload: "true" - UVICORN_RELOAD=true
Uvicorn_workers: 1 - UVICORN_WORKERS=1
GROQ_API_KEY: "substitua_sua_chave_GROQ_aqui" #coloque sua chave GROQ aqui - DEBUG_MODE=false
BUSINESS_MESSAGE: "substitua_sua_mensagem_de_servico_aqui" #coloque a mensagem que será enviada ao final da transcrição aqui - LOG_LEVEL=INFO
PROCESS_GROUP_MESSAGES: "false" # Define se mensagens de grupos devem ser processadas - MANAGER_USER=seu_usuario_admin
PROCESS_SELF_MESSAGES: "true" # Define se sua próprias mensagens devem ser processadas - MANAGER_PASSWORD=sua_senha_segura
DEBUG_MODE: "false" - REDIS_HOST=redis-transcrevezap
LOG_LEVEL: "INFO" - REDIS_PORT=6380
depends_on:
- redis-transcrevezap
deploy: deploy:
mode: replicated mode: replicated
replicas: 1 replicas: 1
@ -130,23 +157,38 @@ services:
- node.role == manager - node.role == manager
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.http.routers.transcricaoaudio.rule=Host(`transcricaoaudio.seudominio.com.br`) #coloque seu subdominio apontado aqui - traefik.http.routers.tcaudio.rule=Host(`seu.dominio.com`)
- traefik.http.routers.transcricaoaudio.entrypoints=websecure - traefik.http.routers.tcaudio.entrypoints=websecure
- traefik.http.routers.transcricaoaudio.tls.certresolver=letsencryptresolver - traefik.http.routers.tcaudio.tls.certresolver=letsencryptresolver
- traefik.http.services.transcricaoaudio.loadbalancer.server.port=8005 - traefik.http.services.tcaudio.loadbalancer.server.port=8005
- traefik.http.services.transcricaoaudio.loadbalancer.passHostHeader=true - traefik.http.services.tcaudio.loadbalancer.passHostHeader=true
- traefik.http.routers.transcricaoaudio.service=transcricaoaudio - traefik.http.routers.tcaudio.service=tcaudio
- traefik.http.middlewares.traefik-compress.compress=true - traefik.http.middlewares.traefik-compress.compress=true
- traefik.http.routers.transcricaoaudio.middlewares=traefik-compress - traefik.http.routers.tcaudio.middlewares=traefik-compress
resources: # Configuração do Streamlit
limits: - traefik.http.routers.tcaudio-manager.rule=Host(`manager.seu.dominio.com`)
cpus: "1" - traefik.http.routers.tcaudio-manager.entrypoints=websecure
memory: 1024M - 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:
- transcrevezap_network
networks: networks:
suarededocker: #troque pela sua rede do docker transcrevezap_network:
external: true external: true
name: suarededocker #troque pela sua rede do docker 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 ### Endpoint para inserir no webhook da Evolution API para consumir o serviço
@ -180,6 +222,6 @@ Se encontrar problemas:
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes. 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 ### AJUDE CONTRIBUINDO COM O PROJETO, FAÇA O PIX NO QR CODE
![PIX](./pix.jpeg) ![PIX](./pix.jpeg)
--- ---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 55 KiB