mirror of
https://github.com/NovaOSS/nova-betterchat.git
synced 2024-11-25 18:33:59 +01:00
update token cost to prompt + completion
This commit is contained in:
parent
b7b3c0ec75
commit
bd0f91f1a2
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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]);
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
Loading…
Reference in a new issue