API

OpenAI-compatible, hébergée au Québec, avec anonymisation Loi 25

Drop-in remplacement d'OpenAI : changez l'URL de base, c'est tout. Header X-Anonymize: true pour activer le masquage automatique des PII.

# Chat completion via API OpenAI-compatible avec anonymisation activée
curl -X POST https://api.secuaas.com/v1/secuai/chat/completions \
  -H "Authorization: Bearer $SECUAI_API_KEY" \
  -H "X-Anonymize: true" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "secuai-qwen3.5-35b",
    "messages": [
      {"role":"system","content":"Tu es un assistant juridique québécois."},
      {"role":"user","content":"Analyse cette clause : ..."}
    ],
    "temperature": 0.2
  }'
bash

Auth Bearer

Tokens API par tenant, rotation manuelle, scopes (chat:read, embeddings:read, admin:reverse).

X-Anonymize header

Active le pipeline d'anonymisation Loi 25 avant envoi au LLM. Mapping chiffré dans OVH KMS.

Webhooks usage

Reporting d'usage temps réel par tenant pour facturation MSP. Signés HMAC-SHA256.

OpenAPI 3.1

Spec publique téléchargeable. 100% compatible OpenAI SDK officiel (Python, Node, Go).

Reverse opt-in

Pour déchiffrer un mapping d'anonymisation (ex: identifier un patient dans un audit), un double-contrôle admin (2-of-4 eyes) est requis. Audit trail probant.

reverse-opt-in.sh
// Reverse opt-in : déchiffrer le mapping d'anonymisation
// Disponible uniquement avec dual-control admin (2-of-4 eyes)
curl -X POST https://api.secuaas.com/v1/secuai/anonymization/reverse \
  -H "Authorization: Bearer $SECUAI_ADMIN_TOKEN" \
  -H "X-Approval-Token: $TWO_EYES_APPROVAL" \
  -d '{ "request_id": "req_01HX..." }'

Endpoints principaux

  • POST /v1/chat/completionsChat OpenAI-compatible
  • POST /v1/embeddingsEmbeddings 1024-dim FR/EN
  • POST /v1/completionsCompletions legacy
  • POST /v1/anonymization/scanDétecter PII sans masquer
  • POST /v1/anonymization/reverseDéchiffrer mapping (dual-control)
  • GET /v1/usageUsage tenant temps réel