UNPKG

gpt-tokenizer

Version:

A pure JavaScript implementation of a BPE tokenizer (Encoder/Decoder) for GPT-2 / GPT-3 / GPT-4 and other OpenAI models

141 lines (120 loc) 2.68 kB
export type ModelKind = 'chat' | 'other' | 'reasoning' export type RateLimitTier = | 'free' | 'tier_free' | 'tier_1' | 'tier_2' | 'tier_3' | 'tier_4' | 'tier_5' export interface RateLimit { rpm?: number | string rpd?: number tpm?: number | string ipm?: number | string batch_queue_limit?: number } export interface RateLimitGroup { name: string tooltip?: string rate_limits: Partial<Record<RateLimitTier, RateLimit>> } export type RateLimits = Record<RateLimitTier, RateLimit> | RateLimitGroup[] export type SupportedTool = | 'function_calling' | 'web_search' | 'file_search' | 'image_generation' | 'code_interpreter' | 'mcp' export interface ModelConfig { name: string slug: string display_name?: string current_snapshot: string tagline?: string description?: string type: ModelKind supported_tools?: SupportedTool[] snapshots: string[] compare_prices?: string[] point_to?: string examples?: string[] | null grouped_models?: string[] | null playground_url?: string video_url?: string video_thumbnail?: string /** either a map keyed by RateLimitTier… */ rate_limits?: | Partial< Record<RateLimitTier, RateLimit | null> > /** …or an array of named groups */ | RateLimitGroup[] deprecated?: boolean } export type Modality = 'audio' | 'image' | 'text' export type Endpoint = | 'assistants' | 'batch' | 'chat_completions' | 'completions' | 'embeddings' | 'fine_tuning' | 'image_edit' | 'image_generation' | 'moderation' | 'realtime' | 'responses' | 'speech_generation' | 'transcription' | 'translation' export type Feature = | 'agents' | 'distillation' | 'evals' | 'file_search' | 'file_uploads' | 'fine_tuning' | 'function_calling' | 'image_input' | 'inpainting' | 'predicted_outputs' | 'prompt_caching' | 'stored_completions' | 'streaming' | 'structured_outputs' | 'system_messages' | 'web_search' export interface Modalities { input: Modality[] output: Modality[] } export interface PriceData { main?: { input?: number output?: number cached_input?: number cached_output?: number } batch?: { input?: number output?: number cached_input?: number cached_output?: number } } export interface ModelSpec { name: string slug: string performance?: number latency?: number modalities: Modalities context_window?: number max_output_tokens?: number knowledge_cutoff?: Date supported_endpoints: Endpoint[] supported_features?: Feature[] reasoning_tokens?: boolean price_data?: PriceData current_snapshot?: string deprecated?: boolean }