0Pricing
AI Engineering Academy · Lektion

API-Kosten berechnen und prognostizieren

Sie schreiben eine Python-Hilfsfunktion, die vor dem Senden einer Anfrage die Kosten schätzt, indem sie Tokens zählt und die Preise des jeweiligen Modells anwendet, damit Sie keine unerwartete Rechnung erhalten.

API-Kosten berechnen und prognostizieren ist eine kostenlose AI Engineering Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Engineering Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Engineering Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Kostenprognosen wichtig sind

Die API-Kosten für LLM-Anwendungen können bei großer Skalierung überraschend hoch sein. Eine einzelne Anfrage, die mit 0,002 $ günstig erscheint, kostet bei 100.000 Ausführungen 200 $. Ohne Kostenprognosen und -überwachung können KI-Funktionen unerwartet hohe Cloud-Rechnungen verursachen, die Ihre gesamten Infrastrukturkosten in den Schatten stellen.

Die gute Nachricht ist, dass sich LLM-Kosten vor dem Senden einer Anfrage vollständig prognostizieren lassen: Sie kennen das Modell, können die Input-Tokens mit tiktoken zählen und die Anzahl der Output-Tokens anhand Ihrer Einstellung für max_tokens oder historischer Durchschnittswerte schätzen. Wenn Sie von Anfang an Kostenprognosen in Ihre Anwendung integrieren, vermeiden Sie unerwartete Abrechnungen.

Preisstruktur von OpenAI

OpenAI berechnet Input-Tokens und Output-Tokens getrennt, wobei die Ausgabe typischerweise 3–4 Mal mehr kostet. Die Preise variieren je nach Modell. Als Richtwert für 2025 (prüfen Sie stets die aktuelle Preisseite, da sich die Preise ändern):

  • gpt-4o-mini: etwa 0,15 $ pro Million Input-Tokens, etwa 0,60 $ pro Million Output-Tokens
  • gpt-4o: etwa 2,50 $ pro Million Input-Tokens, etwa 10,00 $ pro Million Output-Tokens
  • text-embedding-3-small: etwa 0,02 $ pro Million Tokens

Der Kostenunterschied zwischen den Modellen ist enorm: gpt-4o ist pro Input-Token ungefähr 17-mal teurer als gpt-4o-mini. Die Modellauswahl ist Ihr größter Hebel zur Kostenkontrolle – beginnen Sie immer mit dem günstigsten Modell, das Ihre Qualitätsanforderungen erfüllt.

Eine Hilfsfunktion zur Kostenschätzung

Erstellen Sie einen Kostenschätzer, den Sie vor dem Senden jeder Anfrage aufrufen. Er zählt die Input-Tokens mit tiktoken, schätzt die Anzahl der Output-Tokens anhand Ihres max_tokens-Parameters, ruft den modellabhängigen Preis ab und gibt die geschätzten Kosten in Dollar zurück. Rufen Sie ihn in der Entwicklung auf und protokollieren Sie die Ergebnisse, damit Sie ein Gefühl dafür entwickeln, wie viel verschiedene Anfragearten kosten.

import tiktoken

# Prices per million tokens as of early 2025
PRICING = {
    'gpt-4o': {'input': 2.50, 'output': 10.00},
    'gpt-4o-mini': {'input': 0.15, 'output': 0.60},
    'gpt-4-turbo': {'input': 10.00, 'output': 30.00},
    'text-embedding-3-small': {'input': 0.02, 'output': 0.0},
}

def estimate_cost(messages, model='gpt-4o-mini', expected_output_tokens=500):
    enc = tiktoken.encoding_for_model(model)
    input_tokens = sum(
        len(enc.encode(m.get('content', ''))) + 4
        for m in messages
    ) + 3

    if model not in PRICING:
        raise ValueError(f'Unknown model: {model}')

    rates = PRICING[model]
    input_cost = (input_tokens / 1_000_000) * rates['input']
    output_cost = (expected_output_tokens / 1_000_000) * rates['output']
    total = input_cost + output_cost

    print(f'Model: {model}')
    print(f'Input tokens: {input_tokens} (${input_cost:.6f})')
    print(f'Est. output tokens: {expected_output_tokens} (${output_cost:.6f})')
    print(f'Estimated total: ${total:.6f}')
    return total

