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, Google Gemini, and Anthropic (Claude).

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
pip install aviaraeye[anthropic]  # Anthropic (Claude)

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
Multi-agent agent_span(), tool_span(), chain_span(), retriever_span(), generation_span()
Concurrency bind_trace_context() keeps thread-pool work in one trace; W3C carrier for Celery
Decorators @observe, @generation for auto-tracing functions
Providers Drop-in OpenAI and Azure OpenAI; Gemini and Claude auto-instrumentation
Prompts Versioned prompt fetch, compile, and link to traces
Prompt sync Publish, promote a label, and sync a codebase to Langfuse — idempotent, with a read-only drift check for CI
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.6.0.tar.gz (72.0 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.6.0-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aviaraeye-0.6.0.tar.gz
  • Upload date:
  • Size: 72.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aviaraeye-0.6.0.tar.gz
Algorithm Hash digest
SHA256 1963ac17d1f153a39ac9884c6dbaa3dc34da2e3f9201a3f625adc524dcc511a0
MD5 1e61dba738f5c19d0d369f186ad6663a
BLAKE2b-256 80c0f724021cb501a81cac4af42edc579dd7a158e6010788edf39292bd76e1ad

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aviaraeye-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 48.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aviaraeye-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06cf84dfe1f5a8ffff7f0869155f5340c1c6a3a8493b50f5eba4bd6a0820a048
MD5 fb266f280a698fbfd365d0df1113867c
BLAKE2b-256 f6e635378a9eb85eb4a02b093d01b3840b7023a817f02d051f99085db9b4d5fa

See more details on using hashes here.

Provenance

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