Stellen Sie sich vor: Es ist Freitagnachmittag, Ihr neues KI-gestütztes SaaS-Produkt steht kurz vor dem Launch. Plötzlich erhalten Sie Hunderte von Fehlermeldungen – ConnectionError: timeout bei der Bildgenerierung und 401 Unauthorized bei der Text-API. Die Kosten explodieren, und Ihr Budget ist binnen weniger Stunden aufgebraucht. Genau dieses Szenario erlebte ich vor achtzehn Monaten bei einem meiner Consulting-Projekte, als wir die API-Kosten nicht korrekt einkalkuliert hatten.

In diesem umfassenden Leitfaden сравню ich die Kostenstrukturen von Text-Generation-APIs und Image-Generation-APIs, analysiere die versteckten Kostenfallen und zeige Ihnen konkrete Strategien zur Optimierung. Dabei nutze ich meine Praxiserfahrung aus über 50+ KI-Integrationsprojekten, um Ihnen praxisnahe Lösungen zu präsentieren.

Warum Kostenstruktur-Vergleich entscheidend ist

Die Wahl zwischen Text- und Bildgenerierungs-APIs ist nicht nur eine technische Entscheidung – sie hat massive finanzielle Auswirkungen auf Ihr Projekt. Während Text-APIs typischerweise nach Token abrechnen, funktionieren Bild-APIs meist nach Aufruf oder Auflösung. Diese fundamentalen Unterschiede führen zu völlig unterschiedlichen Kostenmustern, die Sie von Anfang an verstehen müssen.

In meiner täglichen Arbeit sehe ich immer wieder, dass Entwicklerteams die API-Kosten unterschätzen. Ein typisches Missverständnis: Viele denken, dass Bildgenerierung teurer ist, weil sie visuell komplexer wirkt. Doch bei hoher Textfrequenz kann eine Text-API schnell die teurere Option werden – besonders wenn Sie GPT-4-Level-Modelle mit Milliarden von Token nutzen.

Text-Generation-API Kostenstruktur detailliert

Token-basierte Abrechnung verstehen

Text-APIs berechnen die Kosten basierend auf der Anzahl der verarbeiteten Tokens. Ein Token entspricht roughly 4 Zeichen Text oder etwa 0,75 Wörtern im Englischen. Bei deutschsprachigen Inhalten kann dies variieren, da deutsche Wörter tendenziell länger sind. Die Abrechnung erfolgt in der Regel pro 1.000 Tokens (Kilo-Token, KT).

Die meisten Anbieter verwenden ein duales Preismodell: Eingabe-Tokens (Prompt) und Ausgabe-Tokens (Completion) haben unterschiedliche Preise. Bei HolySheep AI beispielsweise kostet DeepSeek V3.2 nur $0.42 pro Million Token, während GPT-4.1 bei $8 pro Million Token liegt. Diese enormen Preisunterschiede machen die Modellwahl zu einer kritischen Kostenentscheidung.

Versteckte Kosten bei Text-APIs

Was viele Entwickler übersehen: Die sichtbaren Token-Kosten sind nur die Spitze des Eisbergs. Latenzkosten entstehen durch Wartezeiten, die Ihre Anwendung verlangsamen und Benutzer frustrieren. API-Rate-Limits können zusätzliche Infrastrukturkosten verursachen, wenn Sie mehr Server benötigen, um die Limits auszugleichen. Außerdem fallen bei einigen Anbietern Kosten für Metadaten und System-Prompts an, die nicht immer transparent kommuniziert werden.

Preisvergleich aktueller Modelle 2026

Modell Anbieter Preis pro Mio. Token Latenz (P50) Ersparnis vs. OpenAI
GPT-4.1 OpenAI $8.00 ~800ms Basis
Claude Sonnet 4.5 Anthropic $15.00 ~1.200ms +87% teurer
Gemini 2.5 Flash Google $2.50 ~150ms 68% Ersparnis
DeepSeek V3.2 HolySheep AI $0.42 <50ms 95% Ersparnis

