Por padrão, o IBM Bob solicitará sua autorização antes de executar ações que possam causar alterações significativas, como gravar arquivos, executar comandos no Terminal ou rodar testes.
O IBM Bob também permite configurar níveis de autonomia através do recurso de Auto-Approval. As opções incluem:
Configuração
Comportamento
Quando utilizar
Aprovação manual
Todas as ações exigem confirmação explícita do usuário
Bases de código sensíveis ou tarefas desconhecidas
Aprovação automática (Auto-approve)
O Bob executa as ações sem interrupções
Demonstrações controladas e ambientes confiáveis
Modo híbrido
Aprova automaticamente ações de baixo risco e solicita confirmação para ações mais críticas
Desenvolvimento do dia a dia
A configuração de aprovação automática (auto-approval) determina se essas ações serão executadas automaticamente ou se serão interrompidas para sua revisão. O IBM Bob também permite configurar níveis de autonomia através do recurso Aprovação Manual
Modelo Híbrido
Algumas ações são aprovadas automaticamente e outras exigem confirmação.
Na minha visão, essa costuma ser a melhor opção para a maioria dos projetos corporativos.
Por exemplo:
? Permitir leitura e escrita de arquivos automaticamente.
? Solicitar aprovação antes da execução de comandos no terminal.
Dessa forma é possível equilibrar produtividade e segurança.
Nem sempre o melhor código é possível ser escrito. Escrever código que funciona bem — rápido, limpo e fácil de manter — dentro do prazo de um projeto, normalmente não é uma realidade.
Neste artigo vou mostrar, na prática, como utilizei o IBM Bob para analisar um script Python intencionalmente ineficiente e transformá-lo em uma versão muito mais performática, utilizando um caso simples, mas extremamente comum: conversão de arquivos CSV para JSON.
O Cenário
O objetivo do projeto era relativamente simples:
Ler um arquivo CSV contendo informações de pessoas.
Normalizar os dados.
Gerar um arquivo JSON de saída.
A lógica de negócio é bastante simples. O diferencial está na implementação.
Ambos os scripts foram executados no mesmo ambiente e utilizando exatamente o mesmo conjunto de dados.
Na tabela a seguir segue o comparativo antes e depois.
Aspecto
Versão Original
Versão Otimizada
Tempo de execução
41,8 ms
0,93 ms
Normalização
Múltiplos laços
Operações nativas
Leitura CSV
Processamento intermediário
Leitura direta
Serialização JSON
Operações redundantes
Processamento único
Escrita de arquivo
Caracteres individuais
Escrita otimizada
Pausas artificiais
Sim
Não
Tamanho do código
~110 linhas
~50 linhas
O Prompt para o IBM Bob
Com o script em mãos, basta colar o código no IBM Bob e usar o seguinte prompt:
Você é um engenheiro Python sênior especialista em performance.
Analise o script abaixo (main-low.py) e gere uma versão otimizada chamada main-high.py.
Requisitos para a versão otimizada:
1) Manter exatamente a mesma interface de linha de comando: python3 main-high.py entrada.csv saida.json
2) Manter o mesmo formato de saída JSON (array de objetos com chaves e valores em letras minúsculas, sem espaços extras).
3) colocar o tempo de inicio e fim e o tempo de execuçã no arquivo main-high.py.
4) criar um prompt para que eu faça o rebuild dessa primeira pasta mas com alta performance.
Durante a análise, o Bob conseguiu:
Identificar gargalos de performance.
Detectar concatenações ineficientes de strings.
Encontrar operações desnecessárias de serialização JSON.
Simplificar a leitura e escrita de arquivos.
Aplicar estruturas mais idiomáticas da linguagem Python.
Tornar o código mais legível e mais fácil de manter.
O interessante é que o Bob não apenas gerou uma nova versão do programa, mas também justificou tecnicamente cada alteração realizada.
Se o seu custo de Cloud já está ultrapassando US$ 10.000 ou mais de US$ 100.000 por mês, vale a pena experimentar esse tipo de análise assistida pelo IBM Bob.
Revisar scripts legados, aplicações com problemas de performance e identificar oportunidades de modernização para arquiteturas serverless pode revelar gargalos e desperdícios que passam despercebidos no dia a dia, permitindo reduzir consumo de CPU, memória e tempo de execução, com impacto direto nos custos operacionais da infraestrutura.