The open standard AI gateway for production systems — PII protection, audit trails, reliability, and cost control as composable interceptors.
Project description
Gavio — Python SDK
The open standard AI gateway for production systems. PII protection, audit trails, reliability, and cost control as composable interceptors.
gavio sits between your application and any LLM provider. The same request
passes through a pre/post interceptor chain — PII redaction, retries, cost
tracking, audit logging — before and after the provider call.
Part of the Gavio project. MIT licensed.
Install
pip install gavio # zero mandatory dependencies
pip install gavio[dev] # + pytest, ruff, mypy
Requires Python 3.10+.
Quick start (dev mode — no API key, no network)
import asyncio
from gavio import Gateway
from gavio.interceptors.pii import PiiGuard
gw = (
Gateway.builder()
.dev_mode(True) # MockProvider + stdout audit
.use(PiiGuard()) # redact PII before it leaves the process
.build()
)
async def main():
resp = await gw.complete(
messages=[{"role": "user", "content": "Email jan@example.com about NL91ABNA0417164300"}],
agent_id="demo",
)
print(resp.content) # PII restored in the reply
print(f"cost=${resp.cost_usd:.6f} latency={resp.latency_ms}ms")
print("pii types:", resp.audit.pii_entity_types)
asyncio.run(main())
Real providers
from gavio import Gateway, Provider
from gavio.interceptors.pii import PiiGuard
from gavio.interceptors.audit import AuditInterceptor
from gavio.interceptors.reliability import RetryInterceptor, TimeoutPolicy
gw = (
Gateway.builder()
.provider(Provider.ANTHROPIC) # reads ANTHROPIC_API_KEY
.model("claude-sonnet-4-6")
.use(PiiGuard(sensitivity="strict"))
.use(AuditInterceptor(sink="stdout://"))
.use(TimeoutPolicy(timeout_seconds=30))
.use(RetryInterceptor(max_attempts=3))
.build()
)
resp = await gw.complete(messages=[{"role": "user", "content": "Hi"}])
OPENAI_API_KEY / Provider.OPENAI work the same way.
What ships in v0.1.0
- Core —
Gatewayfluent builder,InterceptorChain,GavioRequest/GavioResponse, UUID v7trace_id,agent_id/parent_trace_id. - PII Guard (F-SEC-01) — Email, IBAN (mod-97), BSN (11-proef), CreditCard (Luhn), Phone, IP, SSN scanners, redact/mask/tag/block, restore.
- Secret Scanner (F-SEC-04) — API keys, JWTs, PEM keys, DB URLs.
- Reliability — retry with backoff (F-REL-01), fallback chain (F-REL-02), timeout (F-REL-07).
- Cost tracking (F-GOV-01) — per-request
cost_usd. - Audit (F-OBS-01) —
AuditRecord+StdoutSink(F-OBS-05). - Dev mode (F-DX-01) and dry-run mode (F-DX-02).
- Providers — OpenAI, Anthropic, Mock.
See the Python guide and CHANGELOG.md.
Tests
pip install -e ".[dev]"
pytest tests/unit -v
ruff check gavio
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 gavio-0.6.0.tar.gz.
File metadata
- Download URL: gavio-0.6.0.tar.gz
- Upload date:
- Size: 75.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69f60dfae845107f0ade11e22cfd8d3da4e47c72f7c27d195ea929be15a78af2
|
|
| MD5 |
7878881cfef2d76b024f280c5bf61154
|
|
| BLAKE2b-256 |
1b44c17989d486d08ae3e1d64c505fe1900c22df97d939210da6036adc42c98a
|
File details
Details for the file gavio-0.6.0-py3-none-any.whl.
File metadata
- Download URL: gavio-0.6.0-py3-none-any.whl
- Upload date:
- Size: 98.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8770437c40e056baa6975b11614dfc1218dde98b8f9c4f7db0ad5e8c9b9e794d
|
|
| MD5 |
535c3a9de119bf24234a5bbd041bfec1
|
|
| BLAKE2b-256 |
079995b156565a7da4ebac8ac031f904d8d0d62f433e14e73cc96129c5637794
|