Skip to main content

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

  1. Create a .env file 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


Download files

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

Source Distribution

llm_catcher-0.2.9.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

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

llm_catcher-0.2.9-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file llm_catcher-0.2.9.tar.gz.

File metadata

  • Download URL: llm_catcher-0.2.9.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.10

File hashes

Hashes for llm_catcher-0.2.9.tar.gz
Algorithm Hash digest
SHA256 d28bd68b4b2cba83ff199ea8fa3ebd6b80b6b0938e0711ebf01af9f3bbcdfc6d
MD5 75a2662122220f0e0feebd1e439a50dc
BLAKE2b-256 65fd1ce0fecbcb9e30fb3acf9a4db506e26e53370a183140aa0ee1d03e9d61b1

See more details on using hashes here.

File details

Details for the file llm_catcher-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: llm_catcher-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.10

File hashes

Hashes for llm_catcher-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e10dbe38825e45fa2cb513e500af377c0fc9781efa7d1b22d605ce544dee4d33
MD5 1128557195d69c4e1318905896b47bb0
BLAKE2b-256 8fe96174db6af90a7167acb441d33932df45e02992b44b12f4536130b88b36cc

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