Download src/utils/model/deprecation.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 2.53 kB
-
https://huggingface.co/chenbhao/codev/resolve/main/src/utils/model/deprecation.ts
- Command line
-
hf download hf://chenbhao/codev/src/utils/model/deprecation.ts
-
curl -L -o deprecation.ts https://huggingface.co/chenbhao/codev/resolve/main/src/utils/model/deprecation.ts
2.53 kB
| /** | |
| * Model deprecation utilities | |
| * | |
| * Contains information about deprecated models and their retirement dates. | |
| */ | |
| import { type APIProvider, getAPIProvider } from './providers.js' | |
| type DeprecatedModelInfo = { | |
| isDeprecated: true | |
| modelName: string | |
| retirementDate: string | |
| } | |
| type NotDeprecatedInfo = { | |
| isDeprecated: false | |
| } | |
| type DeprecationInfo = DeprecatedModelInfo | NotDeprecatedInfo | |
| type DeprecationEntry = { | |
| /** Human-readable model name */ | |
| modelName: string | |
| /** Retirement dates by provider (null = not deprecated for that provider) */ | |
| retirementDates: Record<APIProvider, string | null> | |
| } | |
| /** | |
| * Deprecated models and their retirement dates by provider. | |
| * Keys are substrings to match in model IDs (case-insensitive). | |
| * To add a new deprecated model, add an entry to this object. | |
| */ | |
| const DEPRECATED_MODELS: Record<string, DeprecationEntry> = { | |
| 'claude-3-opus': { | |
| modelName: 'Claude 3 Opus', | |
| retirementDates: { | |
| firstParty: 'January 5, 2026', | |
| bedrock: 'January 15, 2026', | |
| vertex: 'January 5, 2026', | |
| foundry: 'January 5, 2026', | |
| }, | |
| }, | |
| 'claude-3-7-sonnet': { | |
| modelName: 'Claude 3.7 Sonnet', | |
| retirementDates: { | |
| firstParty: 'February 19, 2026', | |
| bedrock: 'April 28, 2026', | |
| vertex: 'May 11, 2026', | |
| foundry: 'February 19, 2026', | |
| }, | |
| }, | |
| 'claude-3-5-haiku': { | |
| modelName: 'Claude 3.5 Haiku', | |
| retirementDates: { | |
| firstParty: 'February 19, 2026', | |
| bedrock: null, | |
| vertex: null, | |
| foundry: null, | |
| }, | |
| }, | |
| } | |
| /** | |
| * Check if a model is deprecated and get its deprecation info | |
| */ | |
| function getDeprecatedModelInfo(modelId: string): DeprecationInfo { | |
| const lowercaseModelId = modelId.toLowerCase() | |
| const provider = getAPIProvider() | |
| for (const [key, value] of Object.entries(DEPRECATED_MODELS)) { | |
| const retirementDate = value.retirementDates[provider] | |
| if (!lowercaseModelId.includes(key) || !retirementDate) { | |
| continue | |
| } | |
| return { | |
| isDeprecated: true, | |
| modelName: value.modelName, | |
| retirementDate, | |
| } | |
| } | |
| return { isDeprecated: false } | |
| } | |
| /** | |
| * Get a deprecation warning message for a model, or null if not deprecated | |
| */ | |
| export function getModelDeprecationWarning( | |
| modelId: string | null, | |
| ): string | null { | |
| if (!modelId) { | |
| return null | |
| } | |
| const info = getDeprecatedModelInfo(modelId) | |
| if (!info.isDeprecated) { | |
| return null | |
| } | |
| return `⚠ ${info.modelName} will be retired on ${info.retirementDate}. Consider switching to a newer model.` | |
| } | |