Wie die Tabelle zeigt, bietet HolySheep AI mit DeepSeek V3.2 eine außergewöhnliche Kosteneffizienz von 95% Ersparnis gegenüber GPT-4.1 bei OpenAI. Combined with sub-50ms Latenz und dem WeChat/Alipay-Zahlungssystem ist dies besonders für chinesische und asiatische Märkte interessant.

图像生成-API成本结构详解

Bild-API Preismodelle im Überblick

Bildgenerierungs-APIs folgen einem völlig anderen Abrechnungsmodell. Hier zahlen Sie typischerweise pro Bild oder pro Bildauflösung. Die Kosten steigen exponentiell mit der Auflösung: Ein 512x512-Bild kostet oft nur einen Bruchteil eines 2048x2048-Bildes. Diese Skalierung erfordert sorgfältige Planung, besonders bei Anwendungen, die viele Bilder in variierenden Auflösungen generieren.

Die bekanntesten Bildgenerierungs-APIs sind DALL-E 3 (OpenAI), Midjourney API und Stable Diffusion-basierte Lösungen. Die Preise variieren stark: von $0.04 pro Bild bei einfachen Modellen bis zu $0.12 pro hochauflösendem Bild bei Premium-Modellen. Bei hohem Volumen summieren sich diese Kosten schnell.

Kostenfaktoren bei der Bildgenerierung

Die Bildgenerierung wird von mehreren Faktoren beeinflusst, die Ihre Kosten direkt beeinflussen. Die Auflösung ist der offensichtlichste Faktor – höhere Auflösungen bedeuten mehr Rechenleistung und damit höhere Kosten. Die Komplexität des Prompts spielt ebenfalls eine Rolle: Einfache Texte-zu-Bild-Anfragen sind günstiger als detaillierte Kunstwerke mit mehreren Objekten und Stilen. Die Generierungsgeschwindigkeit kann gegen Aufpreis beschleunigt werden, was bei zeitkritischen Anwendungen relevant ist.

Ein oft übersehener Faktor sind die Retry-Kosten. Wenn ein generiertes Bild nicht den Erwartungen entspricht und Sie erneut generieren müssen, verdoppeln oder verdreifachen sich Ihre effektiven Kosten pro akzeptablem Bild. In meinen Projekten habe ich eine durchschnittliche Retry-Rate von 15-25% beobachtet, was die effektiven Kosten erheblich steigert.

Vergleich: Text vs. Bild API Kosten

Kostenfaktor Text-API Bild-API Gewinner
Grundpreis pro Einheit $0.000042 (DeepSeek V3.2) $0.04 - $0.12 pro Bild Text (bei kleinen Prompts)
Skalierung bei Volumen Linear mit Token Linear mit Bildern Unentschieden
Latenzkosten <50ms (HolySheep) 3-30 Sekunden Text
Retry-Rate ~5% ~20% Text
Stückkosten (Massenproduktion) $0.42 pro Mio. Token $0.05-$0.15 pro Bild Text (文字lastig)

Praxisbeispiele: Kostenrechnung für reale Szenarien

Szenario 1: Content-Automatisierung für E-Commerce

Angenommen, Sie betreiben einen Online-Shop mit 10.000 Produkten und benötigen für jedes Produkt eine Produktbeschreibung (ca. 500 Token) und ein Produktbild. Für die Beschreibungen nutzen Sie DeepSeek V3.2 über HolySheep AI, für Bilder verwenden Sie ein mittelpreisiges Bild-API.

Die jährlichen Kosten nur für Text: 10.000 × 500 Token × 12 Monate = 60 Millionen Token = ca. $25 (bei DeepSeek V3.2). Für Bilder: 10.000 × 12 × $0.08 = $9.600. Die Bildkosten sind also 384-mal höher als die Textkosten in diesem Szenario!

Diese Erkenntnis ist game-changing für Ihre Kostenplanung. Wenn Ihr Geschäftsmodell bildlastig ist, sollten Sie erhebliche Budget-Reserven für Bildgenerierung einplanen.

Szenario 2: KI-Chatbot für Kundenservice

