UNPKG

@pezzo/llm-toolkit

Version:

Your library description

111 lines (104 loc) 3.32 kB
import { OpenAIGptCostOptions, OpenAIGptModelSettings } from "./types"; const openAIToolkit = () => { const defineModel = <T>(settings: T): T => settings; const calculateGptCost = ({ model, promptTokens, completionTokens, }: OpenAIGptCostOptions & { model: keyof typeof gptModels }) => { const promptCost = (promptTokens / 1000) * gptModels[model].promptCostPer1000Tokens; const completionCost = (completionTokens / 1000) * gptModels[model].completionsCostPer1000Tokens; return { promptCost, completionCost, }; }; const gptModels = { /** * GPT-3.5 */ ["gpt-3.5-turbo"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.0015, completionsCostPer1000Tokens: 0.002, maxTokens: 4096, }), ["gpt-3.5-turbo-16k"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.003, completionsCostPer1000Tokens: 0.004, maxTokens: 16385, }), // New GPT-3.5 turbo model (Novermber 2023) ["gpt-3.5-turbo-1106"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.0010, completionsCostPer1000Tokens: 0.0020, maxTokens: 4096, }), ["gpt-3.5-turbo-instruct"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.0015, completionsCostPer1000Tokens: 0.0020, maxTokens: 4096, }), /** * GPT-4 */ ["gpt-4"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.03, completionsCostPer1000Tokens: 0.06, maxTokens: 8192, }), ["gpt-4-32k"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.06, completionsCostPer1000Tokens: 0.12, maxTokens: 32768, }), // Same as above ["gpt-4-1106-preview"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.01, completionsCostPer1000Tokens: 0.03, maxTokens: 128000, }), // Same as above ["gpt-4-vision-preview"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.01, completionsCostPer1000Tokens: 0.03, maxTokens: 128000, }), ["gpt-4-turbo-preview"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.01, completionsCostPer1000Tokens: 0.03, maxTokens: 128000, }), ["gpt-4-turbo"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.01, completionsCostPer1000Tokens: 0.03, maxTokens: 128000, }), ["gpt-4-1106-vision-preview"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.01, completionsCostPer1000Tokens: 0.03, maxTokens: 128000, }), ["gpt-4-0125-preview"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.01, completionsCostPer1000Tokens: 0.03, maxTokens: 128000, }), ["gpt-4o"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.005, completionsCostPer1000Tokens: 0.015, maxTokens: 128000, }), ["gpt-4o-2024-05-13"]: defineModel<OpenAIGptModelSettings>({ promptCostPer1000Tokens: 0.005, completionsCostPer1000Tokens: 0.015, maxTokens: 128000, }), }; return { calculateGptCost, gptModels, }; }; export const OpenAIToolkit = openAIToolkit();