Documentação Banrisul
Banrisul
1. Visão Geral
O projeto do Banrisul surgiu a partir de duas Provas de Conceito (PoCs) bem-sucedidas. Seu objetivo é aplicar a inteligência artificial para modernizar processos internos, aumentando a eficiência, a qualidade e a escalabilidade. As duas frentes de atuação são a otimização do atendimento no back office e a melhoria da qualidade do SAC.
Objetivos:
QnA backoffice: A meta é otimizar o processo de esclarecimento de dúvidas para funcionários em diferentes setores. A solução tem como objetivo gerar respostas assertivas para perguntas com base em documentos internos e informações da internet, reduzindo o esforço das pessoas e o tempo de resposta, que atualmente pode levar até dois dias úteis.
Qualidade do SAC: O objetivo é automatizar os processos de extração, sumarização e categorização de conteúdos das gravações de atendimento, além de possibilitar a análise de KPIs de qualidade. Isso favorecerá a tomada de decisões mais embasadas para a melhoria do NPS (Net Promoter Score) e a redução do esforço do atendente em atividades de registro de chamados.
ValiDocs: O objetivo é automatizar a validação de documentos a partir de templates.
Público-alvo: O projeto é destinado aos funcionários do Banrisul, visando otimizar as áreas de back office e SAC
Status Atual: O projeto está em andamento, dando continuidade aos resultados positivos
2. Equipe e Responsáveis
- Product Owner (PO): Eloise Miyazaki(eloise.miyazaki@atos.net)
- Project Manager (PM): Marcelo Rodrigues (marcelo.rodrigues@atos.net)
- Tech Lead IA: Lucas Albini (lucas.albini@atos.net)
- Tech Lead AMS: Thiago Santana (thiago.2.santana@atos.net)
- Desenvolvedores IA:
- Icaro Moura (icaro.moura@atos.net)
- Julia Bezerra (julia.bezerra@atos.net)
- Desenvolvedores AMS:
- Juliana Castro (juliana.castro@atos.net)
- Diego Farina (diego.farina@atos.net)
- Arquiteto: ??
- DevOps: Cesar Cadoná (cesar.cadona@atos.net)
- Acessos Azure: Eduardo Nepomuceno (eduardo.nepomuceno@atos.net)
3. Tecnologias e Definições
Fluxograma da aplicação:
![[Pasted image 20250815133854.png]]
Arquitetura preliminar cloud:
![[Pasted image 20250815134104.png]]
Frontend:
- Framework: React
- Linguagem: JavaScript
- Gerenciador de Pacotes: npm
Backend:
- Framework: FastAPI
- Linguagem: Python
- IA e LLM: Azure OpenAI
Infraestrutura:
- Deployment: Kubernetes, AppServices
4. Como Rodar o Projeto
4.1 Analise de áudio
Pré-requisitos
Certifique-se de ter o seguinte instalado:
- Python 3.12 ou superior
- FFmpeg (para manipulação de áudio)
- Docker (opcional, para execução em contêiner)
- Acesso a um banco de dados PostgreSQL
- Credenciais para um serviço de transcrição (OpenAI ou Azure) e, opcionalmente, para o Azure Blob Storage.
Configuração e Execução
1. Configuração do Ambiente
Clone o repositório e navegue até a pasta do backend:
git clone <url_do_repositorio>
cd febraban-2025-analise-audio/backend
Crie e ative um ambiente virtual:
python3 -m venv env-audio
source env-audio/bin/activate # Linux/macOS
# ou
.\env-audio\Scripts\activate # Windows
Instale as dependências:
pip install -r requirements.txt
2. Variáveis de Ambiente
Crie um arquivo .env
na pasta backend/
a partir do exemplo backend/.env.example
.
# --- Configurações do Banco de Dados ---
DB_HOST=localhost
DB_PORT=5432
DB_NAME=audio_analysis
DB_USER=postgres
DB_PASSWORD=sua_senha_aqui
# --- Configurações do Armazenamento ---
# Se as credenciais do Azure não forem fornecidas, o sistema usará o armazenamento local na pasta /storage/uploads
STORAGE_ACCOUNT_NAME=seu_storage_account_aqui
STORAGE_ACCOUNT_KEY=sua_storage_key_aqui
BLOB_CONTAINER_NAME=audio-files
# --- Configurações do Serviço de Transcrição ---
# Escolha "openai" ou "azure". Se deixado em branco, usará um mock.
TRANSCRIPTION_SERVICE=openai
# --- Credenciais OpenAI ---
OPENAI_API_KEY=sua_chave_openai_aqui
# --- Credenciais Azure Speech ---
AZURE_SPEECH_KEY=sua_chave_speech_aqui
AZURE_SPEECH_REGION=sua_regiao_speech_aqui
3. Banco de Dados
Execute o script de inicialização para criar o banco de dados e as tabelas necessárias:
# Certifique-se que seu ambiente virtual está ativado
bash scripts/init_db.sh
4. Executando a Aplicação
Com o ambiente virtual ativado e o .env
configurado, inicie o servidor:
uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload
A API estará disponível em http://localhost:8000/docs.
Execução com Docker
Construa a imagem Docker:
docker build -t analise-audio-backend .
Execute o contêiner:
docker run -d --name audio-backend-container \
-p 8000:8000 \
--env-file ./.env \
analise-audio-backend
A API estará disponível em http://localhost:8000/docs.
Endpoints da API
A documentação interativa completa com todos os endpoints e schemas está disponível na interface do Swagger em http://localhost:8000/docs.
Principais Endpoints
Análise de Áudio
POST /audio/upload
: Envia um novo arquivo de áudio para ser processado e analisado.GET /audio/
: Lista todos os áudios e seus status de análise.GET /audio/{audio_id}
: Retorna os detalhes e o resultado da análise de um áudio específico.
Gerenciamento de KPIs
POST /kpis/
: Cria um novo KPI para ser usado nas análises.GET /kpis/
: Lista todos os KPIs cadastrados.GET /kpis/{kpi_id}
: Retorna os detalhes de um KPI específico.PUT /kpis/{kpi_id}
: Atualiza um KPI existente.DELETE /kpis/{kpi_id}
: Deleta um KPI.
Validação (Exemplo)
POST /validate/
: Endpoint de exemplo para processos de validação.
4.2 Chatbot
Pré-requisitos
Certifique-se de ter instalado:
- Python 3.11 ou superior
- Docker (opcional)
- Acesso a um banco de dados MongoDB (ou Azure Cosmos DB com API do MongoDB)
- Credenciais para os seguintes serviços da Azure:
- Azure Blob Storage
- Azure AI Search
- Azure OpenAI
Execução Local
Passo 1: Criar ambiente virtual
# Clone o repositório (se ainda não o fez)
git clone <URL_DO_SEU_REPOSITORIO>
cd Setup-Bot-IA
# Crie e ative o ambiente virtual
python3 -m venv env
source env/bin/activate # ou .\env\Scripts\activate no Windows
Passo 2: Instalar dependências
pip install -r requirements.txt
Passo 3: Criar arquivo .env
Crie um arquivo chamado .env
na raiz do projeto, copiando o conteúdo de env-template
. Preencha as variáveis com suas credenciais e configurações.
As variáveis essenciais são:
# Credenciais do Azure OpenAI
AZURE_API_KEY=sua_chave_openai_aqui
AZURE_ENDPOINT=seu_endpoint_openai_aqui
OPEN_AI_DEPLOYMENT_NAME=seu_modelo_de_deploy_aqui
# Credenciais do Azure AI Search
SEARCH_SERVICE_ENDPOINT=seu_endpoint_ai_search_aqui
SEARCH_API_KEY=sua_chave_ai_search_aqui
# Conexão do Azure Blob Storage
BLOB_CONNECTION_STRING="sua_connection_string_aqui"
ACCOUNT_KEY=sua_chave_de_conta_aqui
AZURE_STORAGE_ACCOUNT=seu_nome_de_conta_aqui
# Conexão do MongoDB
MONGODB_CONNECTION_STRING="sua_connection_string_mongodb_aqui"
MONGODB_DB_NAME=seu_banco_de_dados_aqui
# Configurações do Bot
BOT_NAME=nome_do_seu_bot # Será o nome do container e do índice
CONFIG_FILE_CONTAINER=nome_do_container_de_configs
REFERENCE_CONTAINER=nome_do_container_de_referencia
Passo 4: Inicializar e rodar o servidor
# Execute a aplicação com Uvicorn
uvicorn main:app --host 0.0.0.0 --port 5000 --reload
- A API estará disponível em http://localhost:5000/docs
Execução com Docker
Passo 1: Construir a imagem Docker
docker build -t setup-bot-backend .
Passo 2: Executar o contêiner
Certifique-se de que seu arquivo .env
está preenchido corretamente.
docker run -d --name bot-backend-container \
-p 5000:5000 \
--env-file ./.env \
setup-bot-backend
- A API estará disponível em http://localhost:5000/docs
Endpoints da API
Acesse a documentação interativa do Swagger em http://localhost:5000/docs para explorar e testar todos os endpoints.
A maioria dos endpoints retorna um objeto JSON com a seguinte estrutura:
{
"data": "<conteúdo da resposta ou null>",
"success": true | false,
"message": "mensagem descritiva da operação"
}
Gerenciamento de Documentos do Bot
POST /bots/{bot_name}/store_document
: Envia um novo documento (.pdf, .docx, etc.) para ser indexado pelo bot.POST /bots/{bot_name}/list_documents/
: Lista todos os documentos que o bot já processou.POST /bots/{bot_name}/delete_document/
: Deleta um documento do índice e do armazenamento do bot.
Interação com o Bot
POST /bots/{user_email}/get_response/{chat_id}
: Envia uma pergunta do usuário (user_query
) e obtém a resposta do bot.GET /bots/redirect_to_file/{document_name}/{pagina}
: Gera um link de acesso temporário para um arquivo fonte usado na resposta.
Gerenciamento de Usuários e Chats
POST /bots/
: Cria um novo usuário.GET /bots/
: Lista todos os usuários.GET /bots/{user_email}
: Retorna os dados e chats de um usuário específico.DELETE /bots/{user_email}
: Deleta um usuário.POST /bots/{user_email}/add_chat/
: Adiciona um novo chat para um usuário.DELETE /bots/{user_email}/delete_chat/{chat_id}
: Deleta um chat específico de um usuário.GET /bots/{user_email}/chat_history/{chat_id}
: Retorna o histórico de um chat.POST /bots/update_feedback/
: Envia um feedback (1 para positivo, -1 para negativo) para uma mensagem específica no histórico.
4.3 ValiDocs
Pré-requisitos
Certifique-se de ter instalado:
- Python 3.12 ou superior
- Docker (opcional)
- Acesso a um banco de dados PostgreSQL
- Credenciais para Azure Blob Storage
Execução Local
Passo 1: Criar ambiente virtual
cd backend
python3 -m venv env-backend
source env-backend/bin/activate # ou .\env-backend\Scripts\activate no Windows
Passo 2: Instalar dependências
pip install -r requirements.txt
Passo 3: Criar arquivo .env
# Configurações do Banco de Dados
DB_USER=seu_usuario_aqui
DB_PASSWORD=sua_senha_aqui
DB_HOST=localhost
DB_PORT=5432
DB_NAME=seu_banco_de_dados_aqui
# Credenciais do Azure
AZURE_STORAGE_CONNECTION_STRING="sua_connection_string_aqui"
AZURE_STORAGE_CONTAINER_NAME="seu_container_name_aqui"
Passo 4: Inicializar banco e rodar servidor
python -m src.utils.migrate_db
uvicorn src.main:app --host 0.0.0.0 --port 8001 --reload
- A API estará disponível em http://localhost:8001/docs
Execução com Docker
Passo 1: Construir imagem Docker
docker build -t validacao-docs-backend .
Passo 2: Executar contêiner
docker run -d --name backend-container \
-p 8001:8001 \
--env-file ./.env \
validacao-docs-backend
- A API estará disponível em http://localhost:8001/docs
Endpoints da API (Uso Principal)
Acesse a documentação interativa do Swagger em http://localhost:8001/docs para explorar e testar todos os endpoints.
Validação de Documentos
POST /validate/
: Envia um novo documento para análise
Consulta de Resultados
GET /documents/
: Lista todas as análises já processadasGET /documents/{document_id}
: Retorna os detalhes de uma análise específica
Gerenciamento de Templates (KPIs)
POST /templates/
: Cria um novo template de validaçãoGET /templates/
: Lista todos os templates existentesPUT /templates/{template_id}
: Atualiza um templateDELETE /templates/{template_id}
: Deleta um template
5. Links Importantes
Gravação Recapitular: Banrisul Agents 25 de jul. | Reunião | Microsoft Teams