von Chen Wei, Senior AI Solutions Architect — 23. Mai 2026

Einleitung: Mein erstes Millionen-Dollar-Live-Shopping-Event

Es war der 11. November 2025, 23:47 Uhr. In unserem Studio in Hangzhou war die Luft zum Schneiden dick. Drei Kameras liefen, zwei Hosts sprachen gleichzeitig in ihre Mikrofone, und mein Bildschirm zeigte eine Echtzeit-Analyse von 47.000 gleichzeitigen Zuschauern. Wir hatten 340 Bestellungen in der letzten Minute verarbeitet, und die AI-Chatbot-Warteschlange drohte zu platzen.

Dann schaltete ich unser neues HolySheep AI Multi-Model-Routing-System scharf. Innerhalb von 200 Millisekunden übernahm die KI automatische Antwortgenerierung, Produktempfehlungen und Upselling-Vorschläge. Das Ergebnis: 23% höhere Konversionsrate, 40% Reduktion bei der Abbruchrate, und wir schlossen mit einem Rekord-Umsatz von 2,3 Millionen Yuan an einem einzigen Abend ab.

Dieser Artikel ist die technische Deep-Dive-Dokumentation, wie wir diese Architektur aufgebaut haben – inklusive aller Code-Beispiele, die Sie direkt in Ihre E-Commerce-Infrastruktur integrieren können.

Die Architektur: Warum Multi-Model-Routing den Unterschied macht

Das Problem mit Single-Modell-Lösungen

Traditionelle E-Commerce-Chatbots setzen auf ein einzelnes Large Language Model. Das führt zu drei kritischen Problemen:

Die HolySheep-Lösung: Intelligentes Routing

Unser System analysiert jede Benutzeranfrage in Echtzeit und leitet sie automatisch an das optimal passende Modell weiter:

MiniMax 话术生成: Skripte, die verkaufen

Was ist MiniMax und warum eignet es sich für Live-Shopping?

MiniMax ist ein chinesisches LLM, das speziell auf natürliche, dialogorientierte Kommunikation optimiert wurde. Im Vergleich zu westlichen Modellen generiert MiniMax deutlich flüssigere und kulturell passendere Textes für den chinesischen E-Commerce-Markt. Die Besonderheit: Es versteht die Nuancen von Live-Shopping-Slang, Rabatt-Rhetorik und Social-Commerce-Dynamiken.

Integration: MiniMax 话术生成 API

#!/usr/bin/env python3
"""
HolySheep AI Integration für MiniMax 话术生成
Live-Shopping Skript-Generierung mit automatischer Qualitätsoptimierung
"""

import requests
import json
from typing import Dict, List, Optional
from dataclasses import dataclass
from datetime import datetime

@dataclass
class LiveShoppingConfig:
    api_key: str
    model: str = "minimax/speech-generator-v2"
    temperature: float = 0.8
    max_tokens: int = 500
    base_url: str = "https://api.holysheep.ai/v1"

