feat: Add GPT-5.4 mini. (#101)

* feat: Add gpt-5.4-mini.

This just adds gpt-5.4-mini at (low/med/high/xhigh) reasoning levels.

* Fix formatting in README for reasoning effort section

---------

Co-authored-by: Ra's al Ghul <ras@alghul.com>
Co-authored-by: Game_Time <108236317+RayBytes@users.noreply.github.com>
This commit is contained in:
Ra's al Ghul
2026-03-22 12:32:32 -04:00
committed by GitHub
parent d8ba913d73
commit e96db19538
4 changed files with 23 additions and 5 deletions

View File

@@ -9,22 +9,28 @@ class ModelRegistryTests(unittest.TestCase):
def test_normalizes_aliases(self) -> None:
self.assertEqual(normalize_model_name("gpt5"), "gpt-5")
self.assertEqual(normalize_model_name("gpt5.4"), "gpt-5.4")
self.assertEqual(normalize_model_name("gpt5.4-mini"), "gpt-5.4-mini")
self.assertEqual(normalize_model_name("codex"), "codex-mini-latest")
def test_strips_reasoning_suffixes(self) -> None:
self.assertEqual(normalize_model_name("gpt-5.4-high"), "gpt-5.4")
self.assertEqual(normalize_model_name("gpt-5.4-mini-high"), "gpt-5.4-mini")
self.assertEqual(normalize_model_name("gpt-5.2_codemirror"), "gpt-5.2_codemirror")
self.assertEqual(normalize_model_name("gpt-5.1-codex:max"), "gpt-5.1-codex:max")
self.assertEqual(normalize_model_name("gpt-5.1-codex:high"), "gpt-5.1-codex")
def test_allowed_efforts_follow_registry(self) -> None:
self.assertEqual(allowed_efforts_for_model("gpt-5.4"), frozenset(("none", "low", "medium", "high", "xhigh")))
self.assertEqual(allowed_efforts_for_model("gpt-5.4-mini"), frozenset(("low", "medium", "high", "xhigh")))
self.assertEqual(allowed_efforts_for_model("gpt-5.1-codex"), frozenset(("low", "medium", "high")))
def test_public_models_include_variants(self) -> None:
model_ids = list_public_models(expose_reasoning_models=True)
self.assertIn("gpt-5.4", model_ids)
self.assertIn("gpt-5.4-mini", model_ids)
self.assertIn("gpt-5.4-none", model_ids)
self.assertIn("gpt-5.4-mini-xhigh", model_ids)
self.assertNotIn("gpt-5.4-mini-none", model_ids)
self.assertIn("gpt-5.1-codex-max-xhigh", model_ids)
self.assertNotIn("codex-mini-high", model_ids)