From 717e14b823d25aac265776ce5b5cd7c1ba4e4073 Mon Sep 17 00:00:00 2001 From: sinan-shaban Date: Thu, 9 Nov 2023 17:29:40 +0200 Subject: [PATCH] Add GPT-4 Turbo preview model --- types/openai.ts | 8 ++++++++ utils/server/tiktoken.ts | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/types/openai.ts b/types/openai.ts index 6e7abbdcae..059fb0a54d 100644 --- a/types/openai.ts +++ b/types/openai.ts @@ -7,6 +7,7 @@ export enum OpenAIModelID { GPT_3_5_16K_AZ = 'gpt-35-turbo-16k', GPT_4 = 'gpt-4', GPT_4_32K = 'gpt-4-32k', + GPT_4_128K = 'gpt-4-1106-preview', TEXT_EMBEDDING_ADA_002 = 'text-embedding-ada-002', } @@ -72,6 +73,13 @@ export const OpenAIModels: Record = { tokenLimit: 32000, type: OpenAIModelType.CHAT }, + [OpenAIModelID.GPT_4_128K]: { + id: OpenAIModelID.GPT_4_128K, + name: 'GPT-4-128K', + maxLength: 384000, + tokenLimit: 128000, + type: OpenAIModelType.CHAT, + }, [OpenAIModelID.TEXT_EMBEDDING_ADA_002]: { id: OpenAIModelID.TEXT_EMBEDDING_ADA_002, name: 'TEXT-EMBEDDING-ADA-002', diff --git a/utils/server/tiktoken.ts b/utils/server/tiktoken.ts index d31cd46d43..6cd8a391fd 100644 --- a/utils/server/tiktoken.ts +++ b/utils/server/tiktoken.ts @@ -2,6 +2,7 @@ import cl100k from 'tiktoken/encoders/cl100k_base.json'; import p50k from 'tiktoken/encoders/p50k_base.json'; import { Tiktoken } from 'tiktoken/lite'; const { encoding_for_model } = require('tiktoken'); +import { OpenAIModelID } from "@/types/openai"; export const getTiktokenEncoding = async (model: string): Promise => { // Azure fix @@ -9,7 +10,10 @@ export const getTiktokenEncoding = async (model: string): Promise => { if (modelId.indexOf('text-davinci-') !== -1) { return new Tiktoken(p50k.bpe_ranks, p50k.special_tokens, p50k.pat_str); } - if (modelId.indexOf('gpt-3.5') !== -1 || modelId.indexOf('gpt-4') !== -1) { + if ( + (modelId.indexOf('gpt-3.5') !== -1 || modelId.indexOf('gpt-4') !== -1) && + modelId !== OpenAIModelID.GPT_4_128K + ) { return encoding_for_model(modelId, { '<|im_start|>': 100264, '<|im_end|>': 100265,