Ein Chatbot, der täglich 1.000 Gespräche mit durchschnittlich 20 Ausgaben à 100 Token pro Gespräch bearbeitet. Bei HolySheep AI mit DeepSeek V3.2: 1.000 × 20 × 100 = 2 Millionen Token täglich = $0.84 pro Tag = $306 jährlich. Kein Bild-APIs erforderlich.

Dies zeigt, warum Text-APIs für chatbot-Anwendungen die wirtschaftlichere Wahl sind. Die Kombination aus niedrigen Token-Kosten und minimaler Latenz macht Lösungen wie HolySheep AI ideal für interaktive Anwendungen.

Szenario 3: Marketing-Agentur mit Mix-Anforderungen

Eine Agentur erstellt täglich 50 Blog-Artikel (800 Token Text pro Artikel) und 50 Social-Media-Grafiken (1024x1024). Textkosten: 40.000 Token täglich = $0.017 pro Tag. Bildkosten: 50 × $0.08 = $4 pro Tag. Bildkosten sind 235-mal höher als Textkosten.

Für Agenturen mit solch gemischten Anforderungen empfehle ich eine hybride Strategie: Text-APIs für Content und die Nutzung von Batch-APIs oder kostengünstigeren Bildmodellen für Social-Media-Grafiken.

API-Integration: Code-Beispiele für beide Typen

Text-Generation-API Integration mit HolySheep AI

Die Integration einer Text-API ist straightforward. Hier ist ein vollständiges Python-Beispiel für die HolySheep AI API:

import requests
import json

def generate_text(prompt, model="deepseek-v3.2", max_tokens=500):
    """
    Generiert Text mit HolySheep AI Text-API.
    
    Parameter:
        prompt (str): Eingabetext/Prompt
        model (str): Modellname (deepseek-v3.2, gpt-4.1, etc.)
        max_tokens (int): Maximale Anzahl Ausgabe-Token
    
    Rückgabe:
        dict: Enthält generierten Text und Metadaten
    """
    url = "https://api.holysheep.ai/v1/chat/completions"
    
    headers = {
        "Authorization": "Bearer YOUR_HOLYSHEEP_API_KEY",
        "Content-Type": "application/json"
    }
    
    payload = {
        "model": model,
        "messages": [
            {"role": "system", "content": "Du bist ein hilfreicher Assistent."},
            {"role": "user", "content": prompt}
        ],
        "max_tokens": max_tokens,
        "temperature": 0.7
    }
    
    try:
        response = requests.post(url, headers=headers, json=payload, timeout=30)
        response.raise_for_status()
        
        data = response.json()
        
        return {
            "success": True,
            "text": data["choices"][0]["message"]["content"],
            "usage": data.get("usage", {}),
            "latency_ms": response.elapsed.total_seconds() * 1000
        }
    
    except requests.exceptions.Timeout:
        return {"success": False, "error": "ConnectionError: timeout - Server nicht erreichbar"}
    except requests.exceptions.HTTPError as e:
        if e.response.status_code == 401:
            return {"success": False, "error": "401 Unauthorized - API-Schlüssel ungültig"}
        return {"success": False, "error": f"HTTPError: {e}"}
    except Exception as e:
        return {"success": False, "error": f"Unexpected error: {str(e)}"}

Beispielaufruf

result = generate_text("Erkläre die Vorteile von KI-APIs in 100 Wörtern.") print(f"Generierter Text: {result.get('text', result.get('error'))}") print(f"Latenz: {result.get('latency_ms', 'N/A')}ms") print(f"Token-Nutzung: {result.get('usage', 'N/A')}")

Dieser Code demonstriert nicht nur die Integration, sondern enthält auch vollständige Fehlerbehandlung für die häufigsten Probleme: Timeouts, 401 Unauthorized und unerwartete Fehler.

图像生成-API Integration

Für die Bildgenerierung verwende ich ein ähnliches Muster, adaptiert für die spezifischen Anforderungen von Bild-APIs:

import requests
import base64
import time

