Skip to main content

AI-native error tracking and observability for Python applications

Project description

prismbrain

AI-native error tracking and observability for Python applications. Captures errors, LLM calls, and application traces with AI-powered fix suggestions.

Installation

pip install prismbrain

Quick Start

import os
import prismbrain

gb = prismbrain.PrismBrain(api_key="gb_your_key")

# Capture errors
try:
    risky_operation()
except Exception as e:
    gb.capture_error(e, metadata={"user_id": "123"})

# Capture warnings and info
gb.capture_warning("Disk usage above 90%")
gb.capture_info("Deployment completed", metadata={"version": "1.2.0"})

# Get AI fix suggestions for a trace
suggestions = gb.get_suggestions(
    trace_id="...",
    provider_keys={"anthropic": os.environ["ANTHROPIC_API_KEY"]},
    # Or use {"openai": os.environ["OPENAI_API_KEY"]}
)

Auto-trace OpenAI calls

from openai import OpenAI
import prismbrain

gb = prismbrain.PrismBrain(api_key="gb_your_key")
client = prismbrain.wrap_openai(OpenAI(), gb)

# All completions are now traced automatically
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello"}]
)

Auto-trace Anthropic calls

from anthropic import Anthropic
import prismbrain

gb = prismbrain.PrismBrain(api_key="gb_your_key")
client = prismbrain.wrap_anthropic(Anthropic(), gb)

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}]
)

LangChain

Install the optional LangChain integration:

pip install "prismbrain[langchain]" langchain-openai

Attach the callback handler to LangChain models:

import os
import prismbrain
from langchain_openai import ChatOpenAI

pb = prismbrain.PrismBrain(api_key=os.environ["PRISMBRAIN_API_KEY"])
handler = prismbrain.PrismBrainCallbackHandler(pb)
llm = ChatOpenAI(model="gpt-4o-mini", callbacks=[handler])

Every invoke, tool call, error, token count, and measured latency is captured automatically.

LangGraph

Install the optional LangGraph integration:

pip install "prismbrain[langgraph]" langgraph langchain-openai

Pass the same handler through the compiled graph config:

graph.invoke(state, config={"callbacks": [handler]})

This captures graph nodes, nested chains, LLM calls, tools, errors, real latency, and token usage without manual trace() calls.

Decorators

import prismbrain

gb = prismbrain.PrismBrain(api_key="gb_your_key")

@prismbrain.trace_function(gb)
def process_data(items):
    # Automatically traces errors and performance
    ...

@prismbrain.trace_endpoint(gb)
def handle_request():
    # Traces API endpoint calls
    ...

Framework Middleware

FastAPI

from fastapi import FastAPI
import prismbrain
from prismbrain.middleware import FastAPIMiddleware

app = FastAPI()
gb = prismbrain.PrismBrain(api_key="gb_your_key")
app.add_middleware(FastAPIMiddleware, prismbrain=gb)

Flask

from flask import Flask
import prismbrain
from prismbrain.middleware import FlaskMiddleware

app = Flask(__name__)
gb = prismbrain.PrismBrain(api_key="gb_your_key")
FlaskMiddleware(app, prismbrain=gb)

Django

Add to settings.py:

PRISMBRAIN_API_KEY = "gb_your_key"

MIDDLEWARE = [
    "prismbrain.middleware.DjangoMiddleware",
    ...
]

Publishing to PyPI

cd packages/prismbrain-python
pip install build twine
python -m build
twine upload dist/*

License

MIT

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

prismbrain-0.1.3.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

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

prismbrain-0.1.3-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file prismbrain-0.1.3.tar.gz.

File metadata

  • Download URL: prismbrain-0.1.3.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for prismbrain-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d7244f1c2f894da33b8693b191d7d62c89add4948dfc1d238ef0a4e8a82f43b3
MD5 075a71560b98946d3ba373e13eff19ea
BLAKE2b-256 6df1647e0cd665a0bb64093d4b6260fe51a1a655716f951d4ae8c8d11dd32cf8

See more details on using hashes here.

File details

Details for the file prismbrain-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: prismbrain-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for prismbrain-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ea38eee5b6f815503211115bc7c565637bba792b05efeaaec738e45eee01b0fb
MD5 2c7407bfcd9ef16c72bd810ea964c710
BLAKE2b-256 8a43910d6d4b24d7f9b03e58ad42e6435c1b48cf6de06a9f2dbe8ea2a4384e6b

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