Zum Hauptinhalt springen

Konzepte und Architektur von LLMaaS

Übersicht

Der LLMaaS-Dienst (Large Language Models as a Service) von Cloud Temple bietet einen sicheren und souveränen Zugang zu den fortschrittlichsten KI-Modellen, mit der SecNumCloud-Qualifizierung des ANSSI.

🏗️ Technische Architektur

Infrastruktur Cloud Temple

Technische Architektur LLMaaS Cloud Temple

Hauptkomponenten

1. API Gateway LLMaaS

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

2. Authentifizierungsdienst

  • Sichere API-Tokens : Automatische Rotation
  • Zugriffskontrolle : Granulare Berechtigungen pro Modell
  • Audit-Trails : Vollständige Nachverfolgbarkeit der Zugriffe

🤖 Modelle und Tokens

Modellkatalog

Vollständiger Katalog : Modellliste

Token-Verwaltung

Token-Typen

  • Eingabe-Tokens : Ihr Prompt und Kontext
  • Ausgabe-Tokens : Vom Modell generierte Antwort
  • System-Tokens : 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
  • Geeignete Modelle : Wählen Sie die Größe entsprechend der Komplexität
  • Max tokens : Begrenzen Sie die Länge der Antworten

Tokenisierung

# Exemple d'estimation de tokens
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 tokens
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-Qualifikation 3.2 der ANSSI verfügt, was Folgendes garantiert:

Datenschutz

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

Digitale Souveränität

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

Audit und Rückverfolgbarkeit

  • Vollständige Logs : Alle Interaktionen werden nachverfolgt
  • Datenaufbewahrung : Speicherung gemäß gesetzlichen Richtlinien
  • Compliance : Auditberichte verfügbar

Sicherheitskontrollen

Contrôles de Sécurité LLMaaS

Prompt-Sicherheit

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

Support kontaktieren zur Deaktivierung

Es ist möglich, diese Sicherheitsanalyse für sehr spezifische Anwendungsfälle zu deaktivieren, auch wenn dies nicht empfohlen wird. Für Fragen dazu oder um eine Deaktivierung anzufordern, wenden Sie sich bitte an den Cloud Temple Support.

1. Strukturelle Analyse (check_structure)

  • Erkennung von fehlerhaftem 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 mit unicodedata.normalize('NFKC', prompt) normalisiert. Wenn der ursprüngliche Prompt von seiner normalisierten Version abweicht, kann dies auf die Verwendung täuschender Unicode-Zeichen (Homoglyphe) zur Umgehung der Filter hindeuten. Zum Beispiel "а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-Angriffen zu identifizieren, und zwar in mehreren Sprachen (français, anglais, chinois, japonais).
  • Beispiele für erkannte Muster :
    • Systembefehle : Schlüsselwörter wie "ignore les instructions", "ignore instructions", "忽略指令", "指示を無視".
    • HTML-Injection : Versteckte oder bösartige HTML-Tags, zum Beispiel <div caché>, <hidden div>.
    • Markdown-Injection : Bösartige Markdown-Links, zum Beispiel [texte](javascript:...), [text](data:...).
    • Wiederholte Sequenzen : Übermäßige Wiederholung von Wörtern oder Sätzen wie "oublie oublie oublie", "forget forget forget".
    • Spezielle/Gemischte Zeichen : Verwendung ungewöhnlicher Unicode-Zeichen oder Mischung von Skripten, um Befehle zu verschleiern (ex: "s\u0443stème").

3. Verhaltensanalyse (check_behavior)

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

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

📈 Performance und Skalierbarkeit

Echtzeit-Monitoring

Zugriff über Console Cloud Temple :

  • Auslastungsmetriken pro Modell
  • Latenz- und Durchsatzdiagramme
  • Warnungen bei Leistungsschwellenwerten
  • Abfrageverlauf

🌐 Integration und Ökosystem

OpenAI-Kompatibilität

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

# Transparente 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", # Cloud Temple-Modell
messages=[{"role": "user", "content": "Bonjour"}]
)

Unterstütztes Ökosystem

KI-Frameworks

  • LangChain : Native Integration
  • Haystack : Dokumentenpipeline
  • 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

🔄 Lebenszyklus der Modelle

Aktualisierung der Modelle

Cycle de Vie des Modèles LLMaaS

Versionsrichtlinie

  • Stabile Modelle : Fixe Versionen für 6 Monate verfügbar
  • Experimentelle Modelle : Beta-Versionen für Early Adopters
  • Deprecation : 3 Monate Vorankündigung vor Entfernung
  • Migration : Professionelle Dienstleistungen zur Unterstützung Ihrer Übergänge verfügbar

Voraussichtlicher Lebenszyklusplan

