import type { ModelInfo } from "../model" // https://openai.com/api/pricing/ export type OpenAiNativeModelId = keyof typeof openAiNativeModels export const openAiNativeDefaultModelId: OpenAiNativeModelId = "gpt-4.1" export const openAiNativeModels = { "gpt-4.1": { maxTokens: 32_768, contextWindow: 1_047_576, supportsImages: true, supportsPromptCache: true, inputPrice: 2, outputPrice: 8, cacheReadsPrice: 0.5, }, "gpt-4.1-mini": { maxTokens: 32_768, contextWindow: 1_047_576, supportsImages: true, supportsPromptCache: true, inputPrice: 0.4, outputPrice: 1.6, cacheReadsPrice: 0.1, }, "gpt-4.1-nano": { maxTokens: 32_768, contextWindow: 1_047_576, supportsImages: true, supportsPromptCache: true, inputPrice: 0.1, outputPrice: 0.4, cacheReadsPrice: 0.025, }, o3: { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 2.0, outputPrice: 8.0, cacheReadsPrice: 0.5, supportsReasoningEffort: true, reasoningEffort: "medium", }, "o3-high": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 2.0, outputPrice: 8.0, cacheReadsPrice: 0.5, reasoningEffort: "high", }, "o3-low": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 2.0, outputPrice: 8.0, cacheReadsPrice: 0.5, reasoningEffort: "low", }, "o4-mini": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.275, supportsReasoningEffort: true, reasoningEffort: "medium", }, "o4-mini-high": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.275, reasoningEffort: "high", }, "o4-mini-low": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.275, reasoningEffort: "low", }, "o3-mini": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: false, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.55, supportsReasoningEffort: true, reasoningEffort: "medium", }, "o3-mini-high": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: false, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.55, reasoningEffort: "high", }, "o3-mini-low": { maxTokens: 100_000, contextWindow: 200_000, supportsImages: false, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.55, reasoningEffort: "low", }, o1: { maxTokens: 100_000, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 15, outputPrice: 60, cacheReadsPrice: 7.5, }, "o1-preview": { maxTokens: 32_768, contextWindow: 128_000, supportsImages: true, supportsPromptCache: true, inputPrice: 15, outputPrice: 60, cacheReadsPrice: 7.5, }, "o1-mini": { maxTokens: 65_536, contextWindow: 128_000, supportsImages: true, supportsPromptCache: true, inputPrice: 1.1, outputPrice: 4.4, cacheReadsPrice: 0.55, }, "gpt-4.5-preview": { maxTokens: 16_384, contextWindow: 128_000, supportsImages: true, supportsPromptCache: true, inputPrice: 75, outputPrice: 150, cacheReadsPrice: 37.5, }, "gpt-4o": { maxTokens: 16_384, contextWindow: 128_000, supportsImages: true, supportsPromptCache: true, inputPrice: 2.5, outputPrice: 10, cacheReadsPrice: 1.25, }, "gpt-4o-mini": { maxTokens: 16_384, contextWindow: 128_000, supportsImages: true, supportsPromptCache: true, inputPrice: 0.15, outputPrice: 0.6, cacheReadsPrice: 0.075, }, } as const satisfies Record export const openAiModelInfoSaneDefaults: ModelInfo = { maxTokens: -1, contextWindow: 128_000, supportsImages: true, supportsPromptCache: false, inputPrice: 0, outputPrice: 0, } // https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation // https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#api-specs export const azureOpenAiDefaultApiVersion = "2024-08-01-preview" export const OPENAI_NATIVE_DEFAULT_TEMPERATURE = 0 export const OPENAI_AZURE_AI_INFERENCE_PATH = "/models/chat/completions"