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.2.0.tar.gz (31.3 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.2.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aviaraeye-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1cf83ac03b7b5ff7a4683d6ce3dc5c251e6828637257d8779e18b9c6600f276f
MD5 30c49a288378d25f8032caa9e2adc490
BLAKE2b-256 892ad24a97b79695a5145211011aa70d3fa7e6df514ffdccc90f5a9db2b995e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aviaraeye-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: aviaraeye-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24d13f7cf541373ee4bf37e174280c0e8c83ce7ab83bfc80b32c7e922a5d935e
MD5 9a36c109b46e3b535e7685741992824b
BLAKE2b-256 6b4efd34037633ab869436a79dbc1112de45c5908924572e4e2957517a961eb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for aviaraeye-0.2.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