| const { matchModelName } = require('../utils'); |
| const defaultRate = 6; |
|
|
| |
| |
| |
| |
| |
| const tokenValues = { |
| '8k': { prompt: 30, completion: 60 }, |
| '32k': { prompt: 60, completion: 120 }, |
| '4k': { prompt: 1.5, completion: 2 }, |
| '16k': { prompt: 3, completion: 4 }, |
| 'gpt-3.5-turbo-1106': { prompt: 1, completion: 2 }, |
| 'gpt-4o': { prompt: 5, completion: 15 }, |
| 'gpt-4-1106': { prompt: 10, completion: 30 }, |
| 'gpt-3.5-turbo-0125': { prompt: 0.5, completion: 1.5 }, |
| 'claude-3-opus': { prompt: 15, completion: 75 }, |
| 'claude-3-sonnet': { prompt: 3, completion: 15 }, |
| 'claude-3-5-sonnet': { prompt: 3, completion: 15 }, |
| 'claude-3-haiku': { prompt: 0.25, completion: 1.25 }, |
| 'claude-2.1': { prompt: 8, completion: 24 }, |
| 'claude-2': { prompt: 8, completion: 24 }, |
| 'claude-': { prompt: 0.8, completion: 2.4 }, |
| 'command-r-plus': { prompt: 3, completion: 15 }, |
| 'command-r': { prompt: 0.5, completion: 1.5 }, |
| |
| |
| command: { prompt: 0.38, completion: 0.38 }, |
| |
| |
| 'gemini-1.5': { prompt: 0, completion: 0 }, |
| gemini: { prompt: 0, completion: 0 }, |
| }; |
|
|
| |
| |
| |
| |
| |
| |
| |
| const getValueKey = (model, endpoint) => { |
| const modelName = matchModelName(model, endpoint); |
| if (!modelName) { |
| return undefined; |
| } |
|
|
| if (modelName.includes('gpt-3.5-turbo-16k')) { |
| return '16k'; |
| } else if (modelName.includes('gpt-3.5-turbo-0125')) { |
| return 'gpt-3.5-turbo-0125'; |
| } else if (modelName.includes('gpt-3.5-turbo-1106')) { |
| return 'gpt-3.5-turbo-1106'; |
| } else if (modelName.includes('gpt-3.5')) { |
| return '4k'; |
| } else if (modelName.includes('gpt-4o')) { |
| return 'gpt-4o'; |
| } else if (modelName.includes('gpt-4-vision')) { |
| return 'gpt-4-1106'; |
| } else if (modelName.includes('gpt-4-1106')) { |
| return 'gpt-4-1106'; |
| } else if (modelName.includes('gpt-4-0125')) { |
| return 'gpt-4-1106'; |
| } else if (modelName.includes('gpt-4-turbo')) { |
| return 'gpt-4-1106'; |
| } else if (modelName.includes('gpt-4-32k')) { |
| return '32k'; |
| } else if (modelName.includes('gpt-4')) { |
| return '8k'; |
| } else if (tokenValues[modelName]) { |
| return modelName; |
| } |
|
|
| return undefined; |
| }; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| const getMultiplier = ({ valueKey, tokenType, model, endpoint, endpointTokenConfig }) => { |
| if (endpointTokenConfig) { |
| return endpointTokenConfig?.[model]?.[tokenType] ?? defaultRate; |
| } |
|
|
| if (valueKey && tokenType) { |
| return tokenValues[valueKey][tokenType] ?? defaultRate; |
| } |
|
|
| if (!tokenType || !model) { |
| return 1; |
| } |
|
|
| valueKey = getValueKey(model, endpoint); |
| if (!valueKey) { |
| return defaultRate; |
| } |
|
|
| |
| return tokenValues[valueKey][tokenType] ?? defaultRate; |
| }; |
|
|
| module.exports = { tokenValues, getValueKey, getMultiplier, defaultRate }; |
|
|