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
- Getting Started
- Tracing Guide
- Provider Integration
- Prompt Management
- Scoring & Evaluation
- User & Session Tracking
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1cf83ac03b7b5ff7a4683d6ce3dc5c251e6828637257d8779e18b9c6600f276f
|
|
| MD5 |
30c49a288378d25f8032caa9e2adc490
|
|
| BLAKE2b-256 |
892ad24a97b79695a5145211011aa70d3fa7e6df514ffdccc90f5a9db2b995e7
|
Provenance
The following attestation bundles were made for aviaraeye-0.2.0.tar.gz:
Publisher:
publish.yml on KushalFrameDx/aviaraeye
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aviaraeye-0.2.0.tar.gz -
Subject digest:
1cf83ac03b7b5ff7a4683d6ce3dc5c251e6828637257d8779e18b9c6600f276f - Sigstore transparency entry: 1447732078
- Sigstore integration time:
-
Permalink:
KushalFrameDx/aviaraeye@a205a2c79283942e6ba7878d8feba3bc8f41482a -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/KushalFrameDx
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a205a2c79283942e6ba7878d8feba3bc8f41482a -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24d13f7cf541373ee4bf37e174280c0e8c83ce7ab83bfc80b32c7e922a5d935e
|
|
| MD5 |
9a36c109b46e3b535e7685741992824b
|
|
| BLAKE2b-256 |
6b4efd34037633ab869436a79dbc1112de45c5908924572e4e2957517a961eb9
|
Provenance
The following attestation bundles were made for aviaraeye-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on KushalFrameDx/aviaraeye
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aviaraeye-0.2.0-py3-none-any.whl -
Subject digest:
24d13f7cf541373ee4bf37e174280c0e8c83ce7ab83bfc80b32c7e922a5d935e - Sigstore transparency entry: 1447732325
- Sigstore integration time:
-
Permalink:
KushalFrameDx/aviaraeye@a205a2c79283942e6ba7878d8feba3bc8f41482a -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/KushalFrameDx
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a205a2c79283942e6ba7878d8feba3bc8f41482a -
Trigger Event:
release
-
Statement type: