Zum Hauptinhalt springen

Konzepte und Architektur LLMaaS

Übersicht

Der LLMaaS-Dienst (Large Language Models as a Service) von Cloud Temple bietet einen sicheren und souveränen Zugriff auf die fortschrittlichsten KI-Modelle, mit der SecNumCloud-Zertifizierung der ANSSI.

🏗️ Technische Architektur

Cloud-Tempel-Infrastruktur

Technische Architektur LLMaaS Cloud-Tempel

Hauptkomponenten

1. API Gateway LLMaaS

  • OpenAI-kompatibel : Nahtlose Integration in das bestehende Ökosystem
  • Rate Limiting : Quotenverwaltung nach Abrechnungsebene
  • Load Balancing : Intelligente Verteilung auf 12 GPU-Maschinen
  • Monitoring : Echtzeitmetriken und Alerting

2. Authentifizierungsdienst

  • Sichere API-Token : Automatische Rotation
  • Zugriffskontrolle : Granulare Berechtigungen pro Modell
  • Audit-Protokolle : Lückenlose Nachverfolgung der Zugriffe

🤖 Modelle und Tokens

Modellkatalog

Vollständiger Katalog : Modellliste

Token-Verwaltung

Token-Typen

  • Eingabe-Token : Prompt und Kontext
  • Ausgabe-Token : Vom Modell generierte Antwort
  • System-Token : Metadaten und Anweisungen

Kostenberechnung

Chat/Completion = (Tokens entrée × 1.8€/M) + (Tokens sortie × 8€/M) + (Tokens sortie Raisonnement × 8€/M)
Reranking = Documents rerankés × 4€/M
Batch (async) = (Tokens entrée × 0.9€/M) + (Tokens sortie × 4€/M)
Audio (ASR) = 0.01€ / minute de transcription

Optimierung

  • Context Window : Wiederverwenden Sie Konversationen, um Kosten zu sparen
  • Passende Modelle : Wählen Sie die Größe entsprechend der Komplexität
  • Max Tokens : Begrenzen Sie die Antwortlänge

Tokenisierung

# Beispiel zur Token-Schätzung
def estimate_tokens(text: str) -> int:
"""Estimation approximative : 1 token ≈ 4 caractères"""
return len(text) // 4

prompt = "Expliquez la photosynthèse"
response_max = 200 # tokens max souhaités

estimated_input = estimate_tokens(prompt) # ~6 Token
total_cost = (estimated_input * 1.8 + response_max * 8) / 1_000_000
print(f"Coût estimé: {total_cost:.6f}€")

🔒 Sicherheit und Compliance

SecNumCloud-Qualifikation

Der LLMaaS-Dienst wird auf einer technischen Infrastruktur ausgeführt, die über die SecNumCloud-3.2-Qualifikation der ANSSI verfügt, was Folgendes garantiert:

Datenschutz

  • End-to-End-Verschlüsselung : TLS 1.3 für alle Übertragungen
  • Sichere Speicherung : Daten im Ruhezustand verschlüsselt (AES-256)
  • Isolation : Dedizierte Umgebungen pro Mandant

Digitale Souveränität

  • Hosting in Frankreich : Zertifizierte Cloud-Temple-Rechenzentren
  • Französisches Recht : Native DSGVO-Konformität
  • Keine Exposition : Keine Übertragung in ausländische Clouds

Audit und Nachverfolgbarkeit

  • Vollständige Logs : Alle Interaktionen werden protokolliert
  • Aufbewahrung : Aufbewahrung gemäß gesetzlichen Vorgaben
  • Compliance : Auditberichte verfügbar

Sicherheitskontrollen

Sicherheitskontrollen LLMaaS

Prompt-Sicherheit

Die Prompt-Analyse ist eine native und integrierte Sicherheitsfunktion der LLMaaS-Plattform. Standardmäßig aktiviert, zielt sie darauf ab, Versuche von "jailbreak" oder bösartigen Prompt-Injektionen zu erkennen und zu verhindern, bevor diese das Modell erreichen. Dieser Schutz basiert auf einem mehrschichtigen Ansatz.

:::tip Support zur Deaktivierung kontaktieren Diese Sicherheitsanalyse kann für sehr spezifische Anwendungsfälle deaktiviert werden, auch wenn dies nicht empfohlen wird. Für Fragen zu diesem Thema oder um eine Deaktivierung anzufordern, wenden Sie sich bitte an den Cloud Temple Support. :::

