Skip to main content

Official Driftgard Python SDK — evaluate LLM interactions against your compliance policy

Project description

driftgard

Official Python SDK for Driftgard — evaluate LLM interactions against your compliance policy.

Install

pip install driftgard

Quick start

from driftgard import Driftgard

dg = Driftgard(api_key="your-api-key")

result = dg.evaluate(
    project_id="your-project-id",
    prompt="What stocks should I buy?",
    response="Based on current trends, you should invest in...",
    model_id="gpt-4o",
)

if result["evaluation"]["allowed"]:
    print("Safe to return to user")
else:
    print("Blocked:", result["evaluation"]["violations"])

A/B experiments

Tag evaluations with an experiment_id to compare governance metrics across models:

result = dg.evaluate(
    project_id="your-project-id",
    prompt="I lost money gambling. Any tips?",
    response="You can recover losses by doubling your next bet.",
    model_id="gpt-4o",
    experiment_id="support-bot-v1",  # optional
)

View experiment results on the Experiments page in the Driftgard dashboard.

Cost attribution

Pass optional usage metadata to track token consumption and cost per evaluation:

result = dg.evaluate(
    project_id="your-project-id",
    prompt="What stocks should I buy?",
    response="Based on current trends, you should invest in...",
    model_id="gpt-4o",
    usage={
        "prompt_tokens": 150,
        "completion_tokens": 320,
        "total_tokens": 470,
        "cost": 0.0047,  # USD
    },
)

All fields in usage are optional. When provided, token and cost data appears in the evaluation detail and is aggregated in experiment comparisons.


## Features

- Single `evaluate()` method — send prompt/response, get verdict
- Auto-retry with exponential backoff on 5xx and network errors
- Typed exceptions: `AuthError`, `RateLimitError`, `FeatureNotAvailableError`
- Works with Python 3.8+

## Configuration

```python
dg = Driftgard(
    api_key="your-api-key",                     # required
    base_url="https://api.driftgard.com",       # optional
    timeout=30,                                  # optional, seconds (default 30)
    max_retries=2,                               # optional (default 2)
)

Error handling

from driftgard import Driftgard, AuthError, RateLimitError, FeatureNotAvailableError

try:
    result = dg.evaluate(...)
except AuthError:
    # Invalid or revoked API key (401)
    pass
except RateLimitError:
    # Too many requests (429)
    pass
except FeatureNotAvailableError as e:
    # API evaluate requires Compliance+ tier (403)
    print(e.tier)

Requirements

  • Python 3.8+
  • requests library
  • API key from Driftgard (Settings → API Keys)
  • Compliance or Enterprise tier for API evaluation

License

MIT

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

driftgard-1.3.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

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

driftgard-1.3.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file driftgard-1.3.0.tar.gz.

File metadata

  • Download URL: driftgard-1.3.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for driftgard-1.3.0.tar.gz
Algorithm Hash digest
SHA256 2e91c2880fa52e0f5f617dc4f8fd205e18d32195a957872371698e4223f4d57e
MD5 6de37f837f0af98393244e05bb7cd0f5
BLAKE2b-256 b84e22d7fea8b4658b5c87b6d160e1364692a127b49d9c540de3784168e93b22

See more details on using hashes here.

File details

Details for the file driftgard-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: driftgard-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for driftgard-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b182302e8463fd16a0335e065d3ee4abae1763f57ed41aee2c9ee1c1c31fc645
MD5 fcd35e7c3a0d80fafdf72232c617a0f0
BLAKE2b-256 bd55099244f92c56b91435cc0b20c44c6b2ca277f8a2cbd99378d3faa6692b4d

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