Uma biblioteca para depuração usando modelos de linguagem
Project description
SmartDebugger
SmartDebugger é 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
SmartDebuggercomo um decorador para capturar e analisar erros automaticamente. - Integração com Diversos LLMs: por padrão a biblioteca está configurada para modelo
groq, mas não está limitada apenas a groq, ela suporta integração personalizada com outros LLMs como OpenAI. - Mensagens Coloridas: Utiliza
coloramapara 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 smartdebugger diretamente do PyPI utilizando o pip:
pip install smartdebugger
Ou instale a partir do repositório:
pip install git+https://github.com/seuusuario/smartdebugger.git
Requisitos
Este projeto depende das seguintes bibliotecas:
google-generativeaiPillowlangchain-corelangchain-groqopenaicolorama
As dependências são automaticamente instaladas com o pip install smartdebugger, 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 smartdebugger 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 smartdebugger 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: SeTrue, 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.
Exemplo Completo
import openai
from smartdebugger 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()
debugger = SmartDebugger(
lang="pt",
raises=False,
llm_api_key="SUA_CHAVE_API",
model_name="gpt-4",
llm_type="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
Estrutura do Projeto
A seguir, a estrutura recomendada para o projeto:
smartdebugger/
├── smartdebugger/
│ ├── __init__.py # Inicializa o pacote
│ ├── llms.py # Integração com modelos de linguagem
│ ├── the_debugger.py # Código principal do depurador
├── tests/
│ ├── __init__.py
│ ├── test_llms.py
│ └── test_the_debugger.py
├── docs/
│ └── index.md # Documentação adicional
├── README.md # Este arquivo
├── LICENSE # Arquivo de licença
├── pyproject.toml # Configuração para build
├── setup.py # Script de instalação
├── setup.cfg # Configurações adicionais (opcional)
└── .gitignore # Especifica arquivos a serem ignorados pelo Git
Contribuição
Contribuições são bem-vindas! Siga os passos abaixo para contribuir:
- Faça um fork do repositório.
- Crie uma branch para sua feature ou correção:
git checkout -b minha-feature
- Faça o commit das suas mudanças:
git commit -m "Adicionei minha feature"
- Envie para a branch original:
git push origin minha-feature
- 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
SmartDebuggerfoi projetado para ser flexível e pode ser adaptado para diferentes necessidades de depuração com diferentes LLMs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smartdebugger-0.1.0.tar.gz.
File metadata
- Download URL: smartdebugger-0.1.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b25347b2d1254a7730c82b56854ee8d39bb3466ecb82866804cc8053b024934
|
|
| MD5 |
112a20e7dd7f7d7960853d88d9acf4fd
|
|
| BLAKE2b-256 |
4fd40f82727cb88664b662ea5b8468705cd24903a69df7e520773404bae88e22
|
File details
Details for the file smartdebugger-0.1.0-py3-none-any.whl.
File metadata
- Download URL: smartdebugger-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
928b9276d685fdd20a57ab8ea1e7400719129bd6ced75f1df8573f4708dd5431
|
|
| MD5 |
f50b2e9b0f742be6d74d00252ae6c069
|
|
| BLAKE2b-256 |
ddf3c64b5d5aa0b7960a25e4b19457e31638304f58c25b133cf6c1d4d19793ca
|