def generate_image(prompt, size="1024x1024", quality="standard"):
    """
    Generiert ein Bild mit HolySheep AI Image-API.
    
    Parameter:
        prompt (str): Detaillierte Bildbeschreibung
        size (str): Auflösung (256x256, 512x512, 1024x1024)
        quality (str): Qualitätsstufe (standard, hd)
    
    Rückgabe:
        dict: Enthält Bild-URL oder Base64-Daten
    """
    url = "https://api.holysheep.ai/v1/images/generations"
    
    headers = {
        "Authorization": "Bearer YOUR_HOLYSHEEP_API_KEY",
        "Content-Type": "application/json"
    }
    
    payload = {
        "prompt": prompt,
        "n": 1,
        "size": size,
        "quality": quality,
        "response_format": "url"
    }
    
    max_retries = 3
    retry_count = 0
    
    while retry_count < max_retries:
        try:
            start_time = time.time()
            response = requests.post(url, headers=headers, json=payload, timeout=120)
            
            # Handle rate limiting
            if response.status_code == 429:
                retry_count += 1
                wait_time = 2 ** retry_count
                print(f"Rate limit erreicht. Warte {wait_time} Sekunden...")
                time.sleep(wait_time)
                continue
            
            response.raise_for_status()
            data = response.json()
            
            generation_time = (time.time() - start_time) * 1000
            
            return {
                "success": True,
                "image_url": data["data"][0]["url"],
                "generation_time_ms": generation_time,
                "revised_prompt": data["data"][0].get("revised_prompt", None)
            }
        
        except requests.exceptions.Timeout:
            retry_count += 1
            if retry_count >= max_retries:
                return {"success": False, "error": "ConnectionError: timeout nach 3 Versuchen"}
        
        except requests.exceptions.HTTPError as e:
            return {"success": False, "error": f"HTTPError {e.response.status_code}: {e}"}
        
        except Exception as e:
            return {"success": False, "error": f"Unexpected error: {str(e)}"}
    
    return {"success": False, "error": "Max retries exceeded"}

Beispielaufruf

result = generate_image( prompt="Ein modernistisches Bürogebäude mit grünen Pflanzen, Tageslicht", size="1024x1024", quality="standard" ) if result["success"]: print(f"Bild generiert: {result['image_url']}") print(f"Generierungszeit: {result['generation_time_ms']:.0f}ms") else: print(f"Fehler: {result['error']}")

Kombinierte Kostenanalyse-Funktion

import requests
from datetime import datetime
import json

