update models
This commit is contained in:
@@ -49,10 +49,24 @@ interface LogprobsContent {
|
||||
logprob: number;
|
||||
}
|
||||
|
||||
interface PromptTokensDetails {
|
||||
cached_tokens: number;
|
||||
audio_tokens: number;
|
||||
}
|
||||
|
||||
interface CompletionTokensDetails {
|
||||
reasoning_tokens: number;
|
||||
audio_tokens: number;
|
||||
accepted_prediction_tokens: number;
|
||||
rejected_prediction_tokens: number;
|
||||
}
|
||||
|
||||
export interface Usage {
|
||||
prompt_tokens: number;
|
||||
completion_tokens: number;
|
||||
total_tokens: number;
|
||||
prompt_tokens_details: PromptTokensDetails | null;
|
||||
completion_tokens_details: CompletionTokensDetails | null;
|
||||
response_model_name: string | null;
|
||||
}
|
||||
|
||||
@@ -96,11 +110,7 @@ export interface FetchResponse {
|
||||
object: string;
|
||||
created: number;
|
||||
model: string;
|
||||
usage: {
|
||||
prompt_tokens: number | undefined;
|
||||
completion_tokens: number | undefined;
|
||||
total_tokens: number | undefined;
|
||||
};
|
||||
usage: Usage;
|
||||
choices: {
|
||||
message: Message | undefined;
|
||||
finish_reason: "stop" | "length";
|
||||
|
||||
@@ -219,6 +219,8 @@ export default function ChatBOX() {
|
||||
completion_tokens: responseTokenCount,
|
||||
total_tokens: prompt_tokens + responseTokenCount,
|
||||
response_model_name: response_model_name,
|
||||
prompt_tokens_details: null,
|
||||
completion_tokens_details: null,
|
||||
};
|
||||
|
||||
if (usage) {
|
||||
@@ -226,6 +228,8 @@ export default function ChatBOX() {
|
||||
ret.completion_tokens = usage.completion_tokens ?? responseTokenCount;
|
||||
ret.total_tokens =
|
||||
usage.total_tokens ?? prompt_tokens + responseTokenCount;
|
||||
ret.prompt_tokens_details = usage.prompt_tokens_details ?? null;
|
||||
ret.completion_tokens_details = usage.completion_tokens_details ?? null;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -265,6 +269,8 @@ export default function ChatBOX() {
|
||||
completion_tokens: data.usage.completion_tokens ?? 0,
|
||||
total_tokens: data.usage.total_tokens ?? 0,
|
||||
response_model_name: data.model ?? null,
|
||||
prompt_tokens_details: data.usage.prompt_tokens_details ?? null,
|
||||
completion_tokens_details: data.usage.completion_tokens_details ?? null,
|
||||
};
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -3,112 +3,120 @@ interface Model {
|
||||
price: {
|
||||
prompt: number;
|
||||
completion: number;
|
||||
cached_prompt?: number;
|
||||
};
|
||||
}
|
||||
|
||||
const M = 1000 / 1000; // dollars per million tokens
|
||||
const K = 1000; // dollars per thousand tokens
|
||||
|
||||
export const models: Record<string, Model> = {
|
||||
"gpt-4o": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.005 / 1000, completion: 0.015 / 1000 },
|
||||
price: { prompt: 2.5 / M, cached_prompt: 1.25 / M, completion: 10 / M },
|
||||
},
|
||||
"gpt-4o-2024-11-20": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.0025 / 1000, completion: 0.01 / 1000 },
|
||||
price: { prompt: 2.5 / M, cached_prompt: 1.25 / M, completion: 10 / M },
|
||||
},
|
||||
"gpt-4o-2024-08-06": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.0025 / 1000, completion: 0.01 / 1000 },
|
||||
price: { prompt: 2.5 / M, cached_prompt: 1.25 / M, completion: 10 / M },
|
||||
},
|
||||
"gpt-4o-2024-05-13": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.005 / 1000, completion: 0.015 / 1000 },
|
||||
price: { prompt: 5 / M, completion: 15 / M },
|
||||
},
|
||||
"gpt-4o-mini": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.15 / 1000 / 1000, completion: 0.6 / 1000 / 1000 },
|
||||
price: { prompt: 0.15 / M, cached_prompt: 0.075 / M, completion: 0.6 / M },
|
||||
},
|
||||
"gpt-4o-mini-2024-07-18": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.15 / 1000 / 1000, completion: 0.6 / 1000 / 1000 },
|
||||
price: { prompt: 0.15 / M, cached_prompt: 0.075 / M, completion: 0.6 / M },
|
||||
},
|
||||
o1: {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 15 / M, cached_prompt: 7.5 / M, completion: 60 },
|
||||
},
|
||||
"o1-2024-12-17": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 15 / M, cached_prompt: 7.5 / M, completion: 60 },
|
||||
},
|
||||
"o1-preview": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 15 / 1000 / 1000, completion: 60 / 1000 / 1000 },
|
||||
price: { prompt: 15 / M, cached_prompt: 7.5 / M, completion: 60 },
|
||||
},
|
||||
"o1-preview-2024-09-12": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 15 / 1000 / 1000, completion: 60 / 1000 / 1000 },
|
||||
price: { prompt: 15 / M, cached_prompt: 7.5 / M, completion: 60 },
|
||||
},
|
||||
"o1-mini": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 3 / 1000 / 1000, completion: 12 / 1000 / 1000 },
|
||||
price: { prompt: 3 / M, cached_prompt: 1.5 / M, completion: 12 / M },
|
||||
},
|
||||
"o1-mini-2024-09-12": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 3 / 1000 / 1000, completion: 12 / 1000 / 1000 },
|
||||
price: { prompt: 3 / M, cached_prompt: 1.5 / M, completion: 12 / M },
|
||||
},
|
||||
"chatgpt-4o-latest": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.005 / 1000, completion: 0.015 / 1000 },
|
||||
price: { prompt: 5 / M, completion: 15 / M },
|
||||
},
|
||||
"gpt-4-turbo": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.01 / 1000, completion: 0.03 / 1000 },
|
||||
price: { prompt: 10 / M, completion: 30 / M },
|
||||
},
|
||||
"gpt-4-turbo-2024-04-09": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.01 / 1000, completion: 0.03 / 1000 },
|
||||
price: { prompt: 10 / M, completion: 30 / M },
|
||||
},
|
||||
"gpt-4": {
|
||||
maxToken: 8192,
|
||||
price: { prompt: 0.03 / 1000, completion: 0.06 / 1000 },
|
||||
maxToken: 8000,
|
||||
price: { prompt: 30 / M, completion: 60 / M },
|
||||
},
|
||||
"gpt-4-32k": {
|
||||
maxToken: 8192,
|
||||
price: { prompt: 0.06 / 1000, completion: 0.12 / 1000 },
|
||||
maxToken: 32000,
|
||||
price: { prompt: 60 / M, completion: 120 / M },
|
||||
},
|
||||
"gpt-4-0125-preview": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.01 / 1000, completion: 0.03 / 1000 },
|
||||
price: { prompt: 10 / M, completion: 30 / M },
|
||||
},
|
||||
"gpt-4-1106-preview": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.01 / 1000, completion: 0.03 / 1000 },
|
||||
price: { prompt: 10 / M, completion: 30 / M },
|
||||
},
|
||||
"gpt-4-vision-preview": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.01 / 1000, completion: 0.03 / 1000 },
|
||||
price: { prompt: 10 / M, completion: 30 / M },
|
||||
},
|
||||
"gpt-4-1106-vision-preview": {
|
||||
maxToken: 128000,
|
||||
price: { prompt: 0.01 / 1000, completion: 0.03 / 1000 },
|
||||
},
|
||||
"gpt-3.5-turbo": {
|
||||
maxToken: 4096,
|
||||
price: { prompt: 0.0015 / 1000, completion: 0.002 / 1000 },
|
||||
},
|
||||
"gpt-3.5-turbo-0125": {
|
||||
maxToken: 16385,
|
||||
price: { prompt: 0.0005 / 1000, completion: 0.0015 / 1000 },
|
||||
maxToken: 16000,
|
||||
price: { prompt: 0.5 / M, completion: 1.5 / M },
|
||||
},
|
||||
"gpt-3.5-turbo-instruct": {
|
||||
maxToken: 16385,
|
||||
price: { prompt: 0.5 / 1000 / 1000, completion: 2 / 1000 / 1000 },
|
||||
maxToken: 16000,
|
||||
price: { prompt: 1.5 / M, completion: 2 / M },
|
||||
},
|
||||
"gpt-3.5-turbo-1106": {
|
||||
maxToken: 16385,
|
||||
price: { prompt: 0.001 / 1000, completion: 0.002 / 1000 },
|
||||
maxToken: 16000,
|
||||
price: { prompt: 1 / M, completion: 2 / M },
|
||||
},
|
||||
"gpt-3.5-turbo-0613": {
|
||||
maxToken: 16385,
|
||||
price: { prompt: 1.5 / 1000 / 1000, completion: 2 / 1000 / 1000 },
|
||||
maxToken: 16000,
|
||||
price: { prompt: 1.5 / M, completion: 2 / M },
|
||||
},
|
||||
"gpt-3.5-turbo-16k-0613": {
|
||||
maxToken: 16385,
|
||||
price: { prompt: 0.003 / 1000, completion: 0.004 / 1000 },
|
||||
maxToken: 16000,
|
||||
price: { prompt: 3 / M, completion: 4 / M },
|
||||
},
|
||||
"gpt-3.5-turbo-0301": {
|
||||
maxToken: 16385,
|
||||
price: { prompt: 1.5 / 1000 / 1000, completion: 2 / 1000 / 1000 },
|
||||
price: { prompt: 1.5 / M, completion: 2 / M },
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user