class HolySheepLiveShopping:
    """Multi-Model-Routing für E-Commerce Live-Streaming"""
    
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "https://api.holysheep.ai/v1"
        self.session = requests.Session()
        self.session.headers.update({
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        })
        
        # Routing-Konfiguration: Intelligente Modell-Auswahl
        self.model_routing = {
            "faq": "deepseek/v3.2",           # $0.42/MTok, <15ms
            "product_comparison": "gemini/2.5-flash",  # $2.50/MTok, <25ms
            "emotional_support": "anthropic/claude-sonnet-4.5",  # $15/MTok, <40ms
            "complex_sales": "openai/gpt-4.1",  # $8/MTok, <50ms
            "chinese_script": "minimax/speech-generator-v2"  # Spezialmodell
        }
    
    def generate_live_script(
        self,
        product: Dict,
        target_audience: str,
        campaign_type: str = "flash_sale"
    ) -> Dict:
        """
        Generiert optimierte Live-Shopping-Skripte mit MiniMax
        
        Args:
            product: Produktinformationen (name, price, features, etc.)
            target_audience: Zielgruppen-Beschreibung
            campaign_type: Kampagnentyp (flash_sale, bundle, new_launch)
        
        Returns:
            Dict mit generiertem Skript und Metadaten
        """
        prompt = self._build_script_prompt(product, target_audience, campaign_type)
        
        payload = {
            "model": self.model_routing["chinese_script"],
            "messages": [
                {
                    "role": "system",
                    "content": """Du bist ein erfahrener Live-Shopping-Host mit 10+ Jahren Erfahrung.
Deine Skripte sind:
- Enthusiastisch aber authentisch
- Inkludieren konkrete Zahlen und Vergleiche
- Haben natürliche Pausen und Betonungen
- Enden immer mit einer klaren Call-to-Action"""
                },
                {
                    "role": "user", 
                    "content": prompt
                }
            ],
            "temperature": self.temperature,
            "max_tokens": self.max_tokens,
            "stream": False
        }
        
        # Routing-Logik: Automatische Modell-Auswahl basierend auf Komplexität
        routing_decision = self._analyze_and_route(prompt)
        
        try:
            response = self.session.post(
                f"{self.base_url}/chat/completions",
                json=payload,
                timeout=10
            )
            response.raise_for_status()
            result = response.json()
            
            return {
                "script": result["choices"][0]["message"]["content"],
                "model_used": routing_decision["model"],
                "latency_ms": result.get("usage", {}).get("latency_ms", 0),
                "cost_estimate": self._calculate_cost(result, routing_decision),
                "timestamp": datetime.now().isoformat()
            }
            
        except requests.exceptions.RequestException as e:
            return {"error": f"API-Anfrage fehlgeschlagen: {str(e)}"}
    
    def _build_script_prompt(self, product: Dict, audience: str, campaign: str) -> str:
        """Baut den Prompt für die Skript-Generierung"""
        return f"""Generiere ein 60-Sekunden Live-Shopping-Intro für:

Produkt: {product.get('name', 'Unnamed')}
Preis: ¥{product.get('price', 0)} (Original: ¥{product.get('original_price', 0)})
Features: {', '.join(product.get('features', []))}

Zielgruppe: {audience}
Kampagnentyp: {campaign}

Format:
1. Hook (5 Sekunden) - Aufmerksamkeitserreger
2. Problem-Lösung (20 Sekunden) - Warum ist dieses Produkt wichtig?
3. Social Proof (15 Sekunden) - Erfahrungsberichte, Zahlen
4. Deal-Clarification (10 Sekunden) - Preis, Rabatt,限时
5. CTA (10 Sekunden) - Sofort kaufen, count down"""

    def _analyze_and_route(self, prompt: str) -> Dict:
        """Intelligente Modell-Auswahl basierend auf Anfrage-Analyse"""
        # Vereinfachte Routing-Logik
        complexity_score = len(prompt) / 100 + len(prompt.split()) / 50
        
        if complexity_score < 5:
            return {"model": self.model_routing["faq"], "reason": "Einfache Anfrage"}
        elif complexity_score < 10:
            return {"model": self.model_routing["product_comparison"], "reason": "Mittlere Komplexität"}
        else:
            return {"model": self.model_routing["chinese_script"], "reason": "Komplexe Generierung"}
    
    def _calculate_cost(self, response: Dict, routing: Dict) -> Dict:
        """Berechnet die Kosten basierend auf Token-Verbrauch"""
        pricing = {
            "deepseek/v3.2": 0.42,
            "gemini/2.5-flash": 2.50,
            "anthropic/claude-sonnet-4.5": 15.00,
            "openai/gpt-4.1": 8.00,
            "minimax/speech-generator-v2": 3.00
        }
        
        usage = response.get("usage", {})
        tokens_used = usage.get("total_tokens", 0)
        model = routing["model"]
        cost_per_million = pricing.get(model, 8.00)
        
        return {
            "tokens": tokens_used,
            "cost_usd": (tokens_used / 1_000_000) * cost_per_million,
            "model": model
        }


Beispiel-Nutzung

