Skip to content

[REFACTOR] Don't hard code model names #150

@FokkoVeegens

Description

@FokkoVeegens

Ensure these data are removed here and retrieved from their primary store (whichever that is):

private getModelFromRequest(request: any): string {
// Try to determine model from request metadata
if (request.result && request.result.metadata && request.result.metadata.modelId) {
return request.result.metadata.modelId;
}
if (request.result && request.result.details) {
if (request.result.details.includes('Claude Sonnet 3.5')) { return 'claude-sonnet-3.5'; }
if (request.result.details.includes('Claude Sonnet 3.7')) { return 'claude-sonnet-3.7'; }
if (request.result.details.includes('Claude Sonnet 4')) { return 'claude-sonnet-4'; }
if (request.result.details.includes('Gemini 2.5 Pro')) { return 'gemini-2.5-pro'; }
if (request.result.details.includes('Gemini 3 Pro (Preview)')) { return 'gemini-3-pro-preview'; }
if (request.result.details.includes('Gemini 3 Pro')) { return 'gemini-3-pro'; }
if (request.result.details.includes('GPT-4.1')) { return 'gpt-4.1'; }
if (request.result.details.includes('GPT-4o-mini')) { return 'gpt-4o-mini'; }
if (request.result.details.includes('GPT-4o')) { return 'gpt-4o'; }
if (request.result.details.includes('GPT-4')) { return 'gpt-4'; }
if (request.result.details.includes('GPT-5')) { return 'gpt-5'; }
if (request.result.details.includes('GPT-3.5-Turbo')) { return 'gpt-3.5-turbo'; }
if (request.result.details.includes('o3-mini')) { return 'o3-mini'; }
if (request.result.details.includes('o4-mini')) { return 'o4-mini'; }
}
return 'gpt-4'; // default
}

If the data are stored, it would be here: https://github.com/rajbos/github-copilot-token-usage/blob/main/src/modelPricing.json

I prefer to store the model ID and not the name.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions