KI für EinsteigerAnleitung
Warum ein langer AI-Chat mehr kostet: Die API sendet den Verlauf erneut
Jede neue Nachricht in einem AI-Chat sendet den gesamten Verlauf erneut, sodass der Input bei jedem Turn wächst. Sieh dir die Rechnung und 3 Wege an, die Kosten niedrig zu halten.

Auf dieser Seite
- Die kurze Antwort
- Ein durchgerechnetes Beispiel mit erfundenen Zahlen
- Was es zu aktuellen Preisen kostet
- Drei Wege, es niedrig zu halten
- 1. Starte einen neuen Chat, wenn sich das Thema ändert
- 2. Kürze den Verlauf
- 3. Ersetze alte Turns durch eine Zusammenfassung
- Sieh es in deinem eigenen Code
- Wo man lange Chats laufen lässt
Die ersten Nachrichten eines Chats sind günstig. Nachricht fünfzig kostet deutlich mehr als Nachricht zehn, obwohl du dieselbe Menge getippt hast. Nichts ist kaputt: So funktionieren Chat-APIs.
Die kurze Antwort#
Ein Modell erinnert sich nicht an deine vorherigen Anfragen. OpenAIs Dokumentation sagt es direkt: „each text generation request is independent and stateless“, und für eine Multi-Turn-Konversation fügst du die früheren Nachrichten und die vorherige Antwort des Modells in die nächste Anfrage ein. Anthropics Messages API beschreibt dasselbe Muster: zustandslose Multi-Turn-Konversationen, bei denen frühere Turns im Parameter messages übergeben werden.
Das Chatfenster, das du in einer App siehst, ist also eine Illusion, die von der App erzeugt wird. Dahinter ist jede neue Nachricht eine frische Anfrage, die die gesamte bisherige Konversation mitführt. Du zahlst bei jeder Anfrage für Input-Tokens, und der Verlauf ist Teil dieses Inputs. Wenn du mit den Begriffen neu bist, lies zuerst What is a token und Input vs output tokens.
OpenAI stellt die Abrechnungsseite für seine Response-Chains ausdrücklich klar: Alle vorherigen Input-Tokens in der Chain werden als Input-Tokens abgerechnet. Dasselbe Prinzip gilt für jede API, bei der du den Verlauf selbst sendest: Was du sendest, wird gezählt.
Ein durchgerechnetes Beispiel mit erfundenen Zahlen#
Die Zahlen unten sind ein Lehrbeispiel, keine Messung. Nimm an, jede deiner Nachrichten hat etwa 200 Tokens und jede Antwort etwa 300 Tokens. Ein abgeschlossener Austausch fügt dem Verlauf 500 Tokens hinzu.
Tabelle nach rechts scrollen →
| Turn | Erneut gesendeter früherer Verlauf | Neue Nachricht | Input dieser Anfrage | Output |
|---|---|---|---|---|
| 1 | 0 | 200 | 200 | 300 |
| 5 | 500 × 4 = 2.000 | 200 | 2.200 | 300 |
| 10 | 500 × 9 = 4.500 | 200 | 4.700 | 300 |
| 20 | 500 × 19 = 9.500 | 200 | 9.700 | 300 |
Die Antwort bleibt gleich lang, aber der Input von Turn 20 ist fast fünfzigmal so groß wie der Input von Turn 1. Der Output wächst nicht; der Input schon.
Nun die Summe für einen 20-Turn-Chat. Der Verlauf wird 0, 1, 2 ... 19 Mal so oft wie die Anzahl der Austausche erneut gesendet, was eine einfache Summe ist:
- Erneut gesendete alte Austausche: 500 × 190 = 95.000 Tokens (190 ist 0 + 1 + 2 + ... + 19).
- Neue Nachrichten: 200 × 20 = 4.000 Tokens.
- Gesamter Input für den Chat: 95.000 + 4.000 = 99.000 Tokens.
- Gesamter Output: 300 × 20 = 6.000 Tokens.
Wenn das Modell sich alles kostenlos merken würde, wäre der Input nur 200 × 20 = 4.000 Tokens. Der Rest ist der erneut gesendete Verlauf. Die Verdopplung der Turn-Anzahl verdoppelt die Kosten des Verlaufs nicht, sie vervierfacht sie ungefähr, weil die Summe mit dem Quadrat der Turn-Anzahl wächst.
Was es zu aktuellen Preisen kostet#
Hier ist derselbe 20-Turn-Chat (99.000 Input, 6.000 Output) zu aktuellen Preisen. Die Tabelle ist live und aktualisiert sich, wenn sich Tarife ändern; die letzte Spalte ist OpenRouters Referenzpreis zum Vergleich.
| Modell | Input $/1M | Output $/1M | Kosten | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0022 | $0.0045 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.0021 | $0.0056 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0059 | $0.0369 |
99.000 Input- und 6.000 Output-Tokens insgesamt. Die Preise pro 1 Mio. Tokens sind aktuell und ändern sich zusammen mit unseren Tarifen; die OpenRouter-Spalte zeigt Referenzpreise für dieselbe Arbeitslast.
Für eine schnelle Prüfung im Text: Auf MiniMax-M2.7 kostet diese ganze Konversation $0.0059. Bei einem Chat wie diesem, in dem der Input dominiert, zählt der Input-Preis am meisten: Auf MiniMax-M2.7 ist er günstiger als OpenRouters Referenzpreis. Pro 1M Tokens kostet MiniMax-M2.7 $0.05 für Input und $0.15 für Output.
Drei Wege, es niedrig zu halten#
1. Starte einen neuen Chat, wenn sich das Thema ändert#
Der günstigste Verlauf ist ein leerer. Wenn du mit dem Debuggen einer Funktion fertig bist und jetzt ein Rezept möchtest, sendet ein neuer Chat 200 Tokens statt 9.700. In einer App ist das ein Button; im Code ist es history = []. Tu es immer dann, wenn der frühere Kontext der nächsten Frage nicht mehr hilft.
2. Kürze den Verlauf#
Behalte nur die letzten paar Nachrichten und lass den Rest weg. Angenommen, du behältst die letzten drei Austausche, sodass der Verlauf nie 500 × 3 = 1.500 Tokens überschreitet:
- Turns 1-3 wachsen normal: 0 + 500 + 1.000 = 1.500 Tokens Verlauf.
- Turns 4-20 tragen jeweils die gedeckelten 1.500: 1.500 × 17 = 25.500 Tokens.
- Verlauf gesamt: 1.500 + 25.500 = 27.000 Tokens, plus 4.000 neue Nachrichten = 31.000 Tokens Input.
Das sind 31.000 statt 99.000 für dieselben 20 Turns, und auf MiniMax-M2.7 ergibt das $0.0025. Der Preis des Kürzens ist, dass das Modell den frühen Teil des Chats vergisst, also behalte den System-Prompt und alle Fakten, die es nicht verlieren darf, außerhalb des gekürzten Teils.
3. Ersetze alte Turns durch eine Zusammenfassung#
Wenn der Verlauf lang wird, bitte das Modell einmal, ihn zusammenzufassen, und fahre dann mit der Zusammenfassung statt mit dem Volltext fort. Im obigen Beispiel sind neun Austausche 4.500 Tokens; eine Zusammenfassung von etwa 300 Tokens trägt die Kernpunkte weiter. Du zahlst für eine zusätzliche Anfrage zum Schreiben der Zusammenfassung, und jede spätere Anfrage ist leichter. Das bewahrt mehr Bedeutung als reines Kürzen, auf Kosten eines kleinen Detailverlusts.
Das Kontextfenster ist eine separate Grenze: Es begrenzt, wie viele Tokens eine Anfrage enthalten darf, einschließlich der Antwort. Der Verlauf wird diese Obergrenze irgendwann erreichen; Why does an AI answer stop mid-sentence? erklärt das.
Sieh es in deinem eigenen Code#
Die Antwort enthält ein usage-Objekt, sodass du das Wachstum selbst beobachten kannst. Dies ist ein Beispiel: Ersetze den Key und nimm die Modell-ID aus der CheapTokens-Dokumentation, denn die IDs unterscheiden sich zwischen Anbietern.
from openai import OpenAI
client = OpenAI(base_url='https://api.cheaptokens.dev/v1', api_key='YOUR_KEY')
system = {'role': 'system', 'content': 'You are a helpful assistant.'}
history = []
KEEP = 7 # new message + last 3 exchanges (6 messages); None keeps everything
def ask(text):
history.append({'role': 'user', 'content': text})
r = client.chat.completions.create(
model='MODEL_ID_FROM_DOCS',
messages=[system] + (history[-KEEP:] if KEEP else history),
)
answer = r.choices[0].message.content
history.append({'role': 'assistant', 'content': answer})
print(r.usage.prompt_tokens, r.usage.completion_tokens)
return answerRufe ask() mehrmals hintereinander auf und gib prompt_tokens aus: Mit KEEP = None steigt es bei jedem Turn, mit KEEP = 7 flacht es ab. Bei Agents, die viele Schritte durchlaufen, gilt derselbe Effekt für jeden Schritt; How to estimate the cost of an AI agent zeigt, wie man dafür budgetiert.
Wo man lange Chats laufen lässt#
Lange Dialoge und Agent-Loops sind genau die Workloads, in denen das Input-Volumen dominiert, daher zählen sowohl ein großes Kontextfenster als auch Platz für lange Antworten:
- MiniMax-M2.7: 180K Kontext, bis zu 8.192 Tokens pro Antwort, Input und Output beide günstiger als OpenRouters Referenzpreis.
- DeepSeek-V4-Flash: 380K Kontext, bis zu 32.768 Tokens pro Antwort, Output günstiger als OpenRouters Referenzpreis.
CheapTokens hat ein Guthaben für alle Modelle, einen festen Preis pro Modell ohne Stoßzeiten und eine API, die mit OpenAI Chat Completions und Anthropic Messages kompatibel ist, sodass der obige Code durch Ändern der Base-URL funktioniert. Lade das Guthaben auf und sende deine erste Anfrage, indem du Your first API request with CheapTokens folgst.



