4.1 maybe

This commit is contained in:
reanon
2025-04-14 21:07:38 +00:00
parent 83676caa8b
commit 64e07a0429
6 changed files with 44 additions and 0 deletions
+6
View File
@@ -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,
+18
View File
@@ -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
+8
View File
@@ -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