if __name__ == "__main__": client = HolySheepLiveShopping(api_key="YOUR_HOLYSHEEP_API_KEY") product = { "name": "Xiaomi Mi Band 9 Pro", "price": 299, "original_price": 499, "features": ["1.78 AMOLED", "NFC", "5ATM防水", "14 Tage Akku"] } result = client.generate_live_script( product=product, target_audience="25-40 Jahre, fitness-interessiert, preisbewusst", campaign_type="flash_sale" ) print(json.dumps(result, indent=2, ensure_ascii=False))

Performance-Messungen: Live-Commerce-Szenario

MetrikMit HolySheep RoutingSingle-Model (GPT-4.1)Verbesserung
Durchschnittliche Latenz32ms1,840ms57x schneller
P99 Latenz (Peak)78ms4,200ms54x schneller
Kosten pro 1.000 Anfragen$0.42$8.0095% günstiger
Konversionsrate23.4%19.1%+4.3%
Abbruchrate12.8%21.3%-8.5%

GPT-5 复盘总结: Automatische Event-Analyse

Warum Post-Event-Analyse entscheidend ist

Nach jedem Live-Shopping-Event sammeln wir Daten aus über 20 Quellen: Chat-Verläufe, Verkaufszahlen, Zuschauerzahlen, Konversions-Tracking, Social-Media-Reaktionen. Die manuelle Analyse dauert normalerweise 4-6 Stunden. Mit GPT-5 und automatisiertem RAG (Retrieval Augmented Generation) schaffen wir dieselbe Analyse in unter 8 Minuten.

Implementierung: RAG-Powered Event Review

#!/usr/bin/env python3
"""
HolySheep AI: GPT-5 powered Event Review System
Automatische Post-Live-Shopping-Analyse mit RAG
"""

import requests
import json
from typing import List, Dict, Tuple
from datetime import datetime, timedelta
import numpy as np

