Skip to main content

Aitrix Python SDK (aitrix-sdk-py)

A thin, typed, OpenAI-compatible client for the Aitrix gateway. The hard part — governance (multi-engine DLP/PII, policy + quota, trajectory) — is server-side. This SDK just exposes the contract: an OpenAI-shaped response plus inline governance metadata, and a stable, typed error taxonomy.

Install

pip install aitrix-sdk-py

Single runtime dependency: httpx; ships a typed wheel (py.typed), no install-time code. Full user guide.

Self-hosted / air-gapped gateways can serve this same wheel from the gateway's built-in private index instead of public PyPI:

pip install --extra-index-url https://<your-gateway>/sdk/simple/ \
            --trusted-host <your-gateway> aitrix-sdk-py

--extra-index-url pulls aitrix-sdk-py from your gateway and httpx from PyPI. Drop --trusted-host for a CA-trusted cert. Browse https://<your-gateway>/sdk/ for the portal + user guide.

Usage

from aitrix.sdk import Aitrix

client = Aitrix(api_key="sk-...", base_url="https://gateway.example/v1")
resp = client.chat.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "hi"}],
)

print(resp.content)                          # assistant text
print(resp.aitrix_metadata.cost_usd)         # what it cost
print(resp.aitrix_metadata.pii_detected)     # was PII found/redacted
print(resp.aitrix_metadata.latency.total_ms) # latency breakdown
print(resp.usage.prompt_tokens)              # real token split
  • client.chat.completions.create(...) is a deliberate OpenAI drop-in alias.
  • Config resolves from args → env (AITRIX_API_KEY, AITRIX_BASE_URL) → default.
  • base_url includes the /v1 prefix (e.g. https://host:8443/v1).
  • Async: from aitrix.sdk import AsyncAitrix — identical API with await.

Governance metadata (resp.aitrix_metadata)

Field Meaning
request_id correlate with gateway audit logs
provider_selected / model_resolved what actually served the request
cost_usd / input_cost_usd / output_cost_usd billed cost
pii_detected / redaction_applied / entity_types_detected DLP outcome
input_violation / output_violation / output_action guardrail outcome
policy_rule_id which policy rule matched
is_agent agent-session flag
cached served from semantic cache
latency { total_ms, input_guardrails_ms, provider_ms, output_guardrails_ms, pii_ms }
tokens { prompt, completion, total }

Unknown fields a newer server adds are preserved on aitrix_metadata.raw and ignored by the typed fields (forward-compatible).

Error handling

Every error subclasses AitrixError and carries status_code, code, request_id:

from aitrix.sdk import Aitrix, PolicyBlockError, QuotaExceededError, RateLimitError

try:
    resp = client.chat.create(model="...", messages=[...])
except PolicyBlockError as e:
    print("blocked:", e.code, e.policy_result)
except QuotaExceededError as e:
    print("out of budget:", e.request_id)
except RateLimitError:
    ...
Exception Trigger
AuthenticationError 401
PermissionDeniedError 403 policy-rule denial (POLICY_DENIED, IMPLICIT_DENY, …)
PolicyBlockError guardrail/DLP/content block, INTEGRATION_FAILURE
QuotaExceededError 402 / quota codes
RateLimitError 429
ModelNotFoundError 404/400 unknown model (suggested_model, allowed_models)
UpstreamError 502 provider failure
APIError other 5xx

Streaming

stream = client.chat.create(model="openai/gpt-4o-mini",
                            messages=[{"role": "user", "content": "hi"}], stream=True)
for piece in stream:          # yields assistant text deltas
    print(piece, end="", flush=True)
print(stream.aitrix_metadata.cost_usd)   # governance metadata from the final chunk
print(stream.usage.total_tokens)

Async: s = await client.chat.create(..., stream=True) then async for piece in s.

The gateway runs the full governance pipeline before streaming, so all guardrails apply — the response is complete (and checked) before the first chunk. You get the OpenAI SSE wire-format and final aitrix_metadata, but not token-by-token latency yet (true passthrough is future work).

Listing models

for m in client.models.list(provider="openai", capability="vision"):
    print(m.id, m.context_window, m.input_cost_per_token)

Filters: family (substring of id), capability (thinking / web_search / vision), provider.

Notes

  • For self-signed gateways in testing, pass verify=False or your own http_client=httpx.Client(...).

License & contact

Apache-2.0 — see LICENSE. The SDK is a thin open client; the governance pipeline it talks to is the Aitrix gateway.

Questions, support, security reports: info@aitrix.ai

Release files for aitrix-sdk-py 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aitrix-sdk-py 0.1.0
File Size Uploaded
aitrix_sdk_py-0.1.0.tar.gz 18.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aitrix-sdk-py 0.1.0
File Interpreter ABI Platform
aitrix_sdk_py-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.6 kB

Release files / aitrix_sdk_py-0.1.0.tar.gz

Download URL aitrix_sdk_py-0.1.0.tar.gz
Size 18.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3fdbba5236b374396213610535c5405d2540944b998c29d05a1f8ae51bc84147
BLAKE2b-256 checksum
How to use checksums
b189ede7a303b9ee9f917ebb1a7294f743c824e7643a6d93d3425b20ef459dda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release files / aitrix_sdk_py-0.1.0-py3-none-any.whl

Download URL aitrix_sdk_py-0.1.0-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4e9081a746983eeb559a9032c2b56b0392366ee78f6843b445862d1f237de0e3
BLAKE2b-256 checksum
How to use checksums
d9ec46821e058711d0d090dc9f6bfc017f54dbbd20eff1573d975b0c1ea246c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.13

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page