SecuAAS Docs
SecuScan / ScanyzeIntelligence artificielle

GPU souverain vs Claude Premium

Quand utiliser le GPU souverain (Qwen3, OVH BHS) vs Claude Sonnet/Opus pour vos analyses Scanyze — matrice décisionnelle et coûts

GPU souverain vs Claude Premium

Scanyze délègue toutes ses opérations IA à SecuTools, la plateforme centralisée IA de SecuAAS. SecuTools route les jobs vers plusieurs fournisseurs selon la politique du tenant et la nature du prompt.

Cette page explique la différence entre les deux principaux fournisseurs et fournit une matrice décisionnelle pour choisir le bon pour chaque cas d'usage.

Les deux fournisseurs principaux

GPU souverain (défaut)

Modèle : Qwen3-Coder-35B-Instruct déployé sur cluster GPU OVH Beauharnois (Québec).

CaractéristiqueValeur
HébergementOVH BHS — Québec, Canada
Souveraineté100% sous contrôle SecuAAS, aucun appel externe
Latence~5-10s par analyse standard
Throughput~68 tokens/s
Contexte (input + output)16 384 tokens
Coût (CAD)Inclus dans les crédits IA — 1 crédit par analyse légère
QualitéTrès bonne sur petits prompts, code Go/Python/JS, vulnérabilités classiques
ConformitéLoi 25, PIPEDA, RGPD nativement

Claude Premium (opt-in)