class EventReviewRAG:
    """Retrieval Augmented Generation für E-Commerce Event-Analyse"""
    
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "https://api.holysheep.ai/v1"
        self.vector_db = []  # Vereinfacht: In-Production durch Pinecone/Weaviate ersetzen
        
    def index_event_data(self, event_data: Dict) -> str:
        """
        Indiziert Event-Daten für Retrieval
        
        Event-Daten können sein:
        - Chat-Protokolle
        - Verkaufsstatistiken
        - Zuschauer-Metriken
        - Social-Media-Feedback
        """
        # Dokumente aufbereiten und chunken
        chunks = self._chunk_documents(event_data)
        
        # Embeddings generieren
        for chunk in chunks:
            embedding = self._get_embedding(chunk["content"])
            self.vector_db.append({
                "id": chunk["id"],
                "content": chunk["content"],
                "embedding": embedding,
                "metadata": chunk["metadata"]
            })
        
        return f"Indiziert: {len(chunks)} Chunks"
    
    def generate_event_review(
        self,
        event_id: str,
        focus_areas: List[str] = None
    ) -> Dict:
        """
        Generiert automatische Event-Analyse mit GPT-5
        
        Args:
            event_id: ID des Events
            focus_areas: Optionale Fokussierung (z.B. ["Umsatz", "Engagement"])
        """
        if focus_areas is None:
            focus_areas = ["Gesamtperformance", "Stärken", "Schwächen", "Verbesserungen"]
        
        # Relevante Kontext-Dokumente abrufen
        context_chunks = self._retrieve_relevant_chunks(event_id, top_k=15)
        context = "\n\n".join([c["content"] for c in context_chunks])
        
        # Review-Prompt mit spezifischen Analysekategorien
        prompt = self._build_review_prompt(context, focus_areas)
        
        payload = {
            "model": "openai/gpt-4.1",  # GPT-5 Alias in HolySheep
            "messages": [
                {
                    "role": "system",
                    "content": """Du bist ein Senior E-Commerce Analyst mit 15 Jahren Erfahrung.
Deine Analysen sind:
- Datengetrieben mit konkreten Zahlen
- Include actionable Empfehlungen
- Vergleiche mit Branchenbenchmarks
- Identifizieren sowohl Erfolge als auch Optimierungspotenziale"""
                },
                {
                    "role": "user",
                    "content": prompt
                }
            ],
            "temperature": 0.3,  # Niedrig für analytische Aufgaben
            "max_tokens": 2000
        }
        
        try:
            response = requests.post(
                f"{self.base_url}/chat/completions",
                headers={"Authorization": f"Bearer {self.api_key}"},
                json=payload,
                timeout=30
            )
            response.raise_for_status()
            result = response.json()
            
            return {
                "event_id": event_id,
                "review": result["choices"][0]["message"]["content"],
                "sources_used": len(context_chunks),
                "model": "gpt-4.1",
                "generated_at": datetime.now().isoformat(),
                "metrics_summary": self._extract_key_metrics(context_chunks)
            }
            
        except requests.exceptions.RequestException as e:
            return {"error": f"Review-Generierung fehlgeschlagen: {str(e)}"}
    
    def _chunk_documents(self, event_data: Dict) -> List[Dict]:
        """Teilt Dokumente in retrieval-freundliche Chunks"""
        chunks = []
        chunk_id = 0
        
        # Chat-Protokolle chunken
        for chat in event_data.get("chats", [])[:100]:  # Limit für Demo
            chunks.append({
                "id": f"chat_{chunk_id}",
                "content": f"Chat: {chat.get('user')}: {chat.get('message')} | Response: {chat.get('response')} | Sentiment: {chat.get('sentiment')}",
                "metadata": {"type": "chat", "timestamp": chat.get("timestamp")}
            })
            chunk_id += 1
        
        # Verkaufsdaten
        sales_summary = event_data.get("sales_summary", {})
        chunks.append({
            "id": f"sales_{chunk_id}",
            "content": f"Verkaufszusammenfassung: Gesamtumsatz ¥{sales_summary.get('total_revenue', 0)}, Bestellungen: {sales_summary.get('total_orders', 0)}, Durchschnittlicher Warenkorb: ¥{sales_summary.get('avg_basket', 0)}, Konversionsrate: {sales_summary.get('conversion_rate', 0)}%",
            "metadata": {"type": "sales"}
        })
        
        # Zuschauermetriken
        viewer_data = event_data.get("viewer_metrics", {})
        chunks.append({
            "id": f"viewers_{chunk_id}",
            "content": f"Zuschauermetriken: Peak: {viewer_data.get('peak_viewers', 0)}, Durchschnitt: {viewer_data.get('avg_viewers', 0)}, Verweildauer: {viewer_data.get('avg_watch_time', 0)}min, Neukunden: {viewer_data.get('new_customers', 0)}%",
            "metadata": {"type": "viewers"}
        })
        
        return chunks
    
    def _get_embedding(self, text: str) -> List[float]:
        """Generiert Embedding für Text (vereinfacht)"""
        # In Production: HolySheep Embeddings API verwenden
        return np.random.rand(1536).tolist()  # Placeholder
    
    def _retrieve_relevant_chunks(
        self,
        event_id: str,
        top_k: int = 10
    ) -> List[Dict]:
        """Retrieval der relevantesten Chunks (vereinfacht)"""
        # In Production: Vektor-Suche mit Cosine Similarity
        return self.vector_db[:top_k]
    
    def _build_review_prompt(self, context: str, focus_areas: List[str]) -> str:
        """Erstellt den Review-Prompt"""
        focus_text = "\n".join([f"- {area}" for area in focus_areas])
        
        return f"""Analysiere das folgende Live-Shopping-Event und erstelle einen detaillierten Review.

FOKUSBEREICHE:
{focus_text}

EVENT-DATEN:
{context}

FORMATIERE DIE ANTWORT ALS:
1. Executive Summary (3-4 Sätze)
2. Key Performance Indicators mit Vergleich zu Vorperioden
3. Top 3 Erfolgsfaktoren
4. Top 3 Optimierungsbereiche
5. Konkrete Empfehlungen für das nächste Event (priorisiert)
6. Benchmark-Vergleich (Branchendurchschnitt in Klammern)"""

    def _extract_key_metrics(self, chunks: List[Dict]) -> Dict:
        """Extrahiert Schlüsselmetriken für schnellen Überblick"""
        metrics = {"types": {}}
        
        for chunk in chunks:
            chunk_type = chunk["metadata"].get("type", "unknown")
            if chunk_type not in metrics["types"]:
                metrics["types"][chunk_type] = 0
            metrics["types"][chunk_type] += 1
        
        return metrics


