Oversikt
Tokener er enhetene OpenAI-modeller bruker til å behandle tekst. Et token kan representere et tegn, en del av et ord, et helt ord eller et skilletegn. Mellomrom påvirker også hvordan tekst deles inn i tokener.
Antall tokener er ikke det samme som antall ord. Den samme teksten kan gi ulike antall tokener avhengig av modellen, kodingen og språket.
Forstå hvordan tekst blir til tokener
Når du sender tekst til en modell:
Teksten deles inn i tokener.
Modellen behandler disse tokenene.
Modellen genererer utdatatokener. Disse kan omfatte teksten du mottar, og for resonneringsmodeller interne resonneringstokener som ikke vises som svartekst.
Bruk grove anslag for engelsk tekst
Disse anslagene kan hjelpe deg med å vurdere størrelsen på engelsk tekst:
1 token tilsvarer omtrent 4 tegn.
1 token tilsvarer omtrent tre firedeler av et ord.
100 tokener tilsvarer omtrent 75 ord.
Dette er anslag, ikke nøyaktige antall. Lengden på setninger og avsnitt varierer, og andre språk kan ha andre forhold mellom tegn, ord og tokener.
Ta hensyn til mellomrom og store og små bokstaver
Et ord kan deles inn i ulike tokener avhengig av stavemåte, bruk av store og små bokstaver og teksten rundt.
For eksempel inneholder red, Red og red ikke identisk tekst: Det siste eksemplet har et innledende mellomrom. En koding kan representere dem på forskjellige måter.
Token-ID-er avhenger også av kodingen. Ikke anta at en token-ID fra et eksempel gjelder for alle modeller.
Skill mellom inndata- og utdatatokener
| Kategori | Hva den beskriver |
| Inndatatokener | Tokener som sendes til modellen i en forespørsel. Disse kalles også prompttokener. |
| Utdatatokener | Tokener som genereres av modellen. Chat Completions kaller disse fullføringstokener. |
| Hurtigbufrede inndatatokener | Inndatatokener som gjenbrukes gjennom promptcaching. Prisen kan være en annen enn for inndatatokener som ikke er hurtigbufret. |
| Resonneringstokener | Tokener en resonneringsmodell bruker internt før den produserer det synlige svaret. |
Resonneringstokener vises ikke som svartekst, men de teller med i utdatabruken og faktureres som utdatatokener.
Et kort synlig svar kan derfor bruke flere tokener enn teksten som vises, skulle tilsi.
Tell tokener før du sender en forespørsel
Tell tokener i ren tekst
Bruk Tokenizer for å se hvordan tekst deles inn i tokener.
Bruk tiktoken for programmatisk tokenisering av ren tekst. Velg kodingen for målmodellen, for eksempel med tiktoken.encoding_for_model(model).
Et antall tokener for ren tekst omfatter ikke nødvendigvis alle tokenene i en API-forespørsel. Meldingsstruktur, verktøy, skjemaer, bilder og filer kan påvirke det samlede antallet inndatatokener.
Tell tokener for komplette Responses-inndata
Bruk API-et for telling av inndatatokener for komplette inndata til Responses-API-et.
Det godtar inndataformatene til Responses, blant annet meldinger, bilder, filer, verktøy og samtaler. Antallet omfatter formateringstokener som brukes i forespørselsstrukturen, for eksempel meldingsroller og grenser.
Antall inndatatokener forutsier ikke hvor mange utdatatokener modellen vil generere.
Kontroller faktisk tokenbruk
Etter en forespørsel kan du kontrollere bruksinformasjonen. Feltnavnene varierer etter endepunkt:
Chat Completions rapporterer prompt_tokens, completion_tokens og total_tokens.
Responses rapporterer input_tokens, output_tokens og total_tokens.
Du kan også se gjennom aktivitet over tid i kontrollpanelet for bruk. Du finner veiledning, blant annet om strømmebruk, i Gjennomgang av API-bruk og kostnader.
Hold deg innenfor modellgrensene
Se dokumentasjonen for modellen for informasjon om kontekstvinduet og maksimal utdata. Disse grensene kan variere mellom modeller.
Kontekstvinduet begrenser hvor mange tokener en modell kan arbeide med i en forespørsel. Modeller har også en grense for utdata. For resonneringsmodeller må du også sette av plass til resonneringstokener, i tillegg til det synlige svaret.
Hvis inndataene er for store, kan du:
Forkorte eller omformulere prompten.
Fjerne unødvendig eller gjentatt kontekst.
Dele store inndata i mindre deler.
Oppsummere eller forhåndsbehandle teksten før du sender den.
Bruk innstillingen for utdatatokener som støttes av endepunktet og modellen. Chat Completions bruker max_completion_tokens, mens Responses bruker max_output_tokens.
Disse grensene for forespørselsstørrelse er adskilt fra API-hastighetsgrenser og månedlige bruks- eller kostnadsgrenser. Se modelldokumentasjonen for modellen du bruker.
Forstå tokenpriser
Ved tokenbasert API-prising avhenger prisen av modellen og tokenkategorien. Inndatatokener, hurtigbufrede inndatatokener og utdatatokener kan ha ulike priser. Andre API-funksjoner kan bruke andre faktureringsenheter.
Se siden for API-priser for gjeldende priser.
Når du sammenligner modeller, bør du ta hensyn til samlet antall tokener og kostnaden for å fullføre oppgaven. En lavere pris per million tokener gir ikke nødvendigvis en lavere totalkostnad: Modeller kan tokenisere samme tekst forskjellig og generere ulike mengder utdata eller resonnering.
Test representative oppgaver i stedet for bare å sammenligne lengden på det synlige svaret.
Ta høyde for flere fullføringer
Når et endepunkt og en modell støtter generering av flere fullføringer, bruker disse ekstra fullføringene også tokener.
Hvis n settes høyere enn 1 for Chat Completions, genereres flere alternativer. Du belastes for de genererte tokenene i alle disse alternativene.
For det eldre Completions-API-et kan best_of generere kandidater som ikke alle returneres. For eksempel kan best_of = 3 generere opptil 3 × max_tokens fullføringstokener på tvers av kandidatene.
Disse parameterne er spesifikke for hvert endepunkt. Ikke anta at n eller best_of støttes av et annet API eller en annen modell.