class APICostAnalyzer:
    """
    Analysiert und vergleicht API-Kosten für Text- und Bild-APIs.
    Unterstützt HolySheep AI und andere Anbieter.
    """
    
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = "https://api.holysheep.ai/v1"
        self.usage_log = []
        
        # Preise pro 1M Token/Bild (USD)
        self.prices = {
            "text": {
                "deepseek-v3.2": 0.42,
                "gpt-4.1": 8.00,
                "claude-sonnet-4.5": 15.00,
                "gemini-2.5-flash": 2.50
            },
            "image": {
                "256x256": 0.02,
                "512x512": 0.04,
                "1024x1024": 0.08,
                "1024x1024-hd": 0.12
            }
        }
    
    def estimate_text_cost(self, model, input_tokens, output_tokens):
        """Berechnet geschätzte Kosten für Textanfrage."""
        input_cost = (input_tokens / 1_000_000) * self.prices["text"].get(model, 0)
        output_cost = (output_tokens / 1_000_000) * self.prices["text"].get(model, 0)
        total = input_cost + output_cost
        
        return {
            "model": model,
            "input_tokens": input_tokens,
            "output_tokens": output_tokens,
            "input_cost_usd": round(input_cost, 4),
            "output_cost_usd": round(output_cost, 4),
            "total_cost_usd": round(total, 4)
        }
    
    def estimate_image_cost(self, resolution, quantity=1, hd=False):
        """Berechnet geschätzte Kosten für Bildgenerierung."""
        size_key = resolution
        if hd:
            size_key += "-hd"
        
        unit_price = self.prices["image"].get(size_key, 0.08)
        total = unit_price * quantity
        
        return {
            "resolution": resolution,
            "quantity": quantity,
            "hd": hd,
            "unit_price_usd": unit_price,
            "total_cost_usd": round(total, 4)
        }
    
    def compare_apis(self, text_tokens, images_count, image_res="1024x1024"):
        """Vergleicht Kosten zwischen verschiedenen API-Nutzungen."""
        comparison = {
            "scenario": {
                "text_tokens": text_tokens,
                "images": images_count,
                "image_resolution": image_res
            },
            "text_api_comparison": [],
            "image_api_cost": self.estimate_image_cost(image_res, images_count),
            "recommendation": None
        }
        
        # Vergleiche verschiedene Text-Modelle
        for model, price in self.prices["text"].items():
            text_cost = self.estimate_text_cost(model, text_tokens * 0.3, text_tokens * 0.7)
            comparison["text_api_comparison"].append({
                "model": model,
                "cost_usd": text_cost["total_cost_usd"],
                "vs_holysheep_deepseek": f"{text_cost['total_cost_usd'] / 0.42:.1f}x teurer"
            })
        
        # Finde günstigste Option
        cheapest_text = min(comparison["text_api_comparison"], key=lambda x: x["cost_usd"])
        image_cost = comparison["image_api_cost"]["total_cost_usd"]
        
        comparison["recommendation"] = {
            "cheapest_text_model": cheapest_text["model"],
            "cheapest_text_cost": cheapest_text["cost_usd"],
            "image_cost": image_cost,
            "total_cost": round(cheapest_text["cost_usd"] + image_cost, 4),
            "savings_tip": "Nutze DeepSeek V3.2 für 95% Ersparnis bei Text!"
        }
        
        return comparison
    
    def log_usage(self, api_type, cost_usd, metadata=None):
        """Protokolliert API-Nutzung für Tracking."""
        entry = {
            "timestamp": datetime.now().isoformat(),
            "type": api_type,
            "cost_usd": cost_usd,
            "metadata": metadata or {}
        }
        self.usage_log.append(entry)
        return entry
    
    def get_total_spent(self):
        """Gibt Gesamtausgaben zurück."""
        return sum(entry["cost_usd"] for entry in self.usage_log)

Beispielnutzung

analyzer = APICostAnalyzer("YOUR_HOLYSHEEP_API_KEY")

Vergleiche Kosten für ein typisches Szenario

