EU Sovereign AI

Your AI processes PII.
Does it stay in Europe?

Open-source gateway that detects personal data in LLM requests and automatically routes to EU providers. GDPR compliance in 2 lines of code.

Free for open-source. No spam. Unsubscribe anytime.

You're on the list. We'll notify you when the managed service launches.
15+
PII entity types
24
AI models supported
0.6ms
Detection latency
100%
EU routing compliance
python examples/basic_routing.py
$ python examples/basic_routing.py

Example 1: PII Detected — EU Routing Forced
Input: "Analyze the account of jean.dupont@company.fr"
PII detected: True
PII types: ['EMAIL_ADDRESS']
Routing: EU ONLY (forced)
Provider: scaleway (Paris, EU)
GDPR compliant: True

———————————————————————

Example 2: No PII — Cheapest Provider
Input: "Summarize this quarterly report"
PII detected: False
Routing: CHEAPEST
Provider: any available
GDPR compliant: True

Why teams switch

🛡

Automatic PII Detection

Dual-layer detection: Microsoft Presidio (NLP) + regex fallback. Detects emails, names, IBANs, phone numbers, SSN, and 15+ entity types.

🇪🇺

EU-Only Routing

When PII is detected, requests are forced to EU providers (Scaleway Paris, OVHCloud). Cannot be bypassed via API. Ever.

💰

30-70% Cost Savings

Intelligent routing picks the cheapest provider for non-sensitive requests. Semantic cache eliminates duplicate inference costs.

🔄

Drop-in Replacement

OpenAI-compatible API. Switch from OpenAI, Anthropic, Mistral, or Cohere by changing 2 lines. SDKs for Python and TypeScript.

📋

GDPR Compliance Reports

Auto-generated reports for your DPO. Shows which requests contained PII, where they were routed, and compliance score.

🔍

Full Observability

Prometheus metrics, structured logs, PII type counters. See exactly what flows where. No PII content in logs, ever.

2 lines to migrate

Your existing OpenAI code works unchanged

# Before (OpenAI)
from openai import OpenAI
client = OpenAI(api_key="sk-...")

# After (mh-gdpr-ai) — same API, GDPR-compliant
from ai_infra import Client
client = Client(api_key="sk-...")

# Exact same code — zero changes
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.savings.cost_saved_usd) # bonus: see savings

Ship GDPR-compliant AI today

Open-source and free. Managed service coming soon.