OpenAI
Den här sidan har maskinöversatts. Visa den ursprungliga engelska artikeln.

Förstå och räkna token

Läs om hur indata-, utdata-, cachade och resonemangstoken påverkar API-användning, modellgränser och kostnader.

Uppdaterades: 15 days ago

Översikt

Token är de enheter som OpenAI-modeller använder för att bearbeta text. En token kan motsvara ett tecken, en del av ett ord, ett helt ord eller ett skiljetecken. Blanksteg påverkar också hur texten delas upp i token.

Antalet token är inte detsamma som antalet ord. Samma text kan ge olika antal token beroende på modellen, dess kodning och språket.

Förstå hur text blir token

När du skickar text till en modell:

  1. Texten delas upp i token.

  2. Modellen bearbetar dessa token.

  3. Modellen genererar utdatatoken. De kan omfatta texten du får och, för resonemangsmodeller, interna resonemangstoken som inte visas som svarstext.

Använd grova uppskattningar för engelsk text

Dessa uppskattningar kan hjälpa dig att bedöma storleken på engelsk text:

  • 1 token motsvarar ungefär 4 tecken.

  • 1 token motsvarar ungefär tre fjärdedels ord.

  • 100 token motsvarar ungefär 75 ord.

Det här är uppskattningar, inte exakta antal. Menings- och styckelängder varierar, och andra språk kan ha andra förhållanden mellan tecken, ord och token.

Ta hänsyn till blanksteg och versaler

Ett ord kan delas upp i olika token beroende på stavning, användning av versaler och omgivande text.

Exempelvis innehåller red, Red och red inte identisk text: det sista exemplet inleds med ett blanksteg. En kodning kan representera dem på olika sätt.

Token-ID:n beror också på kodningen. Utgå inte från att ett exempel på ett token-ID gäller för alla modeller.

Skilj mellan indata- och utdatatoken

KategoriVad den beskriver
IndatatokenToken som skickas till modellen i en begäran. De kallas även prompttoken.
UtdatatokenToken som genereras av modellen. I Chat Completions kallas dessa slutförandetoken.
Cachade indatatokenIndatatoken som återanvänds genom promptcachning. Priset kan skilja sig från priset för indatatoken som inte är cachade.
ResonemangstokenToken som en resonemangsmodell använder internt innan den skapar sitt synliga svar.

Resonemangstoken syns inte i svarstexten, men räknas in i utdataanvändningen och debiteras som utdatatoken.

Ett kort synligt svar kan därför använda fler token än den visade texten antyder.

Räkna token innan du skickar en begäran

Räkna token i vanlig text

Använd Tokenizer för att se hur text delas upp i token.

Använd tiktoken för programmatisk tokenisering av vanlig text. Välj kodningen för målmodellen, till exempel med tiktoken.encoding_for_model(model).

Antalet token i vanlig text omfattar inte nödvändigtvis alla token i en API-begäran. Meddelandestruktur, verktyg, scheman, bilder och filer kan påverka det totala antalet indatatoken.

Räkna token i fullständiga Responses-indata

Använd API:et för räkning av indatatoken för fullständiga indata till Responses API.

Det tar emot indataformat för Responses, däribland meddelanden, bilder, filer, verktyg och konversationer. Antalet omfattar formateringstoken som används för begärans struktur, exempelvis meddelanderoller och avgränsningar.

Antalet indatatoken förutsäger inte hur många utdatatoken modellen kommer att generera.

Kontrollera faktisk tokenanvändning

Granska användningsinformationen efter en begäran. Fältnamnen varierar beroende på slutpunkt:

  • Chat Completions rapporterar prompt_tokens, completion_tokens och total_tokens.

  • Responses rapporterar input_tokens, output_tokens och total_tokens.

Du kan också granska aktiviteten över tid på användningspanelen. Anvisningar, bland annat om användning vid strömning, finns i Granska API-användning och kostnader.

Håll dig inom modellgränserna

Se modellens dokumentation för information om dess kontextfönster och maximala utdata. Gränserna kan skilja sig mellan olika modeller.

Kontextfönstret begränsar hur många token en modell kan hantera i en begäran. Modeller har också en utdatagräns. För resonemangsmodeller behöver du lämna utrymme för både resonemangstoken och det synliga svaret.

Om dina indata är för stora kan du:

  • Korta ned eller formulera om prompten.

  • Ta bort onödig eller upprepad kontext.

  • Dela upp stora indata i mindre delar.

  • Sammanfatta eller förbehandla texten innan du skickar den.

Använd den inställning för utdatatoken som stöds av slutpunkten och modellen. Chat Completions använder max_completion_tokens och Responses använder max_output_tokens.

Dessa gränser för begärans storlek är separata från API-frekvensgränser samt månatliga användnings- och utgiftsgränser. Läs modelldokumentationen för modellen du använder.

Förstå prissättningen för token

Vid tokenbaserad API-prissättning beror priset på modellen och tokenkategorin. Indatatoken, cachade indatatoken och utdatatoken kan ha olika priser. Andra API-funktioner kan använda andra debiteringsenheter.

Aktuella priser finns på sidan med API-priser.

När du jämför modeller bör du ta hänsyn till det totala antalet token och kostnaden för att slutföra uppgiften. Ett lägre pris per miljon token innebär inte nödvändigtvis en lägre totalkostnad: modeller kan tokenisera samma text på olika sätt och generera olika mängder utdata eller resonemang.

Testa representativa uppgifter i stället för att bara jämföra det synliga svarets längd.

Ta hänsyn till flera slutföranden

När en slutpunkt och modell kan generera flera slutföranden använder även de extra slutförandena token.

Om n anges till mer än 1 för Chat Completions genereras flera alternativ. Du debiteras för alla token som genereras för alternativen.

För det äldre Completions-API:et kan best_of generera kandidater som inte alla returneras. Exempelvis kan best_of = 3 generera upp till 3 × max_tokens slutförandetoken för kandidaterna.

Dessa parametrar är specifika för slutpunkten. Utgå inte från att n eller best_of stöds av ett annat API eller en annan modell.

Var den här artikeln till hjälp?