OpenRouter sans collecte ni entraînement sur ses prompts
Désactiver l'entraînement sur tes données et restreindre les providers OpenRouter à la stack souveraine française.
Temps estimé : 20 min
Résultat final : OpenRouter configuré pour ne jamais envoyer tes tokens à des providers CN, avec un preset dédié et une validation curl.
Prérequis : Compte OpenRouter créé, clé API générée
Objectif
Ce tuto guide la configuration d’OpenRouter en mode souverain : ne jamais envoyer de données à des providers hors UE/US avec des politiques de rétention opaques.
Étape 1 : Privacy Settings — les 4 toggles critiques
- Connecte-toi sur openrouter.ai
- Navigue vers Settings → Privacy & Guardrails
- Configure les toggles suivants :
| Toggle | Valeur | Risque si activé |
|---|---|---|
| Enable paid endpoints that may train | OFF | Tes prompts payants utilisés pour entraîner des modèles tiers |
| Enable free endpoints that may train | OFF | Idem — activé par défaut, piège classique |
| Enable free endpoints that may publish prompts | OFF | Tes prompts publiés dans des datasets publics |
| ZDR Endpoints Only | OFF (pour l’instant) | Réduit trop les modèles disponibles en phase de setup |
“Enable free endpoints that may train” est activé par défaut. GPT-OSS-120B et autres modèles gratuits sont concernés. Si tu l’as déjà utilisé sans le désactiver, considère que tes prompts ont pu être collectés. Désactive-le maintenant.
Checklist étape 1 :
- Les 3 premiers toggles sont OFF
- Screenshot de la page sauvegardé localement comme preuve d’audit
Étape 2 : Provider Restrictions — blacklist CN
- Toujours dans Settings → Privacy & Guardrails → Provider Restrictions
- Clique sur Ignored Providers → + Add
- Ajoute les providers suivants un par un :
MiniMax → CN, Bytedance-backed
DeepSeek → CN, politique de rétention opaque
Moonshot → CN (éditeur de Kimi)
Bytedance → CN (TikTok / Doubao)
blacklister un provider n’est pas rétroactif. Les requêtes déjà envoyées via ces providers ne peuvent pas être effacées. Cette config protège les requêtes futures uniquement.
Checklist étape 2 :
- 4 providers CN dans la liste Ignored Providers
- Vérification : aucun modèle CN n’apparaît dans l’Eligibility Preview
Étape 3 : Créer le preset homeserver-ia
- Navigue vers Settings → Presets → New Preset
- Crée les 3 presets suivants :
Preset ha-commands (domotique HA, requêtes simples)
{
"model": "mistralai/mistral-small-2603",
"provider": {
"allow": ["Mistral"],
"order": ["Mistral"]
}
}
Preset agent-telegram (contexte long, mémoire)
{
"model": "mistralai/mistral-small-2603",
"provider": {
"allow": ["Mistral"],
"order": ["Mistral"]
}
}
Preset devbot (coding, GitHub)
{
"model": "mistralai/devstral-2",
"provider": {
"allow": ["Mistral"],
"order": ["Mistral"]
}
}
un preset sans provider.allow explicite laisse OpenRouter
choisir n’importe quel provider disponible, y compris hors EU.
Toujours spécifier allow même pour un seul provider.
Étape 4 : Validation curl — vérifier que le routage est effectif
C’est l’étape que 90% des gens sautent. Sans elle, tu ne sais pas si ta config est réellement appliquée.
Test 1 : vérifier quel provider répond pour ha-commands
curl -s -D - https://eu.openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mistralai/mistral-small-2603",
"provider": {"allow": ["Mistral"]},
"messages": [{"role":"user","content":"ping"}],
"max_tokens": 5
}' | grep -i "x-provider\|x-ratelimit\|HTTP/"
- ✅ Attendu : header
x-provider: Mistral - ❌ Si absent ou autre valeur → preset non appliqué ou provider indisponible
Test 2 : vérifier que les providers CN sont bien bloqués
curl -s https://eu.openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "moonshotai/kimi-k2.5",
"provider": {"allow": ["Moonshot"]},
"messages": [{"role":"user","content":"ping"}],
"max_tokens": 5
}' | jq '.error'
- ✅ Attendu : erreur “No provider available” ou équivalent
- ❌ Si une réponse arrive → Moonshot n’est pas dans ta blacklist
noter la date de ces tests dans un fichier ~/.openclaw-security-audit.md (chmod 600). Ce fichier servira de journal d’audit pour les tutos suivants.
Checklist finale :
-
x-provider: Mistralconfirmé dans la réponse - Moonshot bloqué confirmé
- ~/.openclaw-security-audit.md créé avec date et résultats
Dépannage
“No models available with current provider restrictions”
Vérifier que Mistral n’est pas dans Ignored Providers par erreur.
Header x-provider absent
Utiliser -v au lieu de -D - pour voir tous les headers.
Clé OpenRouter refusée
Vérifier que $OPENROUTER_KEY est bien exportée :
echo $OPENROUTER_KEY | cut -c1-8
# Affiche les 8 premiers chars
Références
- OpenRouter Privacy docs : https://openrouter.ai/docs/privacy
- OpenRouter Provider Routing : https://openrouter.ai/docs/provider-routing
- Endpoint EU : https://eu.openrouter.ai