From b639de07acbf10c3fae53a564577e84dccf74612 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Mon, 31 Aug 2026 12:32:22 -0500 Subject: [PATCH] fix(stats): merge deepseek flash variants (#46446) --- packages/stats/core/src/domain/inference.test.ts | 9 +++++++++ packages/stats/core/src/domain/model-normalization.ts | 2 ++ 2 files changed, 11 insertions(+) diff --git a/packages/stats/core/src/domain/inference.test.ts b/packages/stats/core/src/domain/inference.test.ts index 5f7e0266bf..e3b61193bb 100644 --- a/packages/stats/core/src/domain/inference.test.ts +++ b/packages/stats/core/src/domain/inference.test.ts @@ -50,6 +50,10 @@ describe("inference stat normalization", () => { }) test("merges renamed models under their current name", () => { + expect(statModel("deepseek-v4-flash-0731", "")).toBe("deepseek-v4-flash") + expect(statModel("deepseek-v4-flash-0731-free", "")).toBe("deepseek-v4-flash") + expect(statModel("deepseek-v4-flash-dsv4-flash-final-rnaovd", "")).toBe("deepseek-v4-flash") + expect(statModel("deepseek-v4-flash-vision-exp", "")).toBe("deepseek-v4-flash-vision-exp") expect(statModel("x-preview-f", "")).toBe("glm-5.3-flash") expect(statModel("ox-alpha", "")).toBe("glm-5.3-flash") expect(statModel("ox-alpha-free", "")).toBe("glm-5.3-flash") @@ -130,6 +134,11 @@ describe("inference stat normalization", () => { expect(queries[0]).toContain("COALESCE(NULLIF(lower(model_tier), ''), '') AS raw_tier") expect(queries[0]).toContain("WHEN lower(COALESCE(raw_tier, '')) = 'free'") expect(queries[0]).toContain("regexp_replace(NULLIF(route_model, ''), '^.*/', '')") + expect(queries[0]).toContain("= 'deepseek-v4-flash-0731' THEN 'deepseek-v4-flash'") + expect(queries[0]).toContain( + "= 'deepseek-v4-flash-dsv4-flash-final-rnaovd' THEN 'deepseek-v4-flash'", + ) + expect(queries[0]).not.toContain("= 'deepseek-v4-flash-vision-exp' THEN 'deepseek-v4-flash'") expect(queries[0]).toContain("= 'ox-alpha' THEN 'glm-5.3-flash'") expect(queries[0]).toContain("= 'x-preview-f' THEN 'glm-5.3-flash'") expect(queries[0]).toContain("OR lower(raw_model) IN ('gpt-5-nano', 'grok-code', 'big-pickle')") diff --git a/packages/stats/core/src/domain/model-normalization.ts b/packages/stats/core/src/domain/model-normalization.ts index 744d761d90..6f2edb117d 100644 --- a/packages/stats/core/src/domain/model-normalization.ts +++ b/packages/stats/core/src/domain/model-normalization.ts @@ -16,6 +16,8 @@ export const MODEL_AUTHOR_RULES = [ export const EXCLUDED_MODELS = new Set(["alpha-gpt-next"]) export const FREE_MODELS = new Set(["gpt-5-nano", "grok-code", "big-pickle"]) export const MODEL_NAME_ALIASES: Record = { + "deepseek-v4-flash-0731": "deepseek-v4-flash", + "deepseek-v4-flash-dsv4-flash-final-rnaovd": "deepseek-v4-flash", "ox-alpha": "glm-5.3-flash", "x-preview-f": "glm-5.3-flash", "xiaomi/mimo-v2.5": "mimo-v2.5",