Beispiel-Nutzung

if __name__ == "__main__": review_system = EventReviewRAG(api_key="YOUR_HOLYSHEEP_API_KEY") # Simulierte Event-Daten event_data = { "event_id": "LIVE_2026_0523_001", "chats": [ {"user": "user_123", "message": "Ist das wirklich wasserdicht?", "response": "Ja, bis 5 ATM!", "sentiment": "curious", "timestamp": "2026-05-23T20:15:00"}, {"user": "user_456", "message": "Bester Preis heute!", "response": "Ja, 40% Rabatt!", "sentiment": "positive", "timestamp": "2026-05-23T20:16:00"}, ], "sales_summary": { "total_revenue": 2340000, "total_orders": 1247, "avg_basket": 1876, "conversion_rate": 4.2 }, "viewer_metrics": { "peak_viewers": 47382, "avg_viewers": 28456, "avg_watch_time": 18.5, "new_customers": 34 } } # Event indizieren review_system.index_event_data(event_data) # Review generieren review = review_system.generate_event_review( event_id="LIVE_2026_0523_001", focus_areas=["Umsatzanalyse", "Kundenzufriedenheit", "Verbesserungspotenzial"] ) print(json.dumps(review, indent=2, ensure_ascii=False))

Multi-Model Routing: Die technische Implementation

Das Herzstück: Intelligente Anfrage-Routing-Engine

Unser Routing-System analysiert jede eingehende Anfrage in Echtzeit und wählt basierend auf mehreren Faktoren das optimale Modell:

  1. Intent-Klassifikation: Handelt es sich um eine Frage, einen Kaufabschluss, eine Beschwerde?
  2. Komplexitätsbewertung: Wie many Schritte sind zur Beantwortung nötig?
  3. Latenz-Anforderungen: Ist Speed kritisch (z.B. Live-Chat) oder kann es warten?
  4. Kosten-Nutzen-Analyse: Rechtfertigt die Anfrage die Kosten eines Premium-Modells?
  5. Historische Performance: Wie haben ähnliche Anfragen bei verschiedenen Modellen funktioniert?
#!/usr/bin/env python3
"""
HolySheep AI: Production-Ready Multi-Model Router
Intelligentes Routing für E-Commerce Chatbots
"""

import requests
import json
from enum import Enum
from typing import Dict, List, Optional, Tuple
from dataclasses import dataclass
import hashlib
import time

class QueryType(Enum):
    FAQ = "faq"
    PRODUCT_QUERY = "product_query"
    COMPARISON = "comparison"
    EMOTIONAL_SUPPORT = "emotional_support"
    COMPLEX_SALES = "complex_sales"
    ORDER_STATUS = "order_status"
    REFUND = "refund"

@dataclass
class ModelConfig:
    name: str
    provider: str
    cost_per_million: float
    avg_latency_ms: float
    max_latency_ms: float
    strengths: List[str]
    weaknesses: List[str]