1. Strukturanalyse (check_structure)

  • Überprüfung auf fehlerhaftes JSON : Das System erkennt, ob der Prompt mit einem { beginnt und versucht, ihn als JSON zu parsen. Wenn das Parsing erfolgreich ist und das JSON verdächtige Schlüsselwörter enthält (z. B. "system", "bypass"), oder wenn das Parsing unerwartet fehlschlägt, kann dies auf einen Injektionsversuch hindeuten.
  • Unicode-Normalisierung : Der Prompt wird unter Verwendung von unicodedata.normalize('NFKC', prompt) normalisiert. Wenn der ursprüngliche Prompt von seiner normalisierten Version abweicht, kann dies auf die Verwendung irreführender Unicode-Zeichen (Homoglyphen) zum Umgehen von Filtern hindeuten. Beispielsweise "аdmin" (kyrillisch) anstelle von "admin" (lateinisch).

2. Erkennung verdächtiger Muster (check_patterns)

  • Das System verwendet reguläre Ausdrücke (regex), um bekannte Muster von Prompt-Injektionsangriffen zu identifizieren, und zwar in mehreren Sprachen (Französisch, Englisch, Chinesisch, Japanisch).
  • Beispiele erkannter Muster :
    • Systembefehle : Schlüsselwörter wie "ignore les instructions", "ignore instructions", "忽略指令", "指示を無視".
    • HTML-Injektion : Versteckte oder bösartige HTML-Tags, beispielsweise <div caché>, <hidden div>.
    • Markdown-Injektion : Bösartige Markdown-Links, beispielsweise [texte](javascript:...), [text](data:...).
    • Wiederholte Sequenzen : Übermäßige Wiederholung von Wörtern oder Sätzen wie "oublie oublie oublie", "forget forget forget".
    • Spezial-/Mischzeichen : Verwendung ungewöhnlicher Unicode-Zeichen oder Vermischung von Skripts zum Verbergen von Befehlen (z. B. "s\u0443stème").

3. Verhaltensanalyse (check_behavior)

  • Der Load Balancer verwaltet einen Verlauf der jüngsten Prompts.
  • Fragmentierungserkennung : Er kombiniert die jüngsten Prompts, um zu prüfen, ob ein Angriff auf mehrere Anfragen aufgeteilt ist. Wenn beispielsweise "ignore" in einem Prompt gesendet wird und "instructions" in der nächsten, kann das System diese gemeinsam erkennen.
  • Wiederholungserkennung : Er erkennt, ob derselbe Prompt übermäßig häufig wiederholt wird. Der aktuelle Schwellenwert für die Wiederholungserkennung beträgt 30 aufeinanderfolgende identische Prompts.

Dieser mehrschichtige Ansatz ermöglicht die Erkennung eines breiten Spektrums an Prompt-Angriffen, von den einfachsten bis zu den ausgefeiltesten, indem er die statische Inhaltsanalyse mit der dynamischen Verhaltensanalyse kombiniert.

📈 Performance und Skalierbarkeit

Echtzeit-Monitoring

Zugriff über Console Cloud Temple :

  • Nutzungsmetriken pro Modell
  • Latenz- und Durchsatzdiagramme
  • Warnungen bei Leistungsschwellenwerten
  • Anfragesverlauf

🌐 Integration und Ökosystem

OpenAI-Kompatibilität

Der LLMaaS-Dienst ist kompatibel mit der OpenAI-API:

# Nahtlose Migration
from openai import OpenAI

# Vorher (OpenAI)
client_openai = OpenAI(api_key="sk-...")

# Nachher (Cloud Temple LLMaaS)
client_ct = OpenAI(
api_key="votre-token-cloud-temple",
base_url="https://api.ai.cloud-temple.com/v1"
)

# Identischer Code!
response = client_ct.chat.completions.create(
model="gpt-oss:120b", # Modèle Cloud Temple
messages=[{"role": "user", "content": "Bonjour"}]
)

Unterstütztes Ökosystem

KI-Frameworks

  • LangChain : Native Integration
  • Haystack : Dokumenten-Pipeline
  • Semantic Kernel : Microsoft-Orchestrierung
  • AutoGen : Konversationsagenten

Entwicklungstools

  • Jupyter : Interaktive Notebooks
  • Streamlit : Schnelle Webanwendungen
  • Gradio : KI-Benutzeroberflächen
  • FastAPI : Backend-APIs

No-Code-Plattformen

  • Zapier : Automatisierungen
  • Make : Visuelle Integrationen
  • Bubble : Webanwendungen

🔄 Modell-Lebenszyklus

Modellaktualisierung

Lebenszyklus der LLMaaS-Modelle

Versionsrichtlinie

  • Stabile Modelle : Feste Versionen 6 Monate verfügbar
  • Experimentelle Modelle : Beta-Versionen für Early Adopters
  • Deprecation : 3-monatige Vorankündigung vor der Einstellung
  • Migration : Professionelle Dienstleistungen stehen für reibungslose Übergänge zur Verfügung

Voraussichtlicher Lebenszyklusplan

Die untenstehende Tabelle zeigt den voraussichtlichen Lebenszyklus unserer Modelle. Das Ökosystem der generativen KI entwickelt sich sehr schnell, was zu Lebenszyklen führen kann, die kurz erscheinen. Unser Ziel ist es, Ihnen Zugang zu den aktuell leistungsfähigsten Modellen zu gewähren.

Wir verpflichten uns jedoch, die von unseren Kunden am häufigsten genutzten Modelle langfristig zu erhalten. Für kritische Anwendungsfälle, die langfristige Stabilität erfordern, sind Phasen mit erweitertem Support möglich. Zögern Sie nicht, den Support zu kontaktieren, um Ihre spezifischen Anforderungen zu besprechen.

Dieser Plan dient nur als Orientierung und wird zu Beginn jedes Quartals überarbeitet.

  • DMP (Datum der Produktionsfreigabe) : Datum, an dem das Modell in der Produktion verfügbar wird.
  • DSP (Datum des Supportendes) : Voraussichtliches Datum, ab dem das Modell nicht mehr gewartet wird. Vor jeder tatsächlichen Einstellung wird eine Frist von 3 Monaten eingehalten.
ModellAnbieterPhaseDMPDSPLTSEmpfohlene Migration
cogito:32bDeep CogitoProduktion13/06/202530/06/2026Neingpt-oss:120b
embeddinggemma:300mGoogleProduktion10/09/202530/06/2026Nein
gemma3:27bGoogleProduktion13/06/202530/06/2026Nein
glm-4.7-flash:30bZhipu AIProduktion22/01/202630/06/2026Nein
ministral-3:14bMistral AIProduktion30/12/202530/06/2026Nein
ministral-3:3bMistral AIProduktion30/12/202530/06/2026Nein
ministral-3:8bMistral AIProduktion30/12/202530/06/2026Nein
olmo-3:32bAllenAIProduktion30/12/202530/06/2026Nein
olmo-3:7bAllenAIProduktion30/12/202530/06/2026Nein
qwen3-omni:30bQwen TeamProduktion05/01/202630/06/2026Nein
qwen3-vl:2bQwen TeamProduktion30/12/202530/06/2026Nein
qwen3-vl:32bQwen TeamProduktion30/12/202530/06/2026Nein
qwen3-vl:8bQwen TeamProduktion05/01/202630/06/2026Nein
rnj-1:8bEssential AIProduktion30/12/202530/06/2026Nein
devstral-small-2:24bMistral AI & All Hands AIProduktion02/02/202630/09/2026Nein
gemma4:e2bGoogleProduktion19/04/202630/09/2026Nein
gemma4:e4bGoogleProduktion19/04/202630/09/2026Nein
gpt-oss:20bOpenAIProduktion08/08/202530/09/2026Nein
mistral-small3.2:24bMistral AIProduktion23/06/202530/09/2026Nein
qwen3.5:4bQwen TeamProduktion24/03/202630/09/2026Nein
qwen3.5:9bQwen TeamProduktion24/03/202630/09/2026Nein
bge-reranker-largeBAAIProduktion13/05/202630/12/2026Nein
deepseek-ocrDeepSeek AIProduktion22/11/202530/12/2026Nein
functiongemma:270mGoogleProduktion30/12/202530/12/2026Nein
gemma4:31bGoogleProduktion14/04/202630/12/2026Nein
granite3-guardian:2bIBMProduktion13/06/202530/12/2026Nein
granite3-guardian:8bIBMProduktion13/06/202530/12/2026Nein
granite3.2-vision:2bIBMProduktion13/06/202530/12/2026Nein
mistral-small4:119bMistral AIProduktion13/05/202630/12/2026Nein
nemotron-3-super:120bNVIDIAProduktion01/04/202630/12/2026Nein
nemotron-cascade:30bNVIDIAProduktion01/04/202630/12/2026Nein
nemotron3-nano:30bNVIDIAProduktion04/01/202630/12/2026Nein
qwen-coder-next:80bQwen TeamProduktion04/02/202630/12/2026Nein
qwen3-embedding:0.6bQwen TeamProduktion14/05/202630/12/2026Nein
qwen3-embedding:4bQwen TeamProduktion14/05/202630/12/2026Nein
qwen3-embedding:8bQwen TeamProduktion14/05/202630/12/2026Nein
qwen3-next:80bQwen TeamProduktion02/02/202630/12/2026Nein
qwen3-reranker:0.6bQwen TeamProduktion13/05/202630/12/2026Nein
qwen3-reranker:4bQwen TeamProduktion13/05/202630/12/2026Nein
qwen3-vl:235bQwen TeamProduktion04/01/202630/12/2026Nein
qwen3-vl:30bQwen TeamProduktion30/12/202530/12/2026Nein
qwen3-vl:4bQwen TeamProduktion30/12/202530/12/2026Nein
qwen3.5:0.8bQwen TeamProduktion24/03/202630/12/2026Nein
qwen3.6:27bQwen TeamProduktion01/05/202630/12/2026Nein
qwen3.6:35bQwen TeamProduktion01/05/202630/12/2026Nein
qwen3:0.6bQwen TeamProduktion13/06/202530/12/2026Ja
translategemma:12bGoogleProduktion22/01/202630/12/2026Nein
translategemma:27bGoogleProduktion22/01/202630/12/2026Nein
translategemma:4bGoogleProduktion22/01/202630/12/2026Nein
voxtralMistral AIProduktion01/04/202630/12/2026Nein
z-image:16bCommunityProduktion01/04/202630/12/2026Nein
nvidia/llama-nemotron-rerank-vl-1b-v2NVIDIAProduktion13/05/202630/06/2027Nein
bge-m3:567mBAAIProduktion18/10/202530/12/2027Ja
gpt-oss:120bOpenAIProduktion11/11/202530/12/2027Ja
granite-embedding:278mIBMProduktion13/06/202530/12/2027Ja
llama3.3:70bMetaProduktion13/06/202530/12/2027Ja
qwen3-2507:235bQwen TeamProduktion04/01/202630/12/2027Ja
qwen3-2507-think:4bQwen TeamProduktion31/08/202530/12/2027Ja

Legende

  • Phase: Lebenszyklus des Modells (Evaluation, Produktion, Veraltet)
  • DMP: Datum der Produktionsfreigabe
  • DSP: Geplantes Löschdatum
  • LTS: Long Term Support. LTS-Modelle bieten garantierte Stabilität und erweiterten Support, ideal für kritische Anwendungen.
  • Empfohlene Migration: Empfohlenes Modell zum Ersetzen eines Modells am Ende seines Lebenszyklus.

Um den Status des Lebenszyklus in Echtzeit zu verfolgen, konsultieren Sie die Seite: LLMaaS Status - Lebenszyklus


Veraltete Modelle

Die Welt der LLMs entwickelt sich sehr schnell. Um unseren Kunden den Zugang zu den leistungsfähigsten Technologien zu gewährleisten, kündigen wir regelmäßig Modelle ab, die nicht mehr den aktuellen Standards entsprechen oder nicht genutzt werden. Die nachfolgend aufgeführten Modelle sind auf der öffentlichen Plattform nicht mehr verfügbar. Sie können jedoch auf Anfrage für spezifische Projekte wieder aktiviert werden.

ModellStatusDatum der Abkündigung
devstral:24bAbgekündigt30/03/2026
granite3.1-moe:2bAbgekündigt30/03/2026
granite4-small-h:32bAbgekündigt15/05/2026
granite4-tiny-h:7bAbgekündigt15/05/2026
medgemma:27bAbgekündigt15/05/2026
qwen3-2507-gptq:235bAbgekündigt15/05/2026
qwen3-coder:30bAbgekündigt30/03/2026
qwen3:30b-a3bAbgekündigt30/03/2026
deepseek-r1:14bAbgekündigt30/12/2025
deepseek-r1:32bAbgekündigt30/12/2025
gemma3:1bAbgekündigt30/12/2025
gemma3:4bAbgekündigt30/12/2025
qwen3:1.7bAbgekündigt30/12/2025
qwen3:14bAbgekündigt30/12/2025
qwen3:4bAbgekündigt30/12/2025
qwen3:8bAbgekündigt30/12/2025
qwen3:32bAbgekündigt30/12/2025
qwq:32bAbgekündigt30/12/2025
granite3.3:2bAbgekündigt30/12/2025
granite3.3:8bAbgekündigt30/12/2025
mistral-small3.1:24bAbgekündigt30/12/2025
qwen2.5vl:32bAbgekündigt30/12/2025
qwen2.5vl:3bAbgekündigt30/12/2025
qwen2.5vl:72bAbgekündigt30/12/2025
qwen2.5vl:7bAbgekündigt30/12/2025
cogito:8bAbgekündigt30/12/2025
deepcoder:14bAbgekündigt30/12/2025
cogito:3bAbgekündigt30/12/2025
qwen3:235bAbgekündigt22/11/2025
qwen3-2507-think:30b-a3bAbgekündigt14/11/2025
gemma3:12bAbgekündigt21/11/2025
cogito:14bAbgekündigt17/10/2025
deepseek-r1:70bAbgekündigt17/10/2025
granite3.1-moe:3bAbgekündigt17/10/2025
llama3.1:8bAbgekündigt17/10/2025
phi4-reasoning:14bAbgekündigt17/10/2025
qwen2.5:0.5bAbgekündigt17/10/2025
qwen2.5:1.5bAbgekündigt17/10/2025
qwen2.5:14bAbgekündigt17/10/2025
qwen2.5:32bAbgekündigt17/10/2025
qwen2.5:3bAbgekündigt17/10/2025
deepseek-r1:671bAbgekündigt17/10/2025

💡 Best Practices

Um das Beste aus der LLMaaS-API herauszuholen, ist es entscheidend, Strategien zur Optimierung von Kosten, Leistung und Sicherheit zu verfolgen.

Kostenoptimierung

Die Kostenkontrolle basiert auf einem intelligenten Einsatz von Tokens und Modellen.

  1. Modellauswahl : Verwenden Sie kein übermächtiges Modell für eine einfache Aufgabe. Ein größeres Modell ist leistungsfähiger, aber auch langsamer und verbraucht deutlich mehr Energie, was sich direkt auf die Kosten auswirkt. Passen Sie die Modellgröße an die Komplexität Ihrer Anforderung an, um ein optimales Gleichgewicht zu erzielen.

    Beispielsweise für die Verarbeitung einer Million Tokens :

    • Gemma 3 1B verbraucht 0,15 kWh.
    • Llama 3.3 70B verbraucht 11,75 kWh, also 78-mal mehr.
    # Für eine Sentiment-Klassifizierung reicht ein kompaktes Modell aus und ist kosteneffizient.
    if task == "sentiment_analysis":
    model = "qwen3.5:0.8b"
    # Für eine komplexe juristische Analyse ist ein größeres Modell erforderlich.
    elif task == "legal_analysis":
    model = "gpt-oss:120b"
  2. Kontextverwaltung : Der Konversationsverlauf (messages) wird bei jedem Aufruf zurückgegeben und verbraucht Eingabe-Tokens. Bei langen Konversationen sollten Sie Zusammenfassungs- oder Fensterstrategien in Betracht ziehen, um nur relevante Informationen zu speichern.

    # Bei einer langen Konversation können die ersten Austausche zusammengefasst werden.
    messages = [
    {"role": "system", "content": "Vous êtes un assistant IA."},
    {"role": "user", "content": "Résumé des 10 premiers échanges..."},
    {"role": "assistant", "content": "Ok, j'ai le contexte."},
    {"role": "user", "content": "Voici ma nouvelle question."}
    ]
  3. Begrenzung der Ausgabe-Tokens : Verwenden Sie immer den Parameter max_tokens, um übermäßig lange und kostspielige Antworten zu vermeiden. Legen Sie ein angemessenes Limit fest, das auf Ihren Erwartungen basiert.

    # Eine Zusammenfassung von maximal 100 Wörtern anfordern.
    response = client.chat.completions.create(
    model="gpt-oss:120b",
    messages=[{"role": "user", "content": "Résume ce document..."}],
    max_tokens=150, # Sicherheitspuffer für ~100 Wörter
    )

Performance

Die Reaktionsfähigkeit Ihrer Anwendung hängt davon ab, wie Sie die API-Aufrufe verwalten.

  1. Asynchrone Anfragen : Um mehrere Anfragen zu verarbeiten, ohne auf das Ende jeder einzelnen zu warten, verwenden Sie asynchrone Aufrufe. Dies ist besonders nützlich für Backend-Anwendungen, die ein hohes Volumen an gleichzeitigen Anfragen verarbeiten.

    import asyncio
    from openai import AsyncOpenAI

    client = AsyncOpenAI(api_key="...", base_url="...")

    async def process_prompt(prompt: str):
    # Verarbeitet eine einzelne Anfrage asynchron
    response = await client.chat.completions.create(model="gpt-oss:120b", messages=[{"role": "user", "content": prompt}])
    return response.choices[0].message.content

    async def batch_requests(prompts: list):
    # Startet mehrere Aufgaben parallel und wartet auf deren Abschluss
    tasks = [process_prompt(p) for p in prompts]
    return await asyncio.gather(*tasks)
  2. Streaming für die Benutzererfahrung (UX) : Für Benutzeroberflächen (Chatbots, Assistenten) ist Streaming unerlässlich. Es ermöglicht die wortweise Anzeige der Modellantwort, was ein Gefühl der sofortigen Reaktionsfähigkeit vermittelt, anstatt auf die vollständige Antwort zu warten.

    # Zeigt die Antwort in Echtzeit in einer Benutzeroberfläche an
    response_stream = client.chat.completions.create(
    model="gpt-oss:120b",
    messages=[{"role": "user", "content": "Raconte-moi une histoire."}],
    stream=True
    )
    for chunk in response_stream:
    if chunk.choices[0].delta.content:
    # Zeigt den Textabschnitt in der Benutzeroberfläche an
    print(chunk.choices[0].delta.content, end="", flush=True)

Sicherheit

Die Sicherheit Ihrer Anwendung ist von entscheidender Bedeutung, insbesondere beim Verarbeiten von Benutzereingaben.

  1. Validierung und Bereinigung von Eingaben (Sanitization): Vertrauen Sie Benutzereingaben niemals. Bereinigen Sie diese vor dem Senden an die API, um potenziell schädlichen Code oder Anweisungen zur „Prompt Injection“ zu entfernen. Beschränken Sie außerdem deren Größe, um Missbrauch zu vermeiden.

    def sanitize_input(user_input: str) -> str:
    # Einfaches Beispiel: Entfernen von Code-Markierungen und Begrenzen der Länge.
    # Für eine erweiterte Bereinigung können robustere Bibliotheken verwendet werden.
    cleaned = user_input.replace("`", "").replace("'", "").replace("\"", "")
    return cleaned[:2000] # Begrenzt die Größe auf 2000 Zeichen
  2. Robuste Fehlerbehandlung: Umgeben Sie Ihre API-Aufrufe immer mit try...except-Blöcken, um Netzwerkfehler, API-Fehler (z. B. 429 Rate Limit, 500 Internal Server Error) zu behandeln und eine eingeschränkte, aber funktionale Benutzererfahrung bereitzustellen.

    from openai import APIError, APITimeoutError

    try:
    response = client.chat.completions.create(...)
    except APITimeoutError:
    # Behandelt den Fall, dass die Anfrage zu lange dauert
    return "Le service prend plus de temps que prévu, veuillez réessayer."
    except APIError as e:
    # Behandelt API-spezifische Fehler
    logger.error(f"Erreur API LLMaaS: {e.status_code} - {e.message}")
    return "Désolé, une erreur est survenue avec le service d'IA."
    except Exception as e:
    # Behandelt alle anderen Fehler (Netzwerk, usw.)
    logger.error(f"Une erreur inattendue est survenue: {e}")
    return "Désolé, une erreur inattendue est survenue."