4.1 maybe
This commit is contained in:
@@ -19,6 +19,9 @@ const MODEL_FAMILY_FRIENDLY_NAME: { [f in ModelFamily]: string } = {
|
||||
"gpt4-32k": "GPT-4 32k",
|
||||
"gpt4-turbo": "GPT-4 Turbo",
|
||||
gpt4o: "GPT-4o",
|
||||
gpt41: "GPT-4.1",
|
||||
"gpt41-mini": "GPT-4.1 Mini",
|
||||
"gpt41-nano": "GPT-4.1 Nano",
|
||||
gpt45: "GPT-4.5",
|
||||
o1: "OpenAI o1",
|
||||
"o1-mini": "OpenAI o1 mini",
|
||||
@@ -47,6 +50,9 @@ const MODEL_FAMILY_FRIENDLY_NAME: { [f in ModelFamily]: string } = {
|
||||
"azure-gpt4-turbo": "Azure GPT-4 Turbo",
|
||||
"azure-gpt4o": "Azure GPT-4o",
|
||||
"azure-gpt45": "Azure GPT-4.5",
|
||||
"azure-gpt41": "Azure GPT-4.1",
|
||||
"azure-gpt41-mini": "Azure GPT-4.1 Mini",
|
||||
"azure-gpt41-nano": "Azure GPT-4.1 Nano",
|
||||
"azure-o1": "Azure o1",
|
||||
"azure-o1-mini": "Azure o1 mini",
|
||||
"azure-o3-mini": "Azure o3 mini",
|
||||
|
||||
@@ -60,6 +60,12 @@ export const validateContextSize: RequestPreprocessor = async (req) => {
|
||||
modelMax = 128000;
|
||||
} else if (model.match(/^gpt-4.5/)) {
|
||||
modelMax = 128000;
|
||||
} else if (model.match(/^gpt-4\.1(-\d{4}-\d{2}-\d{2})?$/)) {
|
||||
modelMax = 1000000;
|
||||
} else if (model.match(/^gpt-4\.1-mini(-\d{4}-\d{2}-\d{2})?$/)) {
|
||||
modelMax = 1000000;
|
||||
} else if (model.match(/^gpt-4\.1-nano(-\d{4}-\d{2}-\d{2})?$/)) {
|
||||
modelMax = 1000000;
|
||||
} else if (model.match(/^chatgpt-4o/)) {
|
||||
modelMax = 128000;
|
||||
} else if (model.match(/gpt-4-turbo(-\d{4}-\d{2}-\d{2})?$/)) {
|
||||
|
||||
@@ -74,6 +74,9 @@ export class AzureOpenAIKeyProvider implements KeyProvider<AzureOpenAIKey> {
|
||||
"azure-gpt4-turboTokens": 0,
|
||||
"azure-gpt4oTokens": 0,
|
||||
"azure-gpt45Tokens": 0,
|
||||
"azure-gpt41Tokens": 0,
|
||||
"azure-gpt41-miniTokens": 0,
|
||||
"azure-gpt41-nanoTokens": 0,
|
||||
"azure-o1Tokens": 0,
|
||||
"azure-o1-miniTokens": 0,
|
||||
"azure-o3-miniTokens": 0,
|
||||
|
||||
@@ -114,6 +114,9 @@ export class OpenAIKeyProvider implements KeyProvider<OpenAIKey> {
|
||||
"gpt4-turboTokens": 0,
|
||||
gpt4oTokens: 0,
|
||||
gpt45Tokens: 0,
|
||||
gpt41Tokens: 0,
|
||||
"gpt41-minitokens": 0,
|
||||
"gpt41-nanotokens": 0,
|
||||
"o1Tokens": 0,
|
||||
"o1-miniTokens": 0,
|
||||
"o3-miniTokens": 0,
|
||||
|
||||
@@ -24,6 +24,9 @@ export type OpenAIModelFamily =
|
||||
| "gpt4-32k"
|
||||
| "gpt4-turbo"
|
||||
| "gpt4o"
|
||||
| "gpt41"
|
||||
| "gpt41-mini"
|
||||
| "gpt41-nano"
|
||||
| "gpt45"
|
||||
| "o1"
|
||||
| "o1-mini"
|
||||
@@ -68,6 +71,9 @@ export const MODEL_FAMILIES = (<A extends readonly ModelFamily[]>(
|
||||
"gpt4-turbo",
|
||||
"gpt4o",
|
||||
"gpt45",
|
||||
"gpt41",
|
||||
"gpt41-mini",
|
||||
"gpt41-nano",
|
||||
"o1",
|
||||
"o1-mini",
|
||||
"o3-mini",
|
||||
@@ -95,6 +101,9 @@ export const MODEL_FAMILIES = (<A extends readonly ModelFamily[]>(
|
||||
"azure-gpt4-turbo",
|
||||
"azure-gpt4o",
|
||||
"azure-gpt45",
|
||||
"azure-gpt41",
|
||||
"azure-gpt41-mini",
|
||||
"azure-gpt41-nano",
|
||||
"azure-dall-e",
|
||||
"azure-o1",
|
||||
"azure-o1-mini",
|
||||
@@ -126,6 +135,9 @@ export const MODEL_FAMILY_SERVICE: {
|
||||
"gpt4-32k": "openai",
|
||||
gpt4o: "openai",
|
||||
gpt45: "openai",
|
||||
gpt41: "openai",
|
||||
"gpt41-mini": "openai",
|
||||
"gpt41-nano": "openai",
|
||||
"o1": "openai",
|
||||
"o1-mini": "openai",
|
||||
"o3-mini": "openai",
|
||||
@@ -146,6 +158,9 @@ export const MODEL_FAMILY_SERVICE: {
|
||||
"azure-gpt4-turbo": "azure",
|
||||
"azure-gpt4o": "azure",
|
||||
"azure-gpt45": "azure",
|
||||
"azure-gpt41": "azure",
|
||||
"azure-gpt41-mini": "azure",
|
||||
"azure-gpt41-nano": "azure",
|
||||
"azure-dall-e": "azure",
|
||||
"azure-o1": "azure",
|
||||
"azure-o1-mini": "azure",
|
||||
@@ -163,6 +178,9 @@ export const IMAGE_GEN_MODELS: ModelFamily[] = ["dall-e", "azure-dall-e"];
|
||||
|
||||
export const OPENAI_MODEL_FAMILY_MAP: { [regex: string]: OpenAIModelFamily } = {
|
||||
"^gpt-4\\.5(-preview)?(-\\d{4}-\\d{2}-\\d{2})?$": "gpt45",
|
||||
"^gpt-4\\.1(-\\d{4}-\\d{2}-\\d{2})?$": "gpt41",
|
||||
"^gpt-4\\.1-mini(-\\d{4}-\\d{2}-\\d{2})?$": "gpt41-mini",
|
||||
"^gpt-4\\.1-nano(-\\d{4}-\\d{2}-\\d{2})?$": "gpt41-nano",
|
||||
"^gpt-4o(-\\d{4}-\\d{2}-\\d{2})?$": "gpt4o",
|
||||
"^chatgpt-4o": "gpt4o",
|
||||
"^gpt-4o-mini(-\\d{4}-\\d{2}-\\d{2})?$": "turbo", // closest match
|
||||
|
||||
@@ -6,6 +6,14 @@ import { ModelFamily } from "./models";
|
||||
export function getTokenCostUsd(model: ModelFamily, tokens: number) {
|
||||
let cost = 0;
|
||||
switch (model) {
|
||||
case "gpt41":
|
||||
case "azure-gpt41":
|
||||
case "gpt41-mini":
|
||||
case "azure-gpt41-mini":
|
||||
case "gpt41-nano":
|
||||
case "azure-gpt41-nano":
|
||||
cost = 0.0000001;
|
||||
break;
|
||||
case "gpt45":
|
||||
case "azure-gpt45":
|
||||
// $75/$150 for 1M input/output tokens pricing, averaged to $80
|
||||
|
||||
Reference in New Issue
Block a user