feat: add gpt-5.5 support (#106)
* feat: add gpt-5.5 support * tests for gpt-5.5 support
This commit is contained in:
@@ -93,6 +93,7 @@ curl http://127.0.0.1:8000/v1/chat/completions \
|
|||||||
|
|
||||||
## Supported Models
|
## Supported Models
|
||||||
|
|
||||||
|
- `gpt-5.5`
|
||||||
- `gpt-5.4`
|
- `gpt-5.4`
|
||||||
- `gpt-5.4-mini`
|
- `gpt-5.4-mini`
|
||||||
- `gpt-5.2`
|
- `gpt-5.2`
|
||||||
|
|||||||
@@ -54,6 +54,13 @@ _MODEL_SPECS = (
|
|||||||
allowed_efforts=frozenset(("low", "medium", "high", "xhigh")),
|
allowed_efforts=frozenset(("low", "medium", "high", "xhigh")),
|
||||||
variant_efforts=("xhigh", "high", "medium", "low"),
|
variant_efforts=("xhigh", "high", "medium", "low"),
|
||||||
),
|
),
|
||||||
|
ModelSpec(
|
||||||
|
public_id="gpt-5.5",
|
||||||
|
upstream_id="gpt-5.5",
|
||||||
|
aliases=("gpt5.5", "gpt-5.5-latest"),
|
||||||
|
allowed_efforts=frozenset(("none", "low", "medium", "high", "xhigh")),
|
||||||
|
variant_efforts=("xhigh", "high", "medium", "low", "none"),
|
||||||
|
),
|
||||||
ModelSpec(
|
ModelSpec(
|
||||||
public_id="gpt-5.3-codex",
|
public_id="gpt-5.3-codex",
|
||||||
upstream_id="gpt-5.3-codex",
|
upstream_id="gpt-5.3-codex",
|
||||||
|
|||||||
@@ -10,10 +10,12 @@ class ModelRegistryTests(unittest.TestCase):
|
|||||||
self.assertEqual(normalize_model_name("gpt5"), "gpt-5")
|
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"), "gpt-5.4")
|
||||||
self.assertEqual(normalize_model_name("gpt5.4-mini"), "gpt-5.4-mini")
|
self.assertEqual(normalize_model_name("gpt5.4-mini"), "gpt-5.4-mini")
|
||||||
|
self.assertEqual(normalize_model_name("gpt5.5"), "gpt-5.5")
|
||||||
self.assertEqual(normalize_model_name("gpt5.3-codex-spark"), "gpt-5.3-codex-spark")
|
self.assertEqual(normalize_model_name("gpt5.3-codex-spark"), "gpt-5.3-codex-spark")
|
||||||
self.assertEqual(normalize_model_name("codex"), "codex-mini-latest")
|
self.assertEqual(normalize_model_name("codex"), "codex-mini-latest")
|
||||||
|
|
||||||
def test_strips_reasoning_suffixes(self) -> None:
|
def test_strips_reasoning_suffixes(self) -> None:
|
||||||
|
self.assertEqual(normalize_model_name("gpt-5.5-high"), "gpt-5.5")
|
||||||
self.assertEqual(normalize_model_name("gpt-5.4-high"), "gpt-5.4")
|
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.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.2_codemirror"), "gpt-5.2_codemirror")
|
||||||
@@ -21,15 +23,18 @@ class ModelRegistryTests(unittest.TestCase):
|
|||||||
self.assertEqual(normalize_model_name("gpt-5.1-codex:high"), "gpt-5.1-codex")
|
self.assertEqual(normalize_model_name("gpt-5.1-codex:high"), "gpt-5.1-codex")
|
||||||
|
|
||||||
def test_allowed_efforts_follow_registry(self) -> None:
|
def test_allowed_efforts_follow_registry(self) -> None:
|
||||||
|
self.assertEqual(allowed_efforts_for_model("gpt-5.5"), frozenset(("none", "low", "medium", "high", "xhigh")))
|
||||||
self.assertEqual(allowed_efforts_for_model("gpt-5.4"), frozenset(("none", "low", "medium", "high", "xhigh")))
|
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.4-mini"), frozenset(("low", "medium", "high", "xhigh")))
|
||||||
self.assertEqual(allowed_efforts_for_model("gpt-5.1-codex"), frozenset(("low", "medium", "high")))
|
self.assertEqual(allowed_efforts_for_model("gpt-5.1-codex"), frozenset(("low", "medium", "high")))
|
||||||
|
|
||||||
def test_public_models_include_variants(self) -> None:
|
def test_public_models_include_variants(self) -> None:
|
||||||
model_ids = list_public_models(expose_reasoning_models=True)
|
model_ids = list_public_models(expose_reasoning_models=True)
|
||||||
|
self.assertIn("gpt-5.5", model_ids)
|
||||||
self.assertIn("gpt-5.4", model_ids)
|
self.assertIn("gpt-5.4", model_ids)
|
||||||
self.assertIn("gpt-5.4-mini", model_ids)
|
self.assertIn("gpt-5.4-mini", model_ids)
|
||||||
self.assertIn("gpt-5.3-codex-spark", model_ids)
|
self.assertIn("gpt-5.3-codex-spark", model_ids)
|
||||||
|
self.assertIn("gpt-5.5-none", model_ids)
|
||||||
self.assertIn("gpt-5.4-none", model_ids)
|
self.assertIn("gpt-5.4-none", model_ids)
|
||||||
self.assertIn("gpt-5.4-mini-xhigh", model_ids)
|
self.assertIn("gpt-5.4-mini-xhigh", model_ids)
|
||||||
self.assertNotIn("gpt-5.4-mini-none", model_ids)
|
self.assertNotIn("gpt-5.4-mini-none", model_ids)
|
||||||
|
|||||||
Reference in New Issue
Block a user