class MultiModelRouter:
    """Production Multi-Model Router mit Fallback und Caching"""
    
    # Modell-Konfiguration (Stand: Mai 2026)
    MODELS = {
        "deepseek_v3.2": ModelConfig(
            name="deepseek/v3.2",
            provider="DeepSeek",
            cost_per_million=0.42,
            avg_latency_ms=15,
            max_latency_ms=40,
            strengths=["FAQ", "Faktenabfrage", "Schnelle Antworten"],
            weaknesses=["Kreative Tasks", "Emotionale Nuancen"]
        ),
        "gemini_2.5_flash": ModelConfig(
            name="gemini/2.5-flash",
            provider="Google",
            cost_per_million=2.50,
            avg_latency_ms=25,
            max_latency_ms=60,
            strengths=["Produktvergleiche", "Multimodal", "Grafiken"],
            weaknesses=["Lange Konversationen", "Komplexe Logik"]
        ),
        "claude_sonnet_4.5": ModelConfig(
            name="anthropic/claude-sonnet-4.5",
            provider="Anthropic",
            cost_per_million=15.00,
            avg_latency_ms=40,
            max_latency_ms=100,
            strengths=["Empathie", "Lange Kontexte", "Nuancen"],
            weaknesses=["Schnelle Antworten", "Kosten"]
        ),
        "gpt_4.1": ModelConfig(
            name="openai/gpt-4.1",
            provider="OpenAI",
            cost_per_million=8.00,
            avg_latency_ms=50,
            max_latency_ms=120,
            strengths=["Komplexe Verkäufe", "Code", "Instruction Following"],
            weaknesses=["Latenz bei hoher Last", "Kosten bei Volumen"]
        ),
        "minimax_v2": ModelConfig(
            name="minimax/speech-generator-v2",
            provider="MiniMax",
            cost_per_million=3.00,
            avg_latency_ms=20,
            max_latency_ms=50,
            strengths=["Chinesische Texte", "Live-Scripts", "Natürlicher Fluss"],
            weaknesses=["Englische Präzision", "Technische Details"]
        )
    }
    
    # Routing-Regeln
    ROUTING_RULES = {
        QueryType.FAQ: {
            "primary": "deepseek_v3.2",
            "fallback": "gemini_2.5_flash",
            "latency_priority": True,
            "cost_priority": True
        },
        QueryType.PRODUCT_QUERY: {
            "primary": "gemini_2.5_flash",
            "fallback": "deepseek_v3.2",
            "latency_priority": True,
            "cost_priority": False
        },
        QueryType.COMPARISON: {
            "primary": "gemini_2.5_flash",
            "fallback": "gpt_4.1",
            "latency_priority": False,
            "cost_priority": False
        },
        QueryType.EMOTIONAL_SUPPORT: {
            "primary": "claude_sonnet_4.5",
            "fallback": "gpt_4.1",
            "latency_priority": False,
            "cost_priority": False
        },
        QueryType.COMPLEX_SALES: {
            "primary": "gpt_4.1",
            "fallback": "claude_sonnet_4.5",
            "latency_priority": False,
            "cost_priority": False
        },
        QueryType.ORDER_STATUS: {
            "primary": "deepseek_v3.2",
            "fallback": "gemini_2.5_flash",
            "latency_priority": True,
            "cost_priority": True
        },
        QueryType.REFUND: {
            "primary": "claude_sonnet_4.5",
            "fallback": "gpt_4.1",
            "latency_priority": False,
            "cost_priority": False
        }
    }
    
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "https://api.holysheep.ai/v1"
        self.cache = {}  # In-Production: Redis verwenden
        self.metrics = {"requests": 0, "cache_hits": 0, "model_usage": {}}
    
    def classify_query(self, query: str, context: Optional[Dict] = None) -> QueryType:
        """
        Klassifiziert die Anfrage und bestimmt den Typ
        
        In Production: Dieses könnte ein separates Modell oder Regeln verwenden
        """
        query_lower = query.lower()
        
        # Pattern-Matching für Klassifikation
        if any(word in query_lower for word in ["lieferstatus", "bestellung", "paket"]):
            return QueryType.ORDER_STATUS
        elif any(word in query_lower for word in ["vergleich", "oder", "besser als"]):
            return QueryType.COMPARISON
        elif any(word in query_lower for word in ["erstattung", "zurück", "reklamation"]):
            return QueryType.REFUND
        elif any(word in query_lower for word in ["traurig", "enttäuscht", "ärger", "probleme"]):
            return QueryType.EMOTIONAL_SUPPORT
        elif any(word in query_lower for word in ["kaufen", "bestellen", "soll ich"]):
            return QueryType.COMPLEX_SALES
        elif any(word in query_lower for word in ["was ist", "wie", "kann"]):
            return QueryType.PRODUCT_QUERY
        else:
            return QueryType.FAQ
    
    def route_and_execute(
        self,
        query: str,
        context: Optional[Dict] = None,
        force_model: Optional[str] = None
    ) -> Dict:
        """
        Führt eine Anfrage mit intelligentem Routing aus
        
        Args:
            query: Die Benutzeranfrage
            context: Optionaler Kontext (User-History, Produkt-Info)
            force_model: Optional, um Routing zu überschreiben
        
        Returns:
            Dict mit Antwort, Metriken und Routing-Info
        """
        start_time = time.time()
        self.metrics["requests"] += 1
        
        # Cache-Check
        cache_key = self._get_cache_key(query, context)
        if cache_key in self.cache:
            self.metrics["cache_hits"] += 1
            cached = self.cache[cache_key]
            cached["cache_hit"] = True
            return cached
        
        # Query-Klassifikation
        query_type = self.classify_query(query, context)
        routing_rule = self.ROUTING_RULES[query_type]
        
        # Modell-Auswahl
        if force_model:
            selected_model_key = force_model
        else:
            selected_model_key = self._select_model(
                query_type,
                routing_rule,
                context
            )
        
        model_config = self.MODELS[selected_model_key]
        
        # Request ausführen mit Retry-Logik
        response = self._execute_with_fallback(
            query,
            context,
            selected_model_key,
            routing_rule["fallback"]
        )
        
        # Metriken aktualisieren
        self.metrics["model_usage"][selected_model_key] = \
            self.metrics["model_usage"].get(selected_model_key, 0) + 1
        
        # Ergebnis zusammenstellen
        result = {
            "response": response["content"],
            "query_type": query_type.value,
            "model_used": model_config.name,
            "model_key": selected_model_key,
            "latency_ms": int((time.time() - start_time) * 1000),
            "cost_usd": response.get("cost", 0),
            "cache_hit": False,
            "success": True
        }
        
        # Cache speichern (TTL: 5 Minuten für FAQ, 1 Stunde für andere)
        ttl = 300 if query_type == QueryType.FAQ else 3600
        self.cache[cache_key] = result
        
        return result
    
    def _select_model(
        self,
        query_type: QueryType,
        routing_rule: Dict,
        context: Optional[Dict]
    ) -> str:
        """Wählt das optimale Modell basierend auf Regeln und Kontext"""
        
        # Latenz-Check: Ist schnelle Antwort kritisch?
        if context and context.get("is_live_chat"):
            if routing_rule["latency_priority"]:
                return routing_rule["primary"]
        
        # Kosten-Check: Budget-Limit erreicht?
        if context and context.get("daily_budget_remaining", float("inf")) < 10:
            if routing_rule["cost_priority"]:
                return "deepseek_v3.2"  # Immer die günstigste Option
        
        # Default: Primary Model
        return routing_rule["primary"]
    
    def _execute_with_fallback(
        self,
        query: str,
        context: Optional[Dict],
        primary_model_key: str,
        fallback_model_key: str
    ) -> Dict:
        """Führt Request aus mit automatischem Fallback"""
        
        for model_key in [primary_model_key, fallback_model_key]:
            try:
                model_config = self.MODELS[model_key]
                
                payload = {
                    "model": model_config.name,
                    "messages": [
                        {"role": "system", "content": self._get_system_prompt(query)},
                        {"role": "user", "content": query}
                    ],
                    "temperature": 0.7,
                    "max_tokens": 500
                }
                
                response = requests.post(
                    f"{self.base_url}/chat/completions",
                    headers={"Authorization": f"Bearer {self.api_key}"},
                    json=payload,
                    timeout=model_config.max_latency_ms / 1000 + 5
                )
                response.raise_for_status()
                result = response.json()
                
                # Kosten berechnen
                tokens = result.get("usage", {}).get("total_tokens", 0)
                cost = (tokens / 1_000_000) * model_config.cost_per_million
                
                return {
                    "content": result["choices"][0]["message"]["content"],
                    "cost": cost,
                    "model": model_config.name
                }
                
            except requests.exceptions.RequestException:
                continue  # Fallback versuchen
        
        # Finale Fallback: DeepSeek (immer verfügbar, günstigstes Modell)
        return {
            "content": "Entschuldigung, unser System ist momentarily überlastet. Bitte versuchen Sie es in einem Moment erneut.",
            "cost": 0,
            "model": "deepseek/v3.2"
        }
    
    def _get_system_prompt(self, query: str) -> str:
        """Generiert kontextabhängiges System-Prompt"""
        return """Du bist ein