result = analyzer.compare_apis( text_tokens=100_000, # 100K Token images_count=50, # 50 Bilder image_res="1024x1024" ) print("=== Kostenvergleich ===") print(json.dumps(result, indent=2))

Empfehlung

rec = result["recommendation"] print(f"\n💡 Empfehlung: Nutze {rec['cheapest_text_model']} für Text.") print(f"Textkosten: ${rec['cheapest_text_cost']}") print(f"Bildkosten: ${rec['image_cost']}") print(f"Gesamtkosten: ${rec['total_cost']}")

Häufige Fehler und Lösungen

Fehler 1: ConnectionError: timeout

Problem: Die API-Anfrage timed out, besonders bei Bildgenerierung mit großen Auflösungen oder bei langsamen Netzwerkverbindungen.

Lösung: Implementieren Sie Exponential Backoff mit Retry-Logik und erhöhen Sie die Timeout-Grenzen gezielt für langsame Operationen:

import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
import time

def create_resilient_session():
    """
    Erstellt eine Session mit automatischen Retries und erhöhten Timeouts.
    Für Text-APIs: 30s Timeout
    Für Bild-APIs: 120s Timeout
    """
    session = requests.Session()
    
    # Konfiguriere Retry-Strategie
    retry_strategy = Retry(
        total=3,
        backoff_factor=1,
        status_forcelist=[429, 500, 502, 503, 504],
        allowed_methods=["POST", "GET"]
    )
    
    adapter = HTTPAdapter(max_retries=retry_strategy)
    session.mount("http://", adapter)
    session.mount("https://", adapter)
    
    return session

def api_request_with_retry(url, headers, payload, timeout=30):
    """
    Führt API-Anfrage mit Retry-Logik und Timeout-Handling aus.
    """
    session = create_resilient_session()
    
    try:
        response = session.post(
            url,
            headers=headers,
            json=payload,
            timeout=timeout
        )
        response.raise_for_status()
        return {"success": True, "data": response.json()}
    
    except requests.exceptions.Timeout:
        # Fallback: Manueller Retry nach Timeout
        print("Timeout erkannt. Manuelles Retry nach 5 Sekunden...")
        time.sleep(5)
        try:
            response = session.post(
                url,
                headers=headers,
                json=payload,
                timeout=timeout * 2  # Verdopple Timeout beim Retry
            )
            response.raise_for_status()
            return {"success": True, "data": response.json()}
        except Exception as e:
            return {"success": False, "error": f"Retry failed: {str(e)}"}
    
    except requests.exceptions.ConnectionError:
        return {"success": False, "error": "ConnectionError: timeout - Netzwerk prüfen"}
    
    except Exception as e:
        return {"success": False, "error": str(e)}

Nutzung

session = create_resilient_session() result = api_request_with_retry( url="https://api.holysheep.ai/v1/chat/completions", headers={"Authorization": "Bearer YOUR_HOLYSHEEP_API_KEY"}, payload={"model": "deepseek-v3.2", "messages": [{"role": "user", "content": "Hallo"}]}, timeout=30 )

Fehler 2: 401 Unauthorized - Ungültiger API-Key

Problem: Der API-Key ist ungültig, abgelaufen oder nicht korrekt formatiert.

Lösung: Validieren Sie den API-Key vor der Nutzung und implementieren Sie eine klare Fehlerbehandlung:

import os
import re

def validate_api_key(api_key):
    """
    Validiert das Format und die Existenz eines API-Keys.
    
    Anforderungen:
    - Key muss existieren
    - Minimale Länge von 20 Zeichen
    - Nur alphanumerische Zeichen und Bindestriche
    """
    if not api_key:
        return {
            "valid": False,
            "error": "API-Key fehlt. Bitte setzen Sie YOUR_HOLYSHEEP_API_KEY."
        }
    
    if len(api_key) < 20:
        return {
            "valid": False,
            "error": "API-Key zu kurz. Gültige Keys haben mindestens 20 Zeichen."
        }
    
    # Prüfe gültiges Format
    if not re.match(r'^[a-zA-Z0-9_-]+$', api_key):
        return {
            "valid": False,
            "error": "API-Key enthält ungültige Zeichen. Nur a-z, A-Z, 0-9, _, - erlaubt."
        }
    
    # Teste den Key mit einem minimalen Request
    if not validate_key_with_api(api_key):
        return {
            "valid": False,
            "error": "API-Key ungültig oder abgelaufen. Bitte neuen Key generieren."
        }
    
    return {"valid": True, "key": api_key}

def validate_key_with_api(api_key):
    """Testet den API-Key mit einem minimalen API-Aufruf."""
    import requests
    
    try:
        response = requests.get(
            "https://api.holysheep.ai/v1/models",
            headers={"Authorization": f"Bearer {api_key}"},
            timeout=10
        )
        return response.status_code == 200
    except:
        return False

def get_api_key():
    """
    Sichere Methode zum Abrufen des API-Keys aus Umgebungsvariablen.
    """
    api_key = os.environ.get("HOLYSHEEP_API_KEY")
    
    if not api_key:
        # Fallback für Entwicklung/Tests
        api_key = os.environ.get("YOUR_HOLYSHEEP_API_KEY")
    
    validation = validate_api_key(api_key)
    
    if not validation["valid"]:
        raise ValueError(f"API-Key Fehler: {validation['error']}")
    
    return api_key

Nutzung am Anfang Ihrer Anwendung

try: API_KEY = get_api_key() print(f"API-Key erfolgreich validiert: {API_KEY[:8]}...{API_KEY[-4:]}") except ValueError as e: print(f"Kritischer Fehler: {e}") print("Lösung: Exportieren Sie Ihren Key mit: export HOLYSHEEP_API_KEY='ihr-key-hier'")

Fehler 3: Budget-Überschreitung durch unerwartete Volumina

Problem: Die API-Kosten explodieren, weil Token-Nutzung nicht korrekt überwacht wird.

Lösung: Implementieren Sie ein Budget-Tracking-System mit automatischen Stopps:

from datetime import datetime, timedelta
import threading

class BudgetController:
    """
    Kontrolliert API-Ausgaben und stoppt bei Budgetüberschreitung.
    """
    
    def __init__(self, daily_limit_usd=10.0, monthly_limit_usd=100.0):
        self.daily_limit = daily_limit_usd
        self.monthly_limit = monthly_limit_usd
        self.daily_spent = 0.0
        self.monthly_spent = 0.0
        self.last_reset = datetime.now()
        self.lock = threading.Lock()
        self.enabled = True
    
    def reset_daily_if_needed(self):
        """Setzt Tageszähler zurück, wenn ein neuer Tag beginnt."""
        now = datetime.now()
        if (now - self.last_reset).days >= 1:
            self.daily_spent = 0.0
            self.last_reset = now
    
    def reset_monthly_if_needed(self):
        """Setzt Monatszähler zurück, wenn neuer Monat beginnt."""
        now = datetime.now()
        if now.month != self.last_reset.month:
            self.monthly_spent = 0.0
    
    def check_budget(self, additional_cost):
        """
        Prüft, ob Budget für zusätzliche Kosten ausreicht.
        
        Rückgabe:
            bool: True wenn Budget ausreicht, False sonst
        """
        if not self.enabled:
            return True
        
        with self.lock:
            self.reset_daily_if_needed()
            self.reset_monthly_if_needed()
            
            new_daily = self.daily_spent + additional_cost
            new_monthly = self.monthly_spent + additional_cost
            
            if new_daily > self.daily_limit:
                print(f"⚠️ Tagesbudget überschritten: ${new_daily:.2f} > ${self.daily_limit:.2f}")
                return False
            
            if new_monthly > self.monthly_limit:
                print(f"⚠️ Monatsbudget überschritten: ${new_monthly:.2f} > ${self.monthly_limit:.2f}")
                return False
            
            return True
    
    def record_cost(self, cost_usd, description=""):
        """Protokolliert angefallene Kosten."""
        with self.lock:
            self.reset_daily_if_needed()
            self.reset_monthly_if_needed()
            
            self.daily_spent += cost_usd
            self.monthly_spent += cost_usd
            
            print(f"💰 Kosten recorded: ${cost_usd:.4f} ({description})")
            print(f"   Tagesverbrauch: ${self.daily_spent:.2f}/${self.daily_limit:.2f}")
            print(f"   Monatsverbrauch: ${self.monthly_spent:.2f}/${self.monthly_limit:.2f}")
    
    def get_status(self):
        """Gibt aktuellen Budget-Status zurück."""
        with self.lock:
            self.reset_daily_if_needed()
            self.reset_monthly_if_needed()
            
            return {
                "daily_spent": self.daily_spent,
                "daily_limit": self.daily_limit,
                "daily_remaining": self.daily_limit - self.daily_spent,
                "monthly_spent": self.monthly_spent,
                "monthly_limit": self.monthly_limit,
                "monthly_remaining": self.monthly_limit - self.monthly_spent
            }

Nutzung als Decorator für API-Funktionen

def with_budget_control(budget_controller): """Decorator für automatische Budget-Prüfung.""" def decorator(func): def wrapper(*args, **kwargs): # Schätze Kosten (vereinfacht) estimated_cost = estimate_api_cost(func.__name__, *args, **kwargs) if not budget_controller.check_budget(estimated_cost): raise BudgetExceededError( f"API-Aufruf verweigert: Budget würde um ${estimated_cost:.4f} überschritten" ) result = func(*args, **kwargs) # Tatsächliche Kosten recorden actual_cost = get_actual_cost(result) budget_controller.record_cost(actual_cost, func.__name__) return result return wrapper