Skip to main content

Uma biblioteca para depuração usando modelos de linguagem

Project description

TheDebugger

TheDebugger é uma biblioteca Python que facilita a depuração de código utilizando modelos de linguagem avançados (LLMs). Ao aplicar o SmartDebugger como um decorador em funções, ele captura exceções, analisa erros com o auxílio de LLMs e fornece sugestões inteligentes para correção, tornando o processo de depuração mais eficiente e informativo.

Recursos

  • Depuração Inteligente com Decoradores: Aplique o SmartDebugger como um decorador para capturar e analisar erros automaticamente.
  • Integração com Diversos LLMs: Por padrão, a biblioteca está configurada para o modelo groq, mas também suporta integração personalizada com outros LLMs como OpenAI.
  • Mensagens Coloridas: Utiliza colorama para destacar erros e sugestões no terminal, melhorando a legibilidade.
  • Logging Avançado: Registra detalhes dos erros e análises em arquivos de log para referência futura.

Instalação

Instale o thedebugger diretamente do PyPI utilizando o pip:

pip install thedebugger

Ou instale a partir do repositório:

pip install git+https://github.com/seuusuario/thedebugger.git

Requisitos

Este projeto depende das seguintes bibliotecas:

  • google-generativeai
  • Pillow
  • langchain-core
  • langchain-groq
  • openai
  • colorama

As dependências são automaticamente instaladas com o pip install thedebugger, mas você também pode instalar manualmente usando:

pip install google-generativeai Pillow langchain-core langchain-groq openai colorama

Como Usar

Inicialização Básica

Aqui está um exemplo de como utilizar o SmartDebugger como um decorador para capturar e analisar erros em uma função:

from thedebugger.tools import SmartDebugger

# Inicializa o depurador
debugger = SmartDebugger(
    lang="pt",
    raises=False,
    llm_api_key="SUA_CHAVE_API",
    model_name="llama-3.1-70b-versatile",
    llm_type="groqchat",  # Tipos suportados: 'groqchat',
)

# Aplica o depurador como um decorador
@debugger
def divide(a: int, b: int) -> float:
    return a / b

# Teste da função decorada
try:
    resultado = divide(10, 0)
except:
    pass

Uso com um LLM Personalizado

Você pode definir e utilizar um LLM personalizado, como o OpenAI, substituindo o llm_type padrão:

import openai
from thedebugger.tools import SmartDebugger

def custom_openai_llm():
    openai.api_key = "SUA_API_KEY"
    
    class OpenAIWrapper:
        def generate_response(self, question):
            response = openai.ChatCompletion.create(
                model="gpt-4",
                messages=[{"role": "user", "content": question}]
            )
            return response.choices[0].message['content']
    
    return OpenAIWrapper()

# Inicializa o depurador com o LLM personalizado
debugger = SmartDebugger(
    lang="pt",
    raises=False,
    llm_api_key="SUA_CHAVE_API",
    model_name="gpt-4",
    llm_type="openai",  # Tipo ajustado para usar OpenAI
    custom_llm_fn=custom_openai_llm
)

@debugger
def divide(a: int, b: int) -> float:
    return a / b

try:
    resultado = divide(10, 0)
except:
    pass

Explicação dos Parâmetros

  • lang: Define o idioma das mensagens de depuração ("pt" para português ou "en" para inglês).
  • raises: Se True, re-lança a exceção original após a depuração.
  • llm_api_key: Chave de API para autenticação no serviço de LLM.
  • model_name: Nome do modelo de linguagem a ser utilizado.
  • llm_type: Tipo de LLM a ser usado ("groqchat", "gemini", "openai" etc.).
  • custom_llm_fn: Função opcional para inicializar um cliente LLM personalizado.

Estrutura do Projeto

A seguir, a estrutura atualizada do projeto:

thedebugger/
├── thedebugger/
│   ├── __init__.py           # Inicializa o pacote
│   ├── llms.py               # Integração com modelos de linguagem
│   ├── tools.py              # Código principal do depurador (anteriormente the_debugger.py)
├── venv/
├── .gitignore
├── MANIFEST.in
├── README.md
├── requirements.txt
└── setup.py

Contribuição

Contribuições são bem-vindas! Siga os passos abaixo para contribuir:

  1. Faça um fork do repositório.
  2. Crie uma branch para sua feature ou correção:
    git checkout -b minha-feature
    
  3. Faça o commit das suas mudanças:
    git commit -m "Adicionei minha feature"
    
  4. Envie para a branch original:
    git push origin minha-feature
    
  5. Abra um pull request no GitHub.

Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Contato

Desenvolvido por Saide Omar Saide - saideomarsaid@gmail.com


Notas Adicionais

  • Chave de API: Certifique-se de manter suas chaves de API seguras e não compartilhá-las publicamente.
  • Customização: O SmartDebugger foi projetado para ser flexível e pode ser adaptado para diferentes necessidades de depuração com diferentes LLMs.

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

thedebugger-0.1.9.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

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

thedebugger-0.1.9-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file thedebugger-0.1.9.tar.gz.

File metadata

  • Download URL: thedebugger-0.1.9.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for thedebugger-0.1.9.tar.gz
Algorithm Hash digest
SHA256 cbe487ed809ed119550d712c0e70292c866370e53d520db55f711f6bc3ebd5fc
MD5 3eea6f089b92f06564b848dcb1be01ba
BLAKE2b-256 d6ffa2af103c2f867ef1f55d83baa0fa5575745c2a87089391eeb59c9b302dd8

See more details on using hashes here.

File details

Details for the file thedebugger-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: thedebugger-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for thedebugger-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 ebb18b81dfa5a0732f0674c1afa14f894335cf861c5377a99fbba3cc437cf0ab
MD5 8948b59378fc20183c8264bc4e558209
BLAKE2b-256 6f5598adbe61e9656eaf249c585fd5292889b62ebbee6899262f101e43f27546

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