Tatsächliche Kosten aus API-Antworten erfassen

Nach jedem API-Aufruf enthält das Antwortobjekt die tatsächlich verwendeten Tokenanzahlen. Extrahieren Sie diese, um die tatsächlichen Kosten zu protokollieren und mit Ihren Schätzungen zu vergleichen. Im Laufe der Zeit zeigt Ihnen die Abweichung zwischen den geschätzten und den tatsächlichen Output-Tokens, wie genau Sie die Nutzung prognostizieren. Die Protokolle liefern außerdem eine Kostenaufstellung nach Funktion oder Benutzersegment.

import openai

client = openai.OpenAI()

PRICING = {
    'gpt-4o-mini': {'input': 0.15, 'output': 0.60},
}

def chat_with_cost_tracking(model, messages):
    response = client.chat.completions.create(
        model=model, messages=messages
    )
    usage = response.usage
    rates = PRICING.get(model, {'input': 0, 'output': 0})
    actual_cost = (
        (usage.prompt_tokens / 1_000_000) * rates['input'] +
        (usage.completion_tokens / 1_000_000) * rates['output']
    )
    print(f'Input: {usage.prompt_tokens} tokens')
    print(f'Output: {usage.completion_tokens} tokens')
    print(f'Total: {usage.total_tokens} tokens')
    print(f'Actual cost: ${actual_cost:.6f}')
    return response, actual_cost

Monatliche Kosten prognostizieren

Sobald Sie die durchschnittlichen Kosten pro Anfrage und das erwartete Anfragevolumen kennen, ist die Prognose der monatlichen Kosten unkompliziert. Erstellen Sie eine Tabelle als Kostenmodell oder ein einfaches Python-Skript, mit dem Sie verschiedene Annahmen testen können: Was passiert, wenn sich die täglich aktiven Nutzer verdoppeln? Was passiert, wenn Sie eine Funktion hinzufügen, die pro Nutzeraktion 3 statt 1 API-Aufruf ausführt?

def project_monthly_cost(
    avg_cost_per_request,
    requests_per_day,
    days=30
):
    daily_cost = avg_cost_per_request * requests_per_day
    monthly_cost = daily_cost * days

    print(f'Avg cost/request: ${avg_cost_per_request:.6f}')
    print(f'Requests/day: {requests_per_day:,}')
    print(f'Daily cost: ${daily_cost:.2f}')
    print(f'Monthly cost: ${monthly_cost:.2f}')

    # Growth scenarios
    for multiplier in [2, 5, 10]:
        scaled = monthly_cost * multiplier
        print(f'  At {multiplier}x traffic: ${scaled:.2f}/month')

# Example: customer support bot
project_monthly_cost(
    avg_cost_per_request=0.002,  # 2 cents per support query
    requests_per_day=5000
)

Die Kostenauswirkungen der Modellwahl

Der mit Abstand größte Hebel zur Kostensenkung ist die Verwendung des günstigsten Modells, das Ihre Qualitätsanforderungen erfüllt. Bei vielen Aufgaben liefert gpt-4o-mini vergleichbare Ergebnisse wie gpt-4o, ist aber etwa 17-mal günstiger. Bevor Sie standardmäßig das leistungsfähigste Modell verwenden, testen Sie das günstigere Modell mit Ihrer konkreten Aufgabe und wechseln Sie nur dann zum teureren Modell, wenn die Qualität unter Ihren Schwellenwert fällt.

Eine Strategie mit abgestuftem Routing ist noch effektiver: Klassifizieren Sie eingehende Anfragen nach ihrer Komplexität und leiten Sie einfache Anfragen an günstige Modelle und komplexe Anfragen an teure Modelle weiter. Selbst wenn Sie 70 % des Datenverkehrs an das günstige Modell und 30 % an das teure Modell weiterleiten, sparen Sie ungefähr 70 % Ihrer AI-Kosten.

Prompt-Länge und Kosten

