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.5.0.tar.gz (56.9 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.5.0-py3-none-any.whl (78.9 kB view details)

Uploaded Python 3

File details

Details for the file gavio-0.5.0.tar.gz.

File metadata

  • Download URL: gavio-0.5.0.tar.gz
  • Upload date:
  • Size: 56.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gavio-0.5.0.tar.gz
Algorithm Hash digest
SHA256 017b0632f9e2eb31fefe4f091765c51e5de8bb27e7b2036f25303dc53bfb729c
MD5 f0780e929d7c39f74f3cbf43af47a497
BLAKE2b-256 2e0f4a9b470ff8b8a6a2fee4cf89306495ef95068308a556b90882b77ec72f84

See more details on using hashes here.

File details

Details for the file gavio-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: gavio-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 78.9 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 718124301b82ffcc4064dd9473d179466d07495aa5d7298f9cd45c6ccf4895c7
MD5 de9398f9cd8976a9b95088a6da593f0c
BLAKE2b-256 67a5361a981eaff18ce82583672eaf16dea734ec446deaefbc47e3258115b4e6

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