Oversigt
Tokens er de enheder, som OpenAI-modeller bruger til at behandle tekst. En token kan repræsentere et tegn, en del af et ord, et helt ord eller et tegnsætningstegn. Mellemrum påvirker også, hvordan tekst opdeles i tokens.
Antallet af tokens er ikke det samme som antallet af ord. Den samme tekst kan give forskellige antal tokens afhængigt af modellen, dens kodning og sproget.
Forstå, hvordan tekst bliver til tokens
Når du sender tekst til en model:
Teksten opdeles i tokens.
Modellen behandler disse tokens.
Modellen genererer outputtokens. De kan omfatte den tekst, du modtager, og for ræsonneringsmodeller interne ræsonneringstokens, der ikke vises som svartekst.
Brug omtrentlige skøn for engelsk tekst
Disse skøn kan hjælpe dig med at vurdere omfanget af engelsk tekst:
1 token svarer til cirka 4 tegn.
1 token svarer til cirka tre fjerdedele af et ord.
100 tokens svarer til cirka 75 ord.
Dette er skøn, ikke nøjagtige optællinger. Længden på sætninger og afsnit varierer, og på andre sprog kan forholdet mellem tegn, ord og tokens være anderledes.
Tag højde for mellemrum og store og små bogstaver
Et ord kan opdeles i forskellige tokens afhængigt af stavemåde, brugen af store og små bogstaver og den omgivende tekst.
Eksempelvis indeholder red, Red og red ikke identisk tekst: Det sidste eksempel har et indledende mellemrum. En kodning kan repræsentere dem forskelligt.
Token-id'er afhænger også af kodningen. Gå ikke ud fra, at et token-id i et eksempel gælder for alle modeller.
Skeln mellem input- og outputtokens
| Kategori | Hvad den beskriver |
| Inputtokens | Tokens, der leveres til modellen i en anmodning. De kaldes også prompttokens. |
| Outputtokens | Tokens, der genereres af modellen. I Chat Completions kaldes de fuldførelsestokens. |
| Cachelagrede inputtokens | Inputtokens, der genbruges via prompt caching. Prisen kan være anderledes end for inputtokens, der ikke er cachelagret. |
| Ræsonneringstokens | Tokens, som en ræsonneringsmodel bruger internt, før den producerer sit synlige svar. |
Ræsonneringstokens vises ikke som svartekst, men de tæller med i outputforbruget og faktureres som outputtokens.
Et kort synligt svar kan derfor bruge flere tokens, end den viste tekst antyder.
Optæl tokens, før du sender en anmodning
Optæl tokens i almindelig tekst
Brug Tokenizer til at se, hvordan tekst opdeles i tokens.
Brug tiktoken til programmatisk tokenisering af almindelig tekst. Vælg kodningen til din ønskede model, f.eks. med tiktoken.encoding_for_model(model).
En tokenoptælling af almindelig tekst omfatter ikke nødvendigvis alle tokens i en API-anmodning. Meddelelsesstruktur, værktøjer, skemaer, billeder og filer kan påvirke det samlede antal inputtokens.
Optæl et komplet Responses-input
Brug API'en til optælling af inputtokens til et komplet input til Responses API.
Den accepterer inputformater til Responses, herunder meddelelser, billeder, filer, værktøjer og samtaler. Optællingen omfatter formateringstokens, der bruges til anmodningens struktur, f.eks. meddelelsesroller og afgrænsninger.
En optælling af inputtokens forudsiger ikke, hvor mange outputtokens modellen genererer.
Kontrollér det faktiske tokenforbrug
Efter en anmodning kan du gennemgå oplysningerne om dens forbrug. Feltnavnene varierer efter endepunkt:
Chat Completions rapporterer prompt_tokens, completion_tokens og total_tokens.
Responses rapporterer input_tokens, output_tokens og total_tokens.
Du kan også gennemgå aktivitet over tid i kontrolpanelet Usage. Du kan finde en vejledning, herunder om forbrug ved streaming, under Gennemgang af API-brug og omkostninger.
Hold dig inden for modellens grænser
Se modellens dokumentation for at finde dens kontekstvindue og maksimale output. Disse grænser kan variere fra model til model.
Kontekstvinduet begrænser antallet af tokens, som en model kan arbejde med i en anmodning. Modeller har også en outputgrænse. Ved ræsonneringsmodeller skal der være plads til både ræsonneringstokens og det synlige svar.
Hvis dit input er for stort, kan du:
Forkorte eller omformulere prompten.
Fjerne unødvendig eller gentaget kontekst.
Opdele store input i mindre dele.
Opsummere eller forbehandle teksten, før du sender den.
Brug den indstilling for outputtokens, som dit endepunkt og din model understøtter. Chat Completions bruger max_completion_tokens, mens Responses bruger max_output_tokens.
Disse grænser for anmodningsstørrelse er adskilt fra API-hastighedsgrænser og månedlige forbrugs- eller udgiftsgrænser. Læs modeldokumentationen for den model, du bruger.
Forstå prissætningen af tokens
Ved tokenbaseret API-prissætning afhænger taksten af modellen og tokenkategorien. Inputtokens, cachelagrede inputtokens og outputtokens kan have forskellige priser. Andre API-funktioner kan bruge andre faktureringsenheder.
Se de aktuelle takster på siden med API-priser.
Når du sammenligner modeller, skal du tage højde for det samlede antal tokens og omkostningerne ved at løse opgaven. En lavere pris pr. million tokens giver ikke nødvendigvis en lavere samlet omkostning: Modeller kan tokenisere den samme tekst forskelligt og generere forskellige mængder output eller ræsonnering.
Test repræsentative opgaver i stedet for kun at sammenligne længden på det synlige svar.
Tag højde for flere fuldførelser
Når et endepunkt og en model understøtter generering af flere fuldførelser, bruger de ekstra fuldførelser også tokens.
I Chat Completions genereres flere valgmuligheder, når n indstilles til en værdi over 1. Du betaler for de tokens, der genereres på tværs af disse valgmuligheder.
I den ældre Completions API kan best_of generere kandidater, som ikke alle returneres. Eksempelvis kan best_of = 3 generere op til 3 × max_tokens fuldførelsestokens på tværs af kandidaterne.
Disse parametre er specifikke for det enkelte endepunkt. Gå ikke ud fra, at n eller best_of understøttes af en anden API eller model.
