A Python library that uses LLMs to diagnose and explain exceptions
Project description
LLM Catcher
LLM Catcher is a Python library that uses Large Language Models to diagnose and explain exceptions in your code.
Features
- Exception diagnosis using LLMs
- Both synchronous and asynchronous APIs
Installation
pip install llm-catcher
Quick Start
- Create a
.envfile with your OpenAI API key:
LLM_CATCHER_OPENAI_API_KEY=your-api-key-here
Examples
The examples/ directory contains several examples demonstrating different use cases:
1. Minimal Example (examples/minimal.py)
- Basic usage with direct LLM exception diagnosis
- Shows how to set up the diagnoser
- Demonstrates basic error handling and diagnosis
2. FastAPI Integration (examples/fastapi_example.py)
- Shows how to integrate LLM Catcher with FastAPI
- Demonstrates how to handle exceptions in FastAPI
- Includes a Swagger UI endpoint for testing
Run any example like this:
# Run minimal example
python examples/minimal_example.py
# Run FastAPI example
python examples/fastapi_example.py
# Then visit http://localhost:8000/docs
Each example includes detailed comments and demonstrates best practices for using LLM Catcher in different contexts.
Configuration
All settings can be configured through environment variables or the Settings class:
Complete Settings Example
from llm_catcher.settings import get_settings
settings = get_settings()
# Required
settings.openai_api_key = "your-api-key" # Or set via LLM_CATCHER_OPENAI_API_KEY
# Model Settings
settings.llm_model = "gpt-4" # Options: "gpt-4", "gpt-3.5-turbo", "gpt-4-1106-preview"
settings.temperature = 0.2 # Range: 0.0-1.0
Environment Variables
The same settings can be configured via environment variables:
# Required
LLM_CATCHER_OPENAI_API_KEY=your-api-key-here
# Model Settings
LLM_CATCHER_LLM_MODEL=gpt-4
LLM_CATCHER_TEMPERATURE=0.2
Settings Reference
| Setting | Type | Default | Description |
|---|---|---|---|
openai_api_key |
str | None | Your OpenAI API key (required) |
llm_model |
str | "gpt-4" | LLM model to use |
temperature |
float | 0.2 | Model temperature (0.0-1.0) |
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/yourusername/llm-catcher.git
cd llm-catcher
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
.\venv\Scripts\activate # Windows
# Install development dependencies
pip install -e ".[dev]" # This installs the package with development extras
Notes
- API key is required and must be provided via environment or settings
- Settings are validated on initialization
- Stack traces are included in LLM prompts for better diagnosis
License
MIT License
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 llm_catcher-0.3.1.tar.gz.
File metadata
- Download URL: llm_catcher-0.3.1.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99830ebdceca2301ff2252008c04c5e0623220a42fa4ad7b0ceea39d4f622e05
|
|
| MD5 |
02e2629c1a57d53164bfc1bd14162dfc
|
|
| BLAKE2b-256 |
99b104ab63172dfaf2413f95277598004fd5b0c2853e8487a8b37e92061b481f
|
File details
Details for the file llm_catcher-0.3.1-py3-none-any.whl.
File metadata
- Download URL: llm_catcher-0.3.1-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c301f29241329d18df160824e8d555a733420bd5f35c9c072e67474907b8866
|
|
| MD5 |
3f9be34ac4ed6c1522bf9ad9d68a9e68
|
|
| BLAKE2b-256 |
7a6e9f23942b50fc5e84df173e48823ad56805ba04b46dbe11b0e34e95055825
|