Nivå 3 — Viderekommende

Streaming og tokens

Streaming gir øyeblikkelig respons i brukergrensesnittet. Tokens er valutaen du betaler med. Lær begge konseptene grundig.
📅 21.05.2026 👁 65 visninger 🇬🇧 Read in English

Hva er streaming?

Uten streaming venter brukeren til Claude er ferdig med hele svaret før noe vises. Med streaming kommer ordene frem ett etter ett — akkurat som når du ser Claude skrive i claude.ai. Dette gir en dramatisk bedre brukeropplevelse, spesielt for lange svar.

Uten streaming — brukeren stirrer på en tom skjerm i 5–30 sekunder, så dukker hele svaret opp på én gang.
Med streaming — første ord vises etter 0,5–1 sekund. Brukeren ser Claude "tenke" i sanntid. Oppfattet ventetid reduseres dramatisk.

Streaming i PHP

💡 PHP streaming med cURL:
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
header("X-Accel-Buffering: no");

$api_key = getenv("ANTHROPIC_API_KEY");
$data = [
    "model"      => "claude-sonnet-4-20250514",
    "max_tokens" => 1024,
    "stream"     => true,
    "messages"   => [
        ["role" => "user", "content" => $_POST["melding"] ?? "Hei"]
    ]
];

$ch = curl_init("https://api.anthropic.com/v1/messages");
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode($data),
    CURLOPT_HTTPHEADER     => [
        "x-api-key: $api_key",
        "anthropic-version: 2023-06-01",
        "content-type: application/json"
    ],
    CURLOPT_WRITEFUNCTION  => function($ch, $chunk) {
        echo $chunk;
        ob_flush();
        flush();
        return strlen($chunk);
    }
]);
curl_exec($ch);

Streaming i Python

💡 Python streaming:
import anthropic

klient = anthropic.Anthropic()

with klient.messages.stream(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Forklar kvantefysikk"}]
) as stream:
    for tekst in stream.text_stream:
        print(tekst, end="", flush=True)

Hva er tokens?

Tokens er de grunnleggende enhetene Claude behandler tekst i. Ikke ord, ikke tegn — men noe midt imellom. Å forstå tokens er viktig fordi du betaler per token og fordi kontekstvinduet måles i tokens.

💡 Token-eksempler:
"Hei" = 1 token
"hallo" = 1 token
"Kunstig intelligens" = 3 tokens
"superkalifralistisk" = 5–6 tokens
Lange norske sammensatte ord bruker flere tokens enn korte engelske ord.

Input tokens vs. output tokens

📥
Input tokens — alt du sender til Claude: system prompt + samtalehistorikk + din melding. Prises lavere enn output.
📤
Output tokens — Claudes svar. Prises høyere enn input fordi det krever mer beregning å generere enn å lese.

Styr kostnadene med max_tokens

max_tokens setter en hard grense på hvor langt svaret kan bli. Sett det lavt for enkle oppgaver, høyt for lange analyser:

✅ Tommelfingerregler for max_tokens:
Enkelt spørsmål/svar → 256–512 tokens
Artikkel eller rapport → 2 000–4 000 tokens
Lang kodegenererering → 4 000–8 000 tokens
Maks mulig → 8 192 tokens (Sonnet) / 32 000 tokens (Opus)

Context window og token-budsjettering

Husk at hele samtalehistorikken teller mot kontekstvinduet. I lange samtaler kan input tokens bli svært mange:

🧹
Trimming — fjern gamle meldinger fra historikken når samtalen blir lang. Behold de siste N turene.
📋
Oppsummering — la Claude oppsummere tidligere deler av samtalen til kortere tekst som erstatter originalen.
🎯
Kort system prompt — hver eneste API-kall inkluderer system prompten. En kortere system prompt sparer penger ved høyt volum.

Prompt caching — spar penger

Anthropic tilbyr prompt caching for lange system prompts og dokumenter. Første gang betaler du full pris — deretter caches innholdet og koster bare 10% av normal input-pris i 5 minutter.

⚠️ Vanlig feil:
Sette max_tokens for lavt slik at Claude kutter svaret midt i en setning. Sjekk alltid stop_reason i responsen — hvis den er "max_tokens" i stedet for "end_turn" ble svaret kuttet.
"Tokens er ikke bare valuta — de er oppmerksomhet. Bruk dem på det som betyr noe." — Om bevisst token-budsjettering
Det er ingenting for lite eller for stort til å overlate til Gud.
— Florence Scovel Shinn

🎯 Test deg selv

Test deg selv — helt valgfritt, men morsomt! 🎯

Spørsmål 1 av 3

Spørsmål 1 av 3

Hva er den viktigste brukeropplevelsesfordelen med streaming?

Streaming viser første ord etter 0,5–1 sekund — brukeren ser Claude tenke i sanntid og oppfattet ventetid reduseres dramatisk.

Spørsmål 2 av 3

Spørsmål 2 av 3

Hva betyr det hvis stop_reason i API-responsen er "max_tokens"?

Svaret ble kuttet fordi det nådde max_tokens-grensen — Claude er ikke ferdig med svaret. Øk max_tokens for å få hele svaret.

Spørsmål 3 av 3

Spørsmål 3 av 3

Hvorfor koster output tokens mer enn input tokens?

Output tokens krever mer beregning å generere enn å lese — Claude må aktivt produsere hvert token, ikke bare prosessere dem.
Del:

Les også