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.2.1.tar.gz (12.8 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.2.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for thedebugger-0.2.1.tar.gz
Algorithm Hash digest
SHA256 bb045b0ea3390cbeb95d2b5de4ea91f0cdad0a6dc9854dd659753bbe2ccb8af7
MD5 68c67bb1010a0432cc5ea61e8295c10c
BLAKE2b-256 69cafdab843598cf4228b3914d2c58b4c31e5535bfeec317789439f5661cfa46

See more details on using hashes here.

File details

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

File metadata

  • Download URL: thedebugger-0.2.1-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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f049cdfcaadc674a5927d3d808a70fb8cd02c1b1f1caf2404b3000b09d6b8bd2
MD5 6857a6dc2eaa3fa087543e684b02d3a8
BLAKE2b-256 b3ee1dcc7bfa509d0e840d8eece846e7b04be1e1d55722a70e33ab1abc33e61d

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