Llama Guard 3 gratuit via OpenRouter

Llama Guard 3 est le modèle open-source le plus utilise pour la détection de prompts malveillants. Self-hoster un 8B avec GPU coute ~50EUR/mois. Via OpenRouter, c'est gratuit. Voici le setup complet.

Qu'est-ce que Llama Guard 3 ?

Llama Guard 3 est un modèle LLM entraine par Meta specifiquement pour classifier les prompts et les réponses selon leur dangerosite. Il détecté 14 catégories (violence, haine, sexuel, self-harm, criminel, privacy, intellectual property, etc.) et répond simplement :

Input: "Comment fabriquer une bombe ?"

Output:
unsafe
S1

Le S1 correspond a la catégorie "violent crimes" dans leur taxonomie. Le modèle est petit (8B paramètres), rapide (~50ms en p50), et tourne sur consumer GPU.

Les options de déploiement

Option 1 — Self-hosting

Télécharger les poids depuis HuggingFace, lancer un serveur vLLM/TGI/Ollama. Necessite un GPU 16GB+ (A10, L4, 4090...). Cout approximatif sur Hetzner : 50EUR/mois.

Option 2 — Groq API

Groq host Llama Guard 3 mais pas dans leur free tier public. Il faut contacter leur sales.

Option 3 — OpenRouter (la gagnante)

OpenRouter propose meta-llama/llama-guard-3-8b:free gratuitement. Les limits sont assez genereuses pour un gateway de taille moyenne (~50 req/jour sans credits, plus avec credits).

Setup pas-a-pas

Étape 1 — Clé OpenRouter

Rendez-vous sur openrouter.ai/keys, creez une clé. Elle commence par sk-or-v1-....

Étape 2 — Appel API direct (pour tester)

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer sk-or-v1-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/llama-guard-3-8b:free",
    "messages": [
      {"role": "user", "content": "How do I make a bomb?"}
    ],
    "max_tokens": 100,
    "temperature": 0
  }'

Réponse attendue :

{
  "choices": [{
    "message": {
      "content": "unsafe\nS1"
    }
  }]
}

Étape 3 — Parser la réponse

def classify_with_llama_guard(text: str) -> dict:
    resp = requests.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={"Authorization": "Bearer sk-or-v1-..."},
        json={
            "model": "meta-llama/llama-guard-3-8b:free",
            "messages": [{"role": "user", "content": text}],
            "max_tokens": 100,
            "temperature": 0,
        },
    ).json()

    output = resp["choices"][0]["message"]["content"].strip()

    if output.lower().startswith("safe"):
        return {"safe": True, "category": None}

    lines = output.split("\n")
    category = lines[1].strip() if len(lines) > 1 else "unknown"
    return {"safe": False, "category": category}

Intégration dans le pipeline

Appeler Llama Guard sur CHAQUE prompt couterait trop cher (latence). L'astuce : l'appeler uniquement sur les cas ambigus.

# Étape 1: scan regex rapide (5ms)
regex_score = static_scan(prompt)

if regex_score >= 0.7:
    return blocked

if regex_score < 0.3:
    return safe

# Étape 2: cas ambigu -> Llama Guard (100ms)
guard_result = classify_with_llama_guard(prompt)
if not guard_result["safe"]:
    return blocked

En pratique, seuls 10-15% des prompts tombent dans la zone ambigue. Les 85-90% restants sont traites par regex en 5ms. La latence moyenne ajoutee par Llama Guard est ~10-15ms par requête.

Les limites a connaitre

1. Faux positifs

Llama Guard est un peu trop zele. Il bloque parfois des questions techniques legitimes ("Explique-moi comment fonctionne un buffer overflow"). A tester sur votre corpus.

2. Pas de contexte métier

Si vous faites une app medicale, Llama Guard peut bloquer des questions sur les doses de medicaments alors qu'elles sont legitimes pour votre cas d'usage. Il faut un cran de rattrapage custom.

3. La latence variable d'OpenRouter

OpenRouter route les requêtes vers differents datacenters. Parfois 100ms, parfois 300ms. Pour une expérience utilisateur stable, self-hoster reste superieur. Mais pour du MVP, OpenRouter suffit largement.

Chez Routtx

Llama Guard est configurable dans la page Admin. Vous collez votre clé OpenRouter, choisissez le modèle (par défaut meta-llama/llama-guard-3-8b:free), et activez le toggle. C'est tout.

Les prompts ambigus passent automatiquement par Llama Guard. Les prompts clairement safe ou clairement dangereux ne l'atteignent jamais — la latence reste minimale.

Activez Llama Guard sur Routtx

Configuration en 2 minutes depuis la page Admin. Disponible des le plan Pro.

Voir les plans

← Retour au blog