Skip to main content

Ergonomic LLM observability wrapper around Langfuse

Project description

AviаraEye

Ergonomic LLM observability wrapper around Langfuse. Provides tracing, prompt management, scoring, and auto-instrumentation for OpenAI, Azure OpenAI, and Google Gemini.

Installation

pip install aviaraeye[all]

# Or with uv
uv pip install aviaraeye[all]

# Individual providers
pip install aviaraeye[openai]   # OpenAI
pip install aviaraeye[azure]    # Azure OpenAI
pip install aviaraeye[gemini]   # Google Gemini

Configuration

Set environment variables:

export LANGFUSE_PUBLIC_KEY="pk-lf-..."
export LANGFUSE_SECRET_KEY="sk-lf-..."
export LANGFUSE_HOST="https://aviaraeye.aviaralabs.com"

Quick Start

from aviaraeye import AviaraEye, traced, observe, get_prompt
from aviaraeye.providers.openai import OpenAI

# Initialize
eye = AviaraEye()

# Auto-traced OpenAI calls
client = OpenAI()

with traced("my-pipeline", user_id="user-1", tags=["demo"]) as t:
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    t.set_output(response.choices[0].message.content)
    t.score("quality", 1.0)

# Decorator-based tracing
@observe
def process_document(doc: bytes) -> dict:
    return extract(doc)

# Prompt management
prompt = get_prompt("extraction-v2", label="production")
compiled = prompt.compile(schema=my_schema)

# Flush before shutdown
eye.flush()

Features

Feature Description
Tracing traced(), span(), event() context managers
Decorators @observe, @generation for auto-tracing functions
Providers Drop-in OpenAI, Azure OpenAI, Gemini auto-instrumentation
Prompts Versioned prompt fetch, compile, and link to traces
Scoring Numeric, boolean, categorical, and text scores
Sessions session_context() for user/session propagation
Metadata Metadata, Tags builders for standardised annotation

Provider Usage

OpenAI / Azure OpenAI

from aviaraeye.providers.openai import OpenAI
from aviaraeye.providers.azure_openai import AzureOpenAI

# Drop-in — all calls auto-traced
client = OpenAI()
response = client.chat.completions.create(model="gpt-4", messages=[...])

Google Gemini

from aviaraeye.providers.gemini import instrument_gemini
from google import genai

instrument_gemini()  # One-time setup (auto-called by AviaraEye())

client = genai.Client(api_key="...")
response = client.models.generate_content(model="gemini-2.5-flash", contents="...")

Documentation

Development

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/

# Type check
mypy src/

License

MIT - Aviara Labs

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

aviaraeye-0.3.0.tar.gz (31.5 kB view details)

Uploaded Source

Built Distribution

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

aviaraeye-0.3.0-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file aviaraeye-0.3.0.tar.gz.

File metadata

  • Download URL: aviaraeye-0.3.0.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aviaraeye-0.3.0.tar.gz
Algorithm Hash digest
SHA256 59db439956f60873cd2444357b9642b38c5df5878dffde41d3873d4e5e5b0365
MD5 16188e0c67e09d9cf054a98d5b5ab47b
BLAKE2b-256 7070189765b46922b7c8df718968c0d239ea2df7f76d01267d603f768ebe1b48

See more details on using hashes here.

Provenance

The following attestation bundles were made for aviaraeye-0.3.0.tar.gz:

Publisher: publish.yml on KushalFrameDx/aviaraeye

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aviaraeye-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: aviaraeye-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aviaraeye-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d48855c0fe7166709eafc6cece08e12d85f4670d033fa9e1198b68c5c6b35a24
MD5 3e9256bcecd77be092268f2acd6350fb
BLAKE2b-256 2bf358e588f227bb6cf599dc68f64c56b7173d1d78c057045a768f5dc24210ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for aviaraeye-0.3.0-py3-none-any.whl:

Publisher: publish.yml on KushalFrameDx/aviaraeye

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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