update token cost to prompt + completion

This commit is contained in:
Jing Hua 2023-04-30 21:29:47 +08:00
parent b7b3c0ec75
commit bd0f91f1a2
3 changed files with 36 additions and 12 deletions

View file

@ -17,9 +17,10 @@ const tokenCostToCost = (
model: ModelOptions
) => {
if (!tokenCost) return 0;
const { price, unit } = modelCost[model as keyof typeof modelCost];
const completionCost = (price / unit) * tokenCost.completionTokens;
const promptCost = (price / unit) * tokenCost.promptTokens;
const { prompt, completion } = modelCost[model as keyof typeof modelCost];
const completionCost =
(completion.price / completion.unit) * tokenCost.completionTokens;
const promptCost = (prompt.price / prompt.unit) * tokenCost.promptTokens;
return completionCost + promptCost;
};

View file

@ -21,7 +21,9 @@ const TokenCount = React.memo(() => {
);
const cost = useMemo(() => {
const price = modelCost[model].price * (tokenCount / modelCost[model].unit);
const price =
modelCost[model].prompt.price *
(tokenCount / modelCost[model].prompt.unit);
return price.toPrecision(3);
}, [model, tokenCount]);

View file

@ -38,12 +38,30 @@ export const modelMaxToken = {
};
export const modelCost = {
'gpt-3.5-turbo': { price: 0.002, unit: 1000 },
'gpt-3.5-turbo-0301': { price: 0.002, unit: 1000 },
'gpt-4': { price: 0.03, unit: 1000 },
'gpt-4-0314': { price: 0.03, unit: 1000 },
'gpt-4-32k': { price: 0.06, unit: 1000 },
'gpt-4-32k-0314': { price: 0.06, unit: 1000 },
'gpt-3.5-turbo': {
prompt: { price: 0.002, unit: 1000 },
completion: { price: 0.002, unit: 1000 },
},
'gpt-3.5-turbo-0301': {
prompt: { price: 0.002, unit: 1000 },
completion: { price: 0.002, unit: 1000 },
},
'gpt-4': {
prompt: { price: 0.03, unit: 1000 },
completion: { price: 0.06, unit: 1000 },
},
'gpt-4-0314': {
prompt: { price: 0.03, unit: 1000 },
completion: { price: 0.06, unit: 1000 },
},
'gpt-4-32k': {
prompt: { price: 0.06, unit: 1000 },
completion: { price: 0.12, unit: 1000 },
},
'gpt-4-32k-0314': {
prompt: { price: 0.06, unit: 1000 },
completion: { price: 0.12, unit: 1000 },
},
};
export const defaultUserMaxToken = 4000;
@ -57,7 +75,10 @@ export const _defaultChatConfig: ConfigInterface = {
frequency_penalty: 0,
};
export const generateDefaultChat = (title?: string, folder?: string): ChatInterface => ({
export const generateDefaultChat = (
title?: string,
folder?: string
): ChatInterface => ({
id: uuidv4(),
title: title ? title : 'New Chat',
messages:
@ -66,7 +87,7 @@ export const generateDefaultChat = (title?: string, folder?: string): ChatInterf
: [],
config: { ...useStore.getState().defaultChatConfig },
titleSet: false,
folder
folder,
});
export const codeLanguageSubset = [