Modèles utilisés (selon le cas d'usage) :

Cas d'usageModèleContexteOutput max
Rapport AI premium (code scan)Claude Sonnet 4.6200K tokens32 768 tokens
Deep findings analysisClaude Opus 4.6200K tokens32 768 tokens
CaractéristiqueValeur
HébergementAnthropic (USA, infrastructure AWS multi-régions)
SouverainetéDonnées quittent le Canada (Anthropic facture en USD, BAA US-CA)
Latence~30-90s par analyse standard
Contexte200 000 tokens (~150K mots)
Output max32 768 tokens (~24K mots de rapport)
Coût (CAD)5 crédits par analyse légère, davantage selon la taille du prompt
QualitéRéférence de l'industrie pour les analyses complexes, longs contextes
ConformitéDPA Anthropic disponible. Le tenant doit explicitement opter pour Claude (claude_premium_enabled).

Source : secuscan-api/internal/api/handlers/secutools_ai_client.go (configuration MaxTokens et PreferredAI selon caller_id).

Matrice décisionnelle

Cas d'usageRecommandationRaison
Analyse contextuelle d'un finding EASM (TLS, headers, DNS)GPUFindings courts (moins de 3K tokens), Qwen suffit largement
Analyse d'un finding Code (Semgrep, Gitleaks)GPUQwen3-Coder est entraîné spécifiquement pour le code
Rapport Code Scanning d'un repo < 50 issuesGPULe prompt tient dans 16K, le rapport tient dans 8K output
Rapport Code Scanning d'un repo > 100 issuesPremiumPrompt > 16K, le GPU ne peut pas générer un rapport cohérent
Rapport Code Scanning d'un repo > 300 issuesPremium chunkedMode chunked v0.126.5, plusieurs passes Sonnet
Pentest IA reportPremium (Opus)Raisonnement adversarial complexe, longues chaînes de findings
Compliance Legal (Loi 25, RGPD)GPU5 prompts courts, GPU largement suffisant
Chatbot Security (analyse de réponse)GPULatence critique pour rester sous le timeout des campagnes
Findings deep analysis (manuelle)Choix tenantVoir tenant settings — toggle claude_premium_enabled

Comment choisir le fournisseur côté UI

Pour les analyses interactives (boutons sur un finding)

Sur la page d'un finding, deux boutons peuvent être présents :

  • 🟢 Analyse IA (1 crédit) — utilise le GPU souverain. Toujours visible.
  • 💎 Analyse IA Premium (5 crédits) — utilise Claude Opus. Visible uniquement si :
    • Le tenant a claude_premium_enabled = true (toggle admin)
    • Le crédit IA restant est ≥ 5

Source : secuscan-web/components/findings/AIAnalysisButtons.tsx.

Pour les rapports automatiques (post-scan)

À la fin d'un scan, le rapport AI est généré avec :

  • GPU par défaut sur tous les plans
  • Premium uniquement si :
    • Le tenant a claude_premium_enabled = true
    • Le scan a > 100 issues (heuristique de bascule)
    • Le tenant a opté pour le mode Premium dans Settings → AI

Configuration tenant (admin)

Source : secuscan-api/internal/domain/models/tenant_ai_config.go.

Dans Settings → AI → Provider preferences, l'admin du tenant peut configurer :

ParamètreValeursEffet
claude_premium_enabledtrue / false (défaut: false)Activer le bouton « Analyse Premium » dans l'UI
manual_analysis_providergpu / claude-opus (défaut: gpu)Provider utilisé quand l'utilisateur clique sur « Analyse IA » manuelle
gemini_enabledtrue / falseActiver Gemini comme fallback si GPU indispo (rare)

Les analyses automatiques (workers, schedules, batch) utilisent toujours le GPU, quel que soit ce paramètre. Le toggle ne s'applique qu'aux analyses déclenchées manuellement par un utilisateur.

Coûts et politique de souveraineté

Scanyze applique une politique stricte de GPU-first :

  1. Routage par défaut : preferredAI = "gpu". Aucun fallback silencieux vers le cloud.
  2. Cloud uniquement opt-in tenant : Claude n'est appelé que si :
    • caller_id == "codescan-premium-report" (rapport premium explicite)
    • caller_id == "findings-deep-analysis" (analyse manuelle Claude opt-in)
  3. Anonymisation : tous les prompts envoyés à Claude ont le metadata anonymize=true. Les findings et données infrastructure peuvent contenir des informations client — l'anonymisation côté SecuTools tente de masquer (best effort).
  4. Audit : chaque appel IA est tracé dans ai_usage avec : provider, model, prompt_tokens, completion_tokens, cost_cad, latency_ms, caller_id.

Source : secuscan-api/internal/api/handlers/secutools_ai_client.go (commentaires P2.1 / P2.3).

Coût par crédit IA

Conversion : 1 crédit IA = 0.10 CAD.

Type d'analyseGPU (crédits)Premium (crédits)Coût CAD GPUCoût CAD Premium
Analyse d'un finding (light)150.10 $0.50 $
Rapport code scan (10 issues)~10~501.00 $5.00 $
Rapport code scan (100 issues)~50 (limite contexte)~2505.00 $25.00 $
Rapport code scan (500 issues, chunked)N/A~1500N/A150.00 $
Compliance legal scan~5~250.50 $2.50 $

Voir Crédits IA pour les allocations mensuelles par plan.

Pipeline parallèle (v0.130.x)

Depuis v0.130.0, l'analyse de findings utilise un pipeline parallèle borné par worker pool au lieu d'une boucle séquentielle. Code partagé : internal/services/aipipeline/ (extracté en v0.130.2).

Concurrency par provider

Source : internal/services/aipipeline/pipeline.go::ProviderDefaults.

ProviderWorkers parallèlesJustification
GPU souverain (Qwen3)12Le cluster GPU OVH absorbe sans rate-limiting.
Claude (Sonnet/Opus)4L'API Anthropic limite à ~10 req/s. 4 workers évite les 429.

Les valeurs sont configurables via les env vars :

  • AI_ANALYSIS_BATCH_SIZE (défaut 5 findings par prompt)
  • AI_ANALYSIS_CONCURRENCY (défaut 12, override automatique à 4 si Claude)
  • AI_ANALYSIS_BATCH_TIMEOUT (défaut 180s)
  • AI_ANALYSIS_CACHE_ENABLED (défaut true)

Retry exponential backoff

Chaque batch suit un retry 6× exponential backoff (~1s → 32s) sur :

  • HTTP 429 (rate limit)
  • HTTP 5xx
  • timeouts réseau

Cela rend le pipeline résilient aux pics de trafic SecuTools côté GPU et aux throttling Anthropic côté Claude. Référence : aipipeline.CallWithRetry.

Performance

Avant v0.130 : 369 findings × 5–8s/Claude = >30 min, hit timeout Après v0.130 (defaults) : 369 findings → 74 batches / 12 workers ≈ 6 cycles ≈ 30–60s sur Claude, ≈ 15s sur GPU

Performances et benchmarks

Tests internes Scanyze (avril 2026) sur 50 findings de référence :

MétriqueGPU (Qwen3-35B)Claude Sonnet 4.6Claude Opus 4.6
Latence p506.2 s28 s41 s
Latence p9511.4 s52 s84 s
Tokens/s682418
Précision détection (vrai positif)87%95%97%
Faux positifs8%3%2%
Hallucinations recommendation4%<1%<1%
Coût (CAD) par 1M tokens output1.50 $18.00 $90.00 $

Le GPU est ~10× plus rapide et ~12× moins cher que Sonnet, mais la qualité plafonne sur les findings complexes et les longs contextes. Premium est justifié quand la qualité du rapport a un impact business direct (audit externe, board level).

Sélecteur de version d'analyse (v0.127.0)

Sur un finding, vous pouvez comparer plusieurs versions d'analyse (GPU vs Claude, ou plusieurs runs successifs Claude) via le sélecteur de version :

  • L'historique des analyses est listé par analysis_id avec horodatage et provider/model
  • L'export PDF et Markdown du rapport peut cibler une analyse spécifique : GET /v1/findings/:id/ai-analysis/:analysis_id/export?format=pdf|md|json
  • Cela permet de garder une trace des classifications successives, même quand un fournisseur a évolué (Sonnet 4.5 → Sonnet 4.6 par ex.)

Source : secuscan-api/internal/api/handlers/findings_ai.go (route GET /findings/:id/ai-analyses) + secuscan-web/components/findings/AnalysisVersionSelector.tsx.

Sources de cette page

  • Backend : secuscan-api/internal/api/handlers/secutools_ai_client.go, findings_ai.go, findings_ai_pipeline.go
  • Pipeline partagé (v0.130.2) : secuscan-api/internal/services/aipipeline/
  • Modèle : secuscan-api/internal/domain/models/tenant_ai_config.go
  • Cache (v0.130.0) : migration 000175 + finding_ai_cache_repo.go
  • SecuTools centralisé : https://api.secutools.secuaas.ovh
  • Frontend : secuscan-web/components/findings/AIAnalysisButtons.tsx, AnalysisVersionSelector.tsx

À jour pour Scanyze v0.130.x.

On this page