Jedes Token in Ihrem Prompt kostet Geld. Ein ausführlicher System-Prompt, der ohne Bedeutungsverlust gekürzt werden könnte, erhöht Ihre API-Rechnung bei jeder Anfrage direkt. Ermitteln Sie die Token-Anzahl Ihrer Prompts und suchen Sie nach Möglichkeiten, die Formulierungen zu straffen. Ebenso lassen sich lange Few-Shot-Beispiele oft durch kürzere Entsprechungen ersetzen, ohne die Genauigkeit zu beeinträchtigen.

Bei RAG-Systemen ist der abgerufene Kontext häufig der größte Teil des Prompts. 10 große Textabschnitte zurückzugeben, wenn 3 gut ausgewählte kleinere ausreichen würden, verschwendet bei jeder Anfrage Tokens. Optimieren Sie den Abruf so, dass redundanter Kontext minimiert und gleichzeitig die Relevanz maximiert wird.

Batching für eine effiziente Kostenkontrolle

OpenAI bietet eine Batch API, die Anfragen asynchron verarbeitet und 50 % unter dem Standardpreis kostet. Wenn Ihr Anwendungsfall nicht lat-sensitiv ist – etwa Dokumentverarbeitung, nächtliche Analyseaufträge oder die Erstellung großer Mengen an Inhalten –, kann die Batch API Ihre Kosten bei minimalen Codeänderungen halbieren.

Batch-Anfragen werden als JSONL-Dateien eingereicht, innerhalb von 24 Stunden verarbeitet und die Ergebnisse anschließend über die API abgerufen. Das ist ideal für Vorverarbeitungspipelines, die nach einem Zeitplan ausgeführt werden und keine Echtzeitantworten benötigen.

import openai
import json

client = openai.OpenAI()

# Create batch request file
requests = [
    {'custom_id': f'doc-{i}',
     'method': 'POST',
     'url': '/v1/chat/completions',
     'body': {
         'model': 'gpt-4o-mini',
         'messages': [{'role': 'user', 'content': f'Summarize document {i}'}],
         'max_tokens': 200
     }}
    for i in range(100)
]

# Write to JSONL
with open('/tmp/batch_input.jsonl', 'w') as f:
    for req in requests:
        f.write(json.dumps(req) + '\n')

# Upload and submit (50% off list price)
print('Would submit batch for 100 documents at 50% discount')
# batch_file = client.files.create(file=open('/tmp/batch_input.jsonl','rb'), purpose='batch')
# batch = client.batches.create(input_file_id=batch_file.id, endpoint='/v1/chat/completions', completion_window='24h')

Ausgabenlimits festlegen

Konfigurieren Sie immer Ausgabenlimits, um unkontrolliert steigende Kosten zu verhindern. Im OpenAI-Dashboard können Sie monatliche Ausgabenlimits festlegen, die den API-Zugriff sperren, sobald das Limit erreicht ist. Setzen Sie ein hartes Limit auf den maximal akzeptablen Betrag und ein weiches Limit auf 80 % dieses Werts, damit Sie vor Erreichen des harten Limits eine Warnung per E-Mail erhalten.

Implementieren Sie in Ihrem Anwendungscode ein Budget pro Nutzer oder Funktion, das in Ihrer Datenbank erfasst wird. Prüfen Sie das Budget vor jedem API-Aufruf und geben Sie einen Fehler zurück, wenn es ausgeschöpft ist. So verhindern Sie, dass ein einzelner Nutzer mit unkontrolliertem Verhalten oder ein Fehler in einem Batch-Auftrag innerhalb weniger Stunden Ihr gesamtes Monatskontingent verbraucht.

Caching zur Vermeidung redundanter API-Aufrufe

Der günstigste API-Aufruf ist derjenige, den Sie nie ausführen. Implementieren Sie Caching auf der Anwendungsebene, damit identische Anfragen aus dem Cache beantwortet werden, statt die API erneut aufzurufen. Selbst ein einfacher Redis-Cache, dessen Schlüssel auf dem SHA256-Hash des Prompts basiert, kann in einer Anwendung im Produktivbetrieb einen erheblichen Anteil redundanter Aufrufe vermeiden.

