Skip to main content

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

  • CoreGateway fluent builder, InterceptorChain, GavioRequest / GavioResponse, UUID v7 trace_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gavio-0.6.0.tar.gz (75.8 kB view details)

Uploaded Source

Built Distribution

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

gavio-0.6.0-py3-none-any.whl (98.7 kB view details)

Uploaded Python 3

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

Hashes for gavio-0.6.0.tar.gz
Algorithm Hash digest
SHA256 69f60dfae845107f0ade11e22cfd8d3da4e47c72f7c27d195ea929be15a78af2
MD5 7878881cfef2d76b024f280c5bf61154
BLAKE2b-256 1b44c17989d486d08ae3e1d64c505fe1900c22df97d939210da6036adc42c98a

See more details on using hashes here.

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

Hashes for gavio-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8770437c40e056baa6975b11614dfc1218dde98b8f9c4f7db0ad5e8c9b9e794d
MD5 535c3a9de119bf24234a5bbd041bfec1
BLAKE2b-256 079995b156565a7da4ebac8ac031f904d8d0d62f433e14e73cc96129c5637794

See more details on using hashes here.

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