From 72884490116662ed9eb41015d3665da2c932b417 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Sun, 5 Oct 2025 07:02:09 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=AB=B4=20refactor:=20Add=20Broader=20Supp?= =?UTF-8?q?ort=20for=20GPT-OSS=20Naming=20(#9978)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/models/tx.js | 3 +++ api/models/tx.spec.js | 10 ++++++++++ api/utils/tokens.spec.js | 11 +++++++++-- packages/api/src/utils/tokens.ts | 3 +++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/api/models/tx.js b/api/models/tx.js index 769492a643..062ebecf26 100644 --- a/api/models/tx.js +++ b/api/models/tx.js @@ -152,7 +152,10 @@ const tokenValues = Object.assign( 'ministral-8b': { prompt: 0.1, completion: 0.1 }, 'ministral-3b': { prompt: 0.04, completion: 0.04 }, // GPT-OSS models + 'gpt-oss': { prompt: 0.05, completion: 0.2 }, + 'gpt-oss:20b': { prompt: 0.05, completion: 0.2 }, 'gpt-oss-20b': { prompt: 0.05, completion: 0.2 }, + 'gpt-oss:120b': { prompt: 0.15, completion: 0.6 }, 'gpt-oss-120b': { prompt: 0.15, completion: 0.6 }, }, bedrockValues, diff --git a/api/models/tx.spec.js b/api/models/tx.spec.js index dd3c543417..7594ce3295 100644 --- a/api/models/tx.spec.js +++ b/api/models/tx.spec.js @@ -184,6 +184,16 @@ describe('getValueKey', () => { expect(getValueKey('claude-3.5-haiku-turbo')).toBe('claude-3.5-haiku'); expect(getValueKey('claude-3.5-haiku-0125')).toBe('claude-3.5-haiku'); }); + + it('should return expected value keys for "gpt-oss" models', () => { + expect(getValueKey('openai/gpt-oss-120b')).toBe('gpt-oss-120b'); + expect(getValueKey('openai/gpt-oss:120b')).toBe('gpt-oss:120b'); + expect(getValueKey('openai/gpt-oss-570b')).toBe('gpt-oss'); + expect(getValueKey('gpt-oss-570b')).toBe('gpt-oss'); + expect(getValueKey('groq/gpt-oss-1080b')).toBe('gpt-oss'); + expect(getValueKey('gpt-oss-20b')).toBe('gpt-oss-20b'); + expect(getValueKey('oai/gpt-oss:20b')).toBe('gpt-oss:20b'); + }); }); describe('getMultiplier', () => { diff --git a/api/utils/tokens.spec.js b/api/utils/tokens.spec.js index 527129ec8c..20dad79894 100644 --- a/api/utils/tokens.spec.js +++ b/api/utils/tokens.spec.js @@ -396,8 +396,15 @@ describe('getModelMaxTokens', () => { }); test('should return correct tokens for GPT-OSS models', () => { - const expected = maxTokensMap[EModelEndpoint.openAI]['gpt-oss-20b']; - ['gpt-oss-20b', 'gpt-oss-120b', 'openai/gpt-oss-20b', 'openai/gpt-oss-120b'].forEach((name) => { + const expected = maxTokensMap[EModelEndpoint.openAI]['gpt-oss']; + [ + 'gpt-oss:20b', + 'gpt-oss-20b', + 'gpt-oss-120b', + 'openai/gpt-oss-20b', + 'openai/gpt-oss-120b', + 'openai/gpt-oss:120b', + ].forEach((name) => { expect(getModelMaxTokens(name)).toBe(expected); }); }); diff --git a/packages/api/src/utils/tokens.ts b/packages/api/src/utils/tokens.ts index b53305278d..f75a5b9de2 100644 --- a/packages/api/src/utils/tokens.ts +++ b/packages/api/src/utils/tokens.ts @@ -257,7 +257,10 @@ const aggregateModels = { // misc. kimi: 131000, // GPT-OSS + 'gpt-oss': 131000, + 'gpt-oss:20b': 131000, 'gpt-oss-20b': 131000, + 'gpt-oss:120b': 131000, 'gpt-oss-120b': 131000, };