Bei Embeddings ist Caching besonders wirkungsvoll: Derselbe Text sollte nur einmal in ein Embedding umgewandelt werden. Speichern Sie Embeddings zusammen mit dem ursprünglichen Text als Schlüssel in Ihrer Vektordatenbank und prüfen Sie vor dem Aufruf der Embeddings API, ob bereits ein Embedding vorhanden ist. In einer RAG-Pipeline werden Dokument-Embeddings einmal bei der Indexierung berechnet und für jede Anfrage wiederverwendet, die diese Dokumente abruft.

import hashlib
import json

# Simple in-memory cache (use Redis in production)
_cache = {}

def cached_completion(client, model, messages, **kwargs):
    cache_key = hashlib.sha256(
        json.dumps({'model': model, 'messages': messages}).encode()
    ).hexdigest()

    if cache_key in _cache:
        print('Cache HIT - no API call made')
        return _cache[cache_key]

    response = client.chat.completions.create(
        model=model, messages=messages, **kwargs
    )
    _cache[cache_key] = response
    print('Cache MISS - API call made')
    return response

Ein Kosten-Dashboard erstellen

Im Produktivbetrieb benötigen Sie einen Überblick über Ihre AI-Kosten, aufgeschlüsselt nach Funktion, Nutzer und Modell. Erstellen Sie ein Kosten-Dashboard, indem Sie die Token-Anzahl und zugehörige Metadaten (Nutzer-ID, Funktionsname, Modell) jedes API-Aufrufs in einer Zeitreihendatenbank protokollieren. Aggregieren Sie die Daten anschließend, um Fragen zu beantworten wie: Welche Funktion verursacht die höchsten Ausgaben? Verursachen Power-User unverhältnismäßig hohe Kosten? Steigen die Kosten pro Anfrage nach einer Änderung am Prompt?

Diese Transparenz ist entscheidend, um Optimierungsentscheidungen auf Grundlage von Daten zu treffen, statt zu raten, wo Kosten gesenkt werden können. Die meisten Unternehmen stellen fest, dass 20 % ihrer Funktionen für 80 % ihrer AI-Ausgaben verantwortlich sind. Die Optimierung dieser Funktionen hat daher eine überproportionale Wirkung.

Kurzer Wissenstest

Testen Sie Ihr Verständnis der Konzepte aus dem Bereich AI Engineering aus dieser Lektion.

Zusammenfassung der Lektion

In dieser Lektion haben Sie gelernt: API-Kosten lassen sich vor dem Senden prognostizieren, indem Sie mit tiktoken die Eingabe-Tokens zählen und die Ausgabe-Tokens schätzen, die Modellwahl ist der größte Kostenhebel – gpt-4o-mini kann bei geeigneten Aufgaben 17-mal günstiger als gpt-4o sein und Caching, Batching und Ausgabenlimits verhindern unkontrolliert steigende Kosten im Produktivbetrieb. Als Nächstes sehen wir uns Strategien für die Verwaltung langer Konversationen an, die das Kontextfenster überschreiten.

Häufig gestellte Fragen

Ist die Lektion „API-Kosten berechnen und prognostizieren“ kostenlos?

Ja — der vollständige Text von „API-Kosten berechnen und prognostizieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Engineering Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Engineering Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „API-Kosten berechnen und prognostizieren“?

Sie schreiben eine Python-Hilfsfunktion, die vor dem Senden einer Anfrage die Kosten schätzt, indem sie Tokens zählt und die Preise des jeweiligen Modells anwendet, damit Sie keine unerwartete Rechnu… Du übst AI Engineering Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Engineering Academy zu starten?

Keine Vorkenntnisse erforderlich. AI Engineering Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „API-Kosten berechnen und prognostizieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Engineering Academy-Lektion Code schreiben und ausführen?

Ja. Jede AI Engineering Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Was ist ein Token?
  2. Kontextfenster: Größe und Auswirkungen
  3. API-Kosten berechnen und prognostizieren
  4. Strategien zur Einhaltung von Kontextgrenzen
← Zurück zu AI Engineering Academy