Skip to main content

Uma biblioteca para auditar e resumir Notebooks do Microsoft Fabric usando LLMs.

Project description

Fabric Auditor 🕵️‍♂️📊

Python Version License: MIT Code Style: Black

Fabric Auditor é uma biblioteca Python projetada especificamente para rodar dentro de Microsoft Fabric Notebooks. Ela extrai automaticamente o código do notebook atual, limpa "ruídos" (como boilerplate do Spark e comando mágicos), e envia o código limpo para um Modelo de Linguagem (LLM) para auditoria de segurança, performance ou sumarização.


🚀 Funcionalidades

  • Extração Híbrida "Fail-Safe": Tenta obter o código via API do Fabric (mais preciso). Se falhar ou demorar, faz fallback automático para a memória da sessão (IPython history).
  • Limpeza Inteligente: Remove automaticamente:
    • Cabeçalhos de licença Apache.
    • Blocos de inicialização do Spark (init_spark).
    • Configurações de sc.setJobGroup.
    • Comandos mágicos (%time, %pip).
    • Redação de Segredos: Mascara automaticamente chaves de API (ex: sk-...) antes de enviar ao LLM.
  • Visualização de Input: Permite inspecionar exatamente o que será enviado para o modelo (o código limpo), garantindo transparência no que está sendo auditado.
  • Agnóstico a LLM: Projetado para funcionar com qualquer modelo compatível com LangChain (Azure OpenAI, OpenAI, Ollama, etc.).

📦 Instalação

Instalação no Microsoft Fabric

Como esta biblioteca está em desenvolvimento ou hospedada em repositório Git, você pode instalá-la diretamente no seu ambiente.

Opção 1: Instalação Direta via Session (Notebook)

Você pode instalar diretamente na sessão do notebook usando %pip.

# Repositório Público
%pip install git+https://github.com/flavio-bezerra/fabric-auditor.git
# Repositório Privado (com Token)
%pip install git+https://SEU_TOKEN@github.com/flavio-bezerra/fabric-auditor.git

Opção 2: Instalação via Environment (Recomendado para Produção)

Para disponibilizar a biblioteca em todos os notebooks de um Workspace:

  1. No Microsoft Fabric, vá em Manage environments.
  2. Na seção Public Libraries, adicione as dependências: langchain, openai.
  3. Para a biblioteca fabric_auditor:
    • Upload do Wheel: Gere o .whl localmente com python -m build e faça upload na aba Custom Libraries.
    • PyPI: Se publicada, adicione fabric-auditor nas Public Libraries.
  4. Publique o ambiente e anexe-o ao seu Notebook.

🛠️ Uso Rápido (Configuração Automática)

Se você já possui o ambiente configurado com o arquivo de credenciais padrão, a biblioteca se configura automaticamente:

from fabric_auditor import FabricAuditor
from IPython.display import display, Markdown

# Inicializa sem argumentos -> Tenta ler JSON e KeyVault automaticamente
auditor = FabricAuditor()

# (Opcional) Verifica o que será enviado ao modelo
print("👁️ Input do Modelo:")
print(auditor.get_model_input())

# Executa a auditoria
print("\n🔍 Auditoria:")
display(Markdown(auditor.audit_code()))

# Gera o resumo
print("\n📝 Resumo Resumo:")
display(Markdown(auditor.summarize_notebook()))

Pré-requisitos para Uso Automático

  1. Um arquivo JSON em: {notebookutils.nbResPath}/env/CS_API_REST_LOGIN.json com o formato:
    {
        "tenant_id": "...",
        "client_id": "...",
        "client_secret": "..."
    }
    
  2. Bibliotecas azure-identity e azure-keyvault-secrets instaladas.

⚙️ Configuração Manual (Custom LLM)

Exemplo configurando o modelo manualmente (usando Azure OpenAI):

from fabric_auditor import FabricAuditor
from IPython.display import display, Markdown
from langchain.chat_models import AzureChatOpenAI

# 1. Configuração do Modelo
llm_model = AzureChatOpenAI(
    openai_api_base="https://datasciencellm.openai.azure.com/",
    openai_api_key="SUA_CHAVE_AQUI",
    openai_api_version="2024-12-01-preview",
    deployment_name="gpt-4",
    temperature=0.0
)

# 2. Inicializar o Auditor
auditor = FabricAuditor(llm_client=llm_model)

# 3. Executar
display(Markdown(auditor.audit_code()))

🛡️ Segurança e Privacidade

  • Auto-Exclusão: A biblioteca ignora células que contenham seu próprio código para evitar loops.
  • Redação de Dados: Chaves de API (sk-...) são mascaradas antes do envio.

🤝 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar Pull Requests.

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

Desenvolvido para Data Engineering Moderno no Microsoft Fabric.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fabric_auditor-0.1.2.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fabric_auditor-0.1.2-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file fabric_auditor-0.1.2.tar.gz.

File metadata

  • Download URL: fabric_auditor-0.1.2.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for fabric_auditor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1e16f256520345f62c7d5de99701ce0241a2a577f119118bf499a2092fa9595a
MD5 ce785507270c0183675ec983199caa46
BLAKE2b-256 dc448a45d0d05dc4ca09014226c90009f47291377bcbb6c31a65a07cec898a63

See more details on using hashes here.

File details

Details for the file fabric_auditor-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: fabric_auditor-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for fabric_auditor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 553cdeb498455e9402a5aab626c44c6c8ea162aee8e7f0363b9856765d53b71a
MD5 9f815d311d37e7151b7d0ff4058ad230
BLAKE2b-256 b9e818a782d60ae0000771e5c55765ac95341b8d92b4ebd62c51d7f80da38ba4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page