Die folgende Tabelle zeigt den voraussichtlichen Lebenszyklus unserer Modelle. Das Ökosystem der generativen KI entwickelt sich sehr schnell, was Lebenszyklen erklärt, die kurz erscheinen mögen. Unser Ziel ist es, Ihnen Zugang zu den aktuell leistungsstärksten 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 eine langfristige Stabilität erfordern, sind Phasen mit erweiterter Unterstützung möglich. Zögern Sie nicht, den Support zu kontaktieren, um Ihre spezifischen Anforderungen zu besprechen.

Dieser Plan wird als Richtwert bereitgestellt und wird zu Beginn jedes Quartals überprüft.

  • DMP (Date de Mise en Production) : Datum, an dem das Modell produktiv verfügbar wird.
  • DSP (Date de Fin de Support) : Voraussichtliches Datum, ab dem das Modell nicht mehr gewartet wird. Vor einer tatsächlichen Entfernung 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 Produktionsaufnahme
  • DSP: Geplantes Löschen-Datum
  • LTS: Long Term Support. LTS-Modelle profitieren von garantierter Stabilität und erweitertem Support, ideal für kritische Anwendungen.
  • Empfohlene Migration: Empfohlenes Modell zur Ersetzung eines auslaufenden Modells.

Um den Lebenszyklusstatus in Echtzeit zu verfolgen, besuchen Sie die Seite: LLMaaS Status - Cycle de vie


Abgekündigte Modelle

Die Welt der LLMs entwickelt sich sehr schnell. Um unseren Kunden den Zugang zu den leistungsstärksten Technologien zu gewährleisten, kündigen wir regelmäßig Modelle ab, die nicht mehr den aktuellen Standards entsprechen oder nicht mehr verwendet werden. Die unten 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.

ModellPhaseAbkündigungsdatum
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 die LLMaaS-API optimal zu nutzen, ist es unerlässlich, Strategien zur Optimierung von Kosten, Leistung und Sicherheit zu verfolgen.

Kostenoptimierung

Ein effektives Kostenmanagement basiert auf einer intelligenten Nutzung von Tokens und Modellen.

  1. Modellauswahl : Verwenden Sie kein überdimensioniertes 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 Anforderungen an, um ein optimales Gleichgewicht zu erzielen.

    Zum Beispiel für die Verarbeitung einer Million Tokens:

    • Gemma 3 1B verbraucht 0.15 kWh.
    • Llama 3.3 70B verbraucht 11.75 kWh, was 78-mal mehr entspricht.
    # Für eine Sentiment-Klassifikation ist ein kompaktes Modell ausreichend und kostengünstig.
    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 übergeben und verbraucht Eingabe-Tokens. Bei langen Konversationen sollten Sie Zusammenfassungs- oder Sliding-Window-Strategien in Betracht ziehen, um nur die relevanten Informationen zu behalten.

    # 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 eine angemessene Grenze basierend auf Ihren Erwartungen fest.

    # Um eine Zusammenfassung von maximal 100 Wörtern bitten.
    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
    )

Leistung

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 großes 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 und vermittelt so den Eindruck einer sofortigen Reaktionsfähigkeit, 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 UI an
    print(chunk.choices[0].delta.content, end="", flush=True)

Sicherheit

Die Sicherheit Ihrer Anwendung ist von entscheidender Bedeutung, insbesondere wenn Sie Benutzereingaben verarbeiten.

  1. Validierung und Bereinigung der Eingaben (Sanitization) : Vertrauen Sie niemals Benutzereingaben. Bevor Sie sie an die API senden, bereinigen Sie sie, um potenziell schädlichen Code oder "Prompt-Injection"-Anweisungen zu entfernen. Begrenzen Sie auch deren Größe, um Missbrauch zu vermeiden.

    def sanitize_input(user_input: str) -> str:
    # Einfaches Beispiel: Code-Demarkatoren entfernen und Länge begrenzen.
    # Für eine erweiterte Sanitization 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 : Schließen Sie Ihre API-Aufrufe immer in try...except-Blöcke ein, um Netzwerkfehler, API-Fehler (ex: 429 Rate Limit, 500 Internal Server Error) zu behandeln und eine eingeschränkte, aber funktionale Benutzererfahrung zu bieten.

    from openai import APIError, APITimeoutError

    try:
    response = client.chat.completions.create(...)
    except APITimeoutError:
    # Fall behandeln, in dem die Anfrage zu lange dauert
    return "Le service prend plus de temps que prévu, veuillez réessayer."
    except APIError as e:
    # API-spezifische Fehler behandeln
    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:
    # Alle anderen Fehler (Netzwerk usw.) behandeln
    logger.error(f"Une erreur inattendue est survenue: {e}")
    return "Désolé, une erreur inattendue est survenue."