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

963 lines (872 loc) 27.3 kB
import type { EncodingName } from './mapping.js' // this data is compiled from: // - https://platform.openai.com/docs/models/ // - https://platform.openai.com/docs/deprecations/ // - https://openai.com/api/pricing/ export interface CostEstimate { input?: number output?: number /** batch API input cost */ batchInput?: number /** batch API output cost */ batchOutput?: number /** cached input cost */ cachedInput?: number /** training cost per million tokens */ training?: number } export interface Model { humanName: string encoding: EncodingName description: string /** YYYY-MM-DD for when the model is shut down */ shutdownDate?: string recommendedReplacement?: string /** how many tokens fit in the context window? */ context?: number /** how many tokens can be in the generated output? */ maxOutput?: number /** how many tokens can be in the input */ maxInput?: number /** in YYYY-MM, e.g. 2023-10 for "up to Oct 2023" */ trainingData?: string /** cost per million tokens in USD */ cost?: CostEstimate } const gpt4oAugust2024: Model = { humanName: 'GPT-4o (Aug 2024)', description: 'Our high-intelligence flagship model for complex, multi-step tasks. GPT-4o is cheaper and faster than GPT-4 Turbo. Currently points to gpt-4o-2024-08-06.', encoding: 'o200k_base', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 2.5, output: 10, batchInput: 1.25, batchOutput: 5, cachedInput: 1.25, }, } const gpt4oNovember2024: Model = { humanName: 'GPT-4o (Nov 2024)', description: 'November 2024 snapshot of the GPT-4o model with enhanced capabilities.', encoding: 'o200k_base', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 2.5, output: 10, batchInput: 1.25, batchOutput: 5, cachedInput: 1.25, }, } const gpt4oMay2024: Model = { humanName: 'GPT-4o', description: 'Original gpt-4o snapshot from May 13, 2024, offering advanced multimodal capabilities.', encoding: 'o200k_base', context: 128_000, maxOutput: 4_096, trainingData: '2023-10', cost: { input: 5, output: 15, batchInput: 2.5, batchOutput: 7.5 }, } const gpt4oMiniJuly2024: Model = { humanName: 'GPT-4o Mini', description: 'Our affordable and intelligent small model for fast, lightweight tasks. GPT-4o mini is cheaper and more capable than GPT-3.5 Turbo. Currently points to gpt-4o-mini-2024-07-18.', encoding: 'o200k_base', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 0.15, output: 0.6, batchInput: 0.075, batchOutput: 0.3, cachedInput: 0.075, }, } const o1December2024: Model = { humanName: 'OpenAI o1', description: 'Our most intelligent model, optimal for complex tasks requiring deep understanding and expertise. Currently points to o1-2024-12-17.', encoding: 'o200k_base', context: 128_000, maxOutput: 32_768, trainingData: '2023-10', cost: { input: 15, output: 60, batchInput: 7.5, batchOutput: 30, cachedInput: 7.5, }, } const o1PreviewSeptember2024: Model = { humanName: 'OpenAI o1-preview', description: 'Preview version of the o1 model: o1-preview-2024-09-12.', encoding: 'o200k_base', context: 128_000, maxOutput: 32_768, trainingData: '2023-10', cost: { input: 15, output: 60, batchInput: 7.5, batchOutput: 30, cachedInput: 7.5, }, } const o1MiniSeptember2024: Model = { humanName: 'OpenAI o1-mini', description: 'Points to the most recent o1-mini snapshot: o1-mini-2024-09-12.', encoding: 'o200k_base', context: 128_000, maxOutput: 65_536, trainingData: '2023-10', cost: { input: 1.1, output: 4.4, batchInput: 0.55, batchOutput: 2.2, cachedInput: 0.55, }, } const o3MiniModel: Model = { humanName: 'OpenAI o3-mini', description: "Small cost-efficient reasoning model that's optimized for coding, math, and science, and supports tools and Structured Outputs.", encoding: 'o200k_base', context: 200_000, maxOutput: 65_536, trainingData: '2023-10', cost: { input: 1.1, output: 4.4, batchInput: 0.55, batchOutput: 2.2, cachedInput: 0.55, }, } const textEmbedding3Small: Model = { humanName: 'Text Embedding 3 Small', description: 'Embedding model for small-scale applications.', encoding: 'cl100k_base', maxInput: 8_191, cost: { input: 0.02, batchInput: 0.01 }, } const textEmbedding3Large: Model = { humanName: 'Text Embedding 3 Large', description: 'Embedding model for large-scale applications.', encoding: 'cl100k_base', maxInput: 8_191, cost: { input: 0.13, batchInput: 0.065 }, } const textEmbeddingAdaV2: Model = { humanName: 'Ada v2', description: 'A versatile model suitable for text embeddings and lightweight NLP tasks.', encoding: 'cl100k_base', maxInput: 8_191, cost: { input: 0.1, output: 0, batchInput: 0.05, batchOutput: 0 }, } // realtime audio const gpt4oRealtimePreview: Model = { humanName: 'GPT-4o Realtime Preview', encoding: 'o200k_base', description: 'Preview release for the Realtime API.', context: 128_000, maxOutput: 4_096, trainingData: '2023-10', cost: { input: 5, output: 20, cachedInput: 2.5, }, } const gpt4oRealtimePreview20241001: Model = { humanName: 'GPT-4o Realtime Preview (Oct 2024)', encoding: 'o200k_base', description: 'Current snapshot for the Realtime API model.', context: 128_000, maxOutput: 4_096, trainingData: '2023-10', cost: { input: 5, output: 20, cachedInput: 2.5, }, } const gpt4oRealtimePreviewDecember2024: Model = { humanName: 'GPT-4o Realtime Preview (Dec 2024)', encoding: 'o200k_base', description: 'December 2024 snapshot for the Realtime API model.', context: 128_000, maxOutput: 4_096, trainingData: '2023-10', cost: { input: 5, output: 20, cachedInput: 2.5, }, } const gpt4oMiniRealtimePreviewDecember2024: Model = { humanName: 'GPT-4o Mini Realtime Preview (Dec 2024)', encoding: 'o200k_base', description: 'Mini version for the Realtime API with December 2024 snapshot.', context: 128_000, maxOutput: 4_096, trainingData: '2023-10', cost: { input: 0.6, output: 2.4, cachedInput: 0.3, }, } const gpt4oAudioPreview: Model = { humanName: 'GPT-4o Audio Preview', encoding: 'o200k_base', description: 'Preview release for audio inputs in chat completions.', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 2.5, output: 10, }, } const gpt4oAudioPreview20241001: Model = { humanName: 'GPT-4o Audio Preview (Oct 2024)', encoding: 'o200k_base', description: 'Current snapshot for the Audio API model.', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 2.5, output: 10, }, } const gpt4oAudioPreviewDecember2024: Model = { humanName: 'GPT-4o Audio Preview (Dec 2024)', encoding: 'o200k_base', description: 'December 2024 snapshot for the Audio API model.', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 2.5, output: 10, }, } const gpt4oMiniAudioPreviewDecember2024: Model = { humanName: 'GPT-4o Mini Audio Preview (Dec 2024)', encoding: 'o200k_base', description: 'Mini version for the Audio API with December 2024 snapshot.', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 0.15, output: 0.6, }, } // finetuning and training const gpt4oFinetuning: Model = { humanName: 'GPT-4o 2024-08-06 Finetuning', description: 'GPT-4o finetuned for custom tasks.', encoding: 'o200k_base', cost: { input: 3.75, output: 15, batchInput: 1.875, batchOutput: 7.5, cachedInput: 1.875, training: 25, }, } const gpt4oMiniFinetuning: Model = { humanName: 'GPT-4o Mini 2024-07-18 Finetuning', description: 'GPT-4o mini finetuned for custom tasks.', encoding: 'o200k_base', cost: { input: 0.3, output: 1.2, batchInput: 0.15, batchOutput: 0.6, cachedInput: 0.15, training: 3, }, } const gpt35TurboFinetune: Model = { humanName: 'GPT-3.5 Turbo Finetuning', description: 'Finetuning GPT-3.5 Turbo with custom data.', encoding: 'cl100k_base', cost: { input: 3, output: 6, batchInput: 1.5, batchOutput: 3, training: 8, }, } const gpt4oMiniTrainingJuly2024: Model = { humanName: 'GPT-4o Mini Training', description: 'Training GPT-4o Mini with custom datasets.', encoding: 'o200k_base', cost: { input: 3, output: 0, batchInput: 1.5, batchOutput: 0 }, } const gpt35Turbo16k: Model = { humanName: 'GPT-3.5 Turbo 16k', description: 'GPT-3.5 model with 16k token context.', encoding: 'cl100k_base', cost: { input: 3, output: 4, batchInput: 1.5, batchOutput: 2 }, } const gpt4TurboApril2024: Model = { humanName: 'GPT-4 Turbo 2024-04-09', description: 'The latest GPT-4 Turbo model with vision capabilities. Vision requests can now use JSON mode and function calling. Currently points to gpt-4-turbo-2024-04-09.', encoding: 'cl100k_base', context: 128_000, maxOutput: 4_096, trainingData: '2023-12', cost: { input: 10, output: 30, batchInput: 5, batchOutput: 15 }, } const chatgpt4oLatest: Model = { humanName: 'ChatGPT 4o Latest', description: 'The chatgpt-4o-latest model version continuously points to the version of GPT-4o used in ChatGPT, and is updated frequently when there are significant changes.', encoding: 'o200k_base', context: 128_000, maxOutput: 16_384, trainingData: '2023-10', cost: { input: 5, output: 15 }, } const gpt40613: Model = { humanName: 'GPT-4', description: 'Currently points to gpt-4-0613. See continuous model upgrades.', encoding: 'cl100k_base', context: 8_192, maxOutput: 8_192, trainingData: '2021-09', cost: { input: 30, output: 60, batchInput: 15, batchOutput: 30 }, } const gpt40125Preview: Model = { humanName: 'GPT-4 0125 Preview', description: 'GPT-4 Turbo preview model intended to reduce cases of “laziness” where the model doesn’t complete a task.', encoding: 'cl100k_base', context: 128_000, maxOutput: 4_096, trainingData: '2023-12', cost: { input: 10, output: 30, batchInput: 5, batchOutput: 15 }, } const gpt41106Preview: Model = { ...gpt40125Preview, humanName: 'GPT-4 1106 Preview', } const gpt35Turbo0125: Model = { humanName: 'GPT-3.5 Turbo 0125', description: 'The latest GPT-3.5 Turbo model with higher accuracy at responding in requested formats and a fix for a bug which caused a text encoding issue for non-English language function calls.', encoding: 'cl100k_base', context: 16_385, maxOutput: 4_096, trainingData: '2021-09', cost: { input: 0.5, output: 1.5, batchInput: 0.25, batchOutput: 0.75 }, } const gpt35TurboInstruct: Model = { humanName: 'GPT-3.5 Turbo Instruct', description: 'Similar capabilities as GPT-3 era models. Compatible with legacy Completions endpoint and not Chat Completions.', encoding: 'cl100k_base', context: 4_096, maxOutput: 4_096, trainingData: '2021-09', cost: { input: 1.5, output: 2 }, } const gpt35Turbo1106: Model = { humanName: 'GPT-3.5 Turbo 1106', description: 'GPT-3.5 Turbo model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more.', encoding: 'cl100k_base', context: 16_385, maxOutput: 4_096, trainingData: '2021-09', cost: { input: 1, output: 2, batchInput: 0.5, batchOutput: 1 }, } const davinci002: Model = { humanName: 'Davinci 002', description: 'Replacement for the GPT-3 curie and davinci base models.', encoding: 'p50k_base', context: 16_384, maxOutput: 16_384, trainingData: '2021-09', cost: { input: 2, output: 2, batchInput: 1, batchOutput: 1 }, } const davinci002Finetune: Model = { humanName: 'Davinci-002 Finetuning', description: 'Davinci-002 finetuned for custom tasks.', encoding: 'p50k_base', cost: { input: 12, output: 12, batchInput: 6, batchOutput: 6, training: 6, }, } const babbage002: Model = { humanName: 'Babbage 002', description: 'Replacement for the GPT-3 ada and babbage base models.', encoding: 'p50k_base', context: 16_384, trainingData: '2021-09', cost: { input: 0.4, output: 0.4, batchInput: 0.2, batchOutput: 0.2 }, } const babbage002Finetune: Model = { humanName: 'Babbage-002 Finetuning', description: 'Babbage-002 finetuned for custom tasks.', encoding: 'p50k_base', cost: { input: 1.6, output: 1.6, batchInput: 0.8, batchOutput: 0.8, training: 0.4, }, } // deprecated models: const gpt432k0613: Model = { humanName: 'GPT-4 32k', encoding: 'cl100k_base', description: 'Snapshot of gpt-4 from June 13th 2023 with improved function calling support.', shutdownDate: '2025-06-06', recommendedReplacement: 'gpt-4o', context: 32_768, maxOutput: 16_384, trainingData: '2021-09', cost: { input: 60, output: 120, batchInput: 30, batchOutput: 60 }, } const gpt4VisionPreview: Model = { humanName: 'GPT-4 Vision Preview', encoding: 'cl100k_base', description: 'Vision capabilities preview of GPT-4.', shutdownDate: '2024-12-06', recommendedReplacement: 'gpt-4o', context: 128_000, maxOutput: 4_096, trainingData: '2023-12', cost: { input: 10, output: 30, batchInput: 5, batchOutput: 15 }, } const gpt41106VisionPreview = gpt4VisionPreview const gpt35Turbo0613: Model = { humanName: 'GPT-3.5 Turbo 0613', encoding: 'cl100k_base', description: 'Version of GPT-3.5 Turbo from June 2013.', shutdownDate: '2024-09-13', recommendedReplacement: 'gpt-3.5-turbo', context: 16_385, maxOutput: 4_096, trainingData: '2021-09', cost: { input: 1.5, output: 2, batchInput: 0.75, batchOutput: 1 }, } const gpt35Turbo16k0613: Model = { humanName: 'GPT-3.5 Turbo 16k 0613', encoding: 'cl100k_base', description: '16k context version from June 2013.', shutdownDate: '2024-09-13', recommendedReplacement: 'gpt-3.5-turbo', context: 16_385, maxOutput: 4_096, trainingData: '2021-09', cost: { input: 3, output: 4, batchInput: 1.5, batchOutput: 2 }, } const textAda001: Model = { humanName: 'Text Ada 001', encoding: 'r50k_base', description: 'Model for lightweight tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'gpt-3.5-turbo-instruct', cost: { input: 0.4 }, } const textBabbage001: Model = { humanName: 'Text Babbage 001', encoding: 'r50k_base', description: 'Model for efficient processing.', shutdownDate: '2024-01-04', recommendedReplacement: 'gpt-3.5-turbo-instruct', cost: { input: 0.5 }, } const textCurie001: Model = { humanName: 'Text Curie 001', encoding: 'r50k_base', description: 'Mid-range model for various tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'gpt-3.5-turbo-instruct', cost: { input: 2 }, } const textDavinci001: Model = { humanName: 'Text Davinci 001', encoding: 'r50k_base', description: 'High-performance model for complex tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'gpt-3.5-turbo-instruct', cost: { input: 20 }, } const textDavinci002: Model = { humanName: 'Text Davinci 002', encoding: 'p50k_base', description: 'Legacy high-performance model.', shutdownDate: '2024-01-04', recommendedReplacement: 'gpt-3.5-turbo-instruct', cost: { input: 20 }, } const textDavinci003: Model = { humanName: 'Text Davinci 003', encoding: 'p50k_base', description: 'Latest of the Davinci series.', shutdownDate: '2024-01-04', recommendedReplacement: 'gpt-3.5-turbo-instruct', cost: { input: 20 }, } const ada: Model = { humanName: 'Ada', encoding: 'r50k_base', description: 'Base model for lightweight tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'babbage-002', cost: { input: 0.4 }, } const babbage: Model = { humanName: 'Babbage', encoding: 'r50k_base', description: 'Model for efficient processing.', shutdownDate: '2024-01-04', recommendedReplacement: 'babbage-002', cost: { input: 0.5 }, } const curie: Model = { humanName: 'Curie', encoding: 'r50k_base', description: 'Mid-range model for a variety of applications.', shutdownDate: '2024-01-04', recommendedReplacement: 'davinci-002', cost: { input: 2 }, } const davinci: Model = { humanName: 'Davinci', encoding: 'p50k_base', description: 'High-performance legacy model.', shutdownDate: '2024-01-04', recommendedReplacement: 'davinci-002', cost: { input: 20 }, } const codeDavinci002: Model = { humanName: 'Code Davinci 002', encoding: 'p50k_base', description: 'Legacy coding model.', shutdownDate: '2023-03-23', recommendedReplacement: 'gpt-4o', } const codeDavinci001: Model = { humanName: 'Code Davinci 001', encoding: 'p50k_base', description: 'Older coding model.', shutdownDate: '2023-03-23', recommendedReplacement: 'gpt-4o', } const codeDavinciEdit001: Model = { humanName: 'Code Davinci 001', encoding: 'p50k_edit', description: 'Older coding model.', shutdownDate: '2023-03-23', } const codeCushman002: Model = { humanName: 'Code Cushman 002', encoding: 'p50k_base', description: 'Legacy model for coding.', shutdownDate: '2023-03-23', recommendedReplacement: 'gpt-4o', } const codeCushman001: Model = { humanName: 'Code Cushman 001', encoding: 'p50k_base', description: 'Older model for coding tasks.', shutdownDate: '2023-03-23', recommendedReplacement: 'gpt-4o', } const gpt40314: Model = { humanName: 'GPT-4 0314', encoding: 'cl100k_base', description: 'Variant of GPT-4 model.', shutdownDate: '2024-06-13', recommendedReplacement: 'gpt-4o', context: 8_192, maxOutput: 8_192, trainingData: '2021-09', cost: { input: 30, output: 60 }, } const gpt35Turbo0301: Model = { humanName: 'GPT-3.5 Turbo 0301', encoding: 'cl100k_base', description: 'Earlier version of GPT-3.5 Turbo.', shutdownDate: '2024-09-13', recommendedReplacement: 'gpt-3.5-turbo', context: 16_385, maxOutput: 4_096, trainingData: '2021-09', cost: { input: 1.5, output: 2, batchInput: 0.75, batchOutput: 1 }, } const gpt432k0314: Model = { ...gpt432k0613, humanName: 'GPT-4 32k 0314', } const textSimilarityAda001: Model = { humanName: 'Text Similarity Ada 001', encoding: 'r50k_base', description: 'Embedding model for similarity tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 4 }, } const textSearchAdaDoc001: Model = { humanName: 'Text Search Ada Doc 001', encoding: 'r50k_base', description: 'Embedding model for document search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 4 }, } const textSearchAdaQuery001: Model = { humanName: 'Text Search Ada Query 001', encoding: 'r50k_base', description: 'Embedding model for query search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 4 }, } const codeSearchAdaCode001: Model = { humanName: 'Code Search Ada Code 001', encoding: 'r50k_base', description: 'Embedding model for code search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 4 }, } const codeSearchAdaText001: Model = { humanName: 'Code Search Ada Text 001', encoding: 'r50k_base', description: 'Embedding model for text search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 4 }, } const textDavinciEdit001: Model = { humanName: 'Text Davinci 001', encoding: 'p50k_edit', description: 'Older text model.', shutdownDate: '2023-03-23', } const textSimilarityBabbage001: Model = { humanName: 'Text Similarity Babbage 001', encoding: 'r50k_base', description: 'Embedding model for similarity tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 5 }, } const textSearchBabbageDoc001: Model = { humanName: 'Text Search Babbage Doc 001', encoding: 'r50k_base', description: 'Embedding model for document search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 5 }, } const textSearchBabbageQuery001: Model = { humanName: 'Text Search Babbage Query 001', encoding: 'r50k_base', description: 'Embedding model for query search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 5 }, } const codeSearchBabbageCode001: Model = { humanName: 'Code Search Babbage Code 001', encoding: 'r50k_base', description: 'Embedding model for code search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 5 }, } const codeSearchBabbageText001: Model = { humanName: 'Code Search Babbage Text 001', encoding: 'r50k_base', description: 'Embedding model for text search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 5 }, } const textSimilarityCurie001: Model = { humanName: 'Text Similarity Curie 001', encoding: 'r50k_base', description: 'Embedding model for similarity tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 20 }, } const textSearchCurieDoc001: Model = { humanName: 'Text Search Curie Doc 001', encoding: 'r50k_base', description: 'Embedding model for document search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 20 }, } const textSearchCurieQuery001: Model = { humanName: 'Text Search Curie Query 001', encoding: 'r50k_base', description: 'Embedding model for query search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 20 }, } const textSimilarityDavinci001: Model = { humanName: 'Text Similarity Davinci 001', encoding: 'r50k_base', description: 'Embedding model for similarity tasks.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 200 }, } const textSearchDavinciDoc001: Model = { humanName: 'Text Search Davinci Doc 001', encoding: 'r50k_base', description: 'Embedding model for document search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 200 }, } const textSearchDavinciQuery001: Model = { humanName: 'Text Search Davinci Query 001', encoding: 'r50k_base', description: 'Embedding model for query search.', shutdownDate: '2024-01-04', recommendedReplacement: 'text-embedding-3-small', cost: { input: 200 }, } export const chatEnabledModels = { o1: o1December2024, 'o1-2024-12-17': o1December2024, 'o1-preview': o1PreviewSeptember2024, 'o1-preview-2024-09-12': o1PreviewSeptember2024, 'o1-mini': o1MiniSeptember2024, 'o1-mini-2024-09-12': o1MiniSeptember2024, 'o3-mini': o3MiniModel, 'chatgpt-4o-latest': chatgpt4oLatest, 'gpt-4o': gpt4oAugust2024, 'gpt-4o-2024-11-20': gpt4oNovember2024, 'gpt-4o-2024-08-06': gpt4oAugust2024, 'gpt-4o-2024-05-13': gpt4oMay2024, 'gpt-4o-mini': gpt4oMiniJuly2024, 'gpt-4o-mini-2024-07-18': gpt4oMiniJuly2024, // audio models: 'gpt-4o-realtime-preview': gpt4oRealtimePreview, 'gpt-4o-realtime-preview-2024-10-01': gpt4oRealtimePreview20241001, 'gpt-4o-realtime-preview-2024-12-17': gpt4oRealtimePreviewDecember2024, 'gpt-4o-mini-realtime-preview': gpt4oMiniRealtimePreviewDecember2024, 'gpt-4o-mini-realtime-preview-2024-12-17': gpt4oMiniRealtimePreviewDecember2024, 'gpt-4o-audio-preview': gpt4oAudioPreview, 'gpt-4o-audio-preview-2024-10-01': gpt4oAudioPreview20241001, 'gpt-4o-audio-preview-2024-12-17': gpt4oAudioPreviewDecember2024, 'gpt-4o-mini-audio-preview': gpt4oMiniAudioPreviewDecember2024, 'gpt-4o-mini-audio-preview-2024-12-17': gpt4oMiniAudioPreviewDecember2024, // finetune and training: 'gpt-4o-2024-08-06-finetune': gpt4oFinetuning, 'gpt-4o-mini-2024-07-18-finetune': gpt4oMiniFinetuning, 'gpt-4o-mini-training': gpt4oMiniTrainingJuly2024, 'gpt-4o-mini-training-2024-07-18': gpt4oMiniTrainingJuly2024, 'davinci-002-finetune': davinci002Finetune, 'babbage-002-finetune': babbage002Finetune, // older models: 'gpt-4-turbo': gpt4TurboApril2024, 'gpt-4-turbo-2024-04-09': gpt4TurboApril2024, 'gpt-4-turbo-preview': gpt40125Preview, 'gpt-4-0125-preview': gpt40125Preview, 'gpt-4-1106-preview': gpt41106Preview, 'gpt-4': gpt40613, 'gpt-4-0613': gpt40613, 'gpt-3.5-turbo': gpt35Turbo0125, 'gpt-3.5-turbo-0125': gpt35Turbo0125, 'gpt-3.5-turbo-1106': gpt35Turbo1106, 'gpt-3.5-turbo-finetune': gpt35TurboFinetune, 'gpt-3.5-turbo-16k': gpt35Turbo16k, // -- deprecated models -- // 'gpt-4-32k': gpt432k0613, 'gpt-4-32k-0613': gpt432k0613, 'gpt-4-vision-preview': gpt4VisionPreview, 'gpt-4-1106-vision-preview': gpt41106VisionPreview, 'gpt-4-0314': gpt40314, 'gpt-4-32k-0314': gpt432k0314, 'gpt-3.5-turbo-0613': gpt35Turbo0613, 'gpt-3.5-turbo-16k-0613': gpt35Turbo16k0613, 'gpt-3.5-turbo-0301': gpt35Turbo0301, } as const satisfies Record<string, Model> export const models = { ...chatEnabledModels, // embedding models: 'text-embedding-3-small': textEmbedding3Small, 'text-embedding-3-large': textEmbedding3Large, 'text-embedding-ada-002': textEmbeddingAdaV2, // older models: 'gpt-3.5-turbo-instruct': gpt35TurboInstruct, 'gpt-3.5-turbo-instruct-0914': gpt35TurboInstruct, 'davinci-002': davinci002, 'babbage-002': babbage002, // -- deprecated models -- // 'text-ada-001': textAda001, 'text-babbage-001': textBabbage001, 'text-curie-001': textCurie001, 'text-davinci-001': textDavinci001, 'text-davinci-002': textDavinci002, 'text-davinci-003': textDavinci003, ada, babbage, curie, davinci, // code models: 'code-davinci-002': codeDavinci002, 'code-davinci-001': codeDavinci001, 'davinci-codex': codeDavinci001, 'code-davinci-edit-001': codeDavinciEdit001, 'code-cushman-002': codeCushman002, 'code-cushman-001': codeCushman001, 'cushman-codex': codeCushman001, 'code-search-ada-code-001': codeSearchAdaCode001, 'code-search-ada-text-001': codeSearchAdaText001, // text models: 'text-davinci-edit-001': textDavinciEdit001, 'text-similarity-ada-001': textSimilarityAda001, 'text-search-ada-doc-001': textSearchAdaDoc001, 'text-search-ada-query-001': textSearchAdaQuery001, 'text-similarity-babbage-001': textSimilarityBabbage001, 'text-search-babbage-doc-001': textSearchBabbageDoc001, 'text-search-babbage-query-001': textSearchBabbageQuery001, 'code-search-babbage-code-001': codeSearchBabbageCode001, 'code-search-babbage-text-001': codeSearchBabbageText001, 'text-similarity-curie-001': textSimilarityCurie001, 'text-search-curie-doc-001': textSearchCurieDoc001, 'text-search-curie-query-001': textSearchCurieQuery001, 'text-similarity-davinci-001': textSimilarityDavinci001, 'text-search-davinci-doc-001': textSearchDavinciDoc001, 'text-search-davinci-query-001': textSearchDavinciQuery001, } as const satisfies Record<string, Model>