diff --git a/README.md b/README.md index fce611b..91264da 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ curl http://127.0.0.1:8000/v1/chat/completions \ - `gpt-5.1` - `gpt-5.2` - `gpt-5-codex` +- `gpt-5.2-codex` - `gpt-5.1-codex` - `gpt-5.1-codex-max` - `gpt-5.1-codex-mini` @@ -128,7 +129,7 @@ curl http://127.0.0.1:8000/v1/chat/completions \ - `--reasoning-effort` (choice of minimal,low,medium,high,xhigh)
GPT-5 has a configurable amount of "effort" it can put into thinking, which may cause it to take more time for a response to return, but may overall give a smarter answer. Applying this parameter after `serve` forces the server to use this reasoning effort by default, unless overrided by the API request with a different effort set. The default reasoning effort without setting this parameter is `medium`.
- The `gpt-5.1` family (including codex) supports `low`, `medium`, and `high` while `gpt-5.1-codex-max` adds `xhigh`. `gpt-5.2` supports `low`, `medium`, `high`, and `xhigh`. + The `gpt-5.1` family (including codex) supports `low`, `medium`, and `high` while `gpt-5.1-codex-max` adds `xhigh`. The `gpt-5.2` family (including codex) supports `low`, `medium`, `high`, and `xhigh`. ### Thinking summaries @@ -173,4 +174,3 @@ When the model returns a thinking summary, the model will send back thinking tag [![Star History Chart](https://api.star-history.com/svg?repos=RayBytes/ChatMock&type=Timeline)](https://www.star-history.com/#RayBytes/ChatMock&Timeline) - diff --git a/chatmock/routes_ollama.py b/chatmock/routes_ollama.py index 76f704a..413adff 100644 --- a/chatmock/routes_ollama.py +++ b/chatmock/routes_ollama.py @@ -71,7 +71,7 @@ def ollama_version() -> Response: def _instructions_for_model(model: str) -> str: base = current_app.config.get("BASE_INSTRUCTIONS", BASE_INSTRUCTIONS) - if model.startswith("gpt-5-codex") or model.startswith("gpt-5.1-codex"): + if model.startswith("gpt-5-codex") or model.startswith("gpt-5.1-codex") or model.startswith("gpt-5.2-codex"): codex = current_app.config.get("GPT5_CODEX_INSTRUCTIONS") or GPT5_CODEX_INSTRUCTIONS if isinstance(codex, str) and codex.strip(): return codex @@ -98,6 +98,7 @@ def ollama_tags() -> Response: "gpt-5.1", "gpt-5.2", "gpt-5-codex", + "gpt-5.2-codex", "gpt-5.1-codex", "gpt-5.1-codex-max", "gpt-5.1-codex-mini", @@ -120,6 +121,10 @@ def ollama_tags() -> Response: "gpt-5-codex-high", "gpt-5-codex-medium", "gpt-5-codex-low", + "gpt-5.2-codex-xhigh", + "gpt-5.2-codex-high", + "gpt-5.2-codex-medium", + "gpt-5.2-codex-low", "gpt-5.1-codex-high", "gpt-5.1-codex-medium", "gpt-5.1-codex-low", diff --git a/chatmock/routes_openai.py b/chatmock/routes_openai.py index 75a01b1..c7a2c94 100644 --- a/chatmock/routes_openai.py +++ b/chatmock/routes_openai.py @@ -59,7 +59,7 @@ def _wrap_stream_logging(label: str, iterator, enabled: bool): def _instructions_for_model(model: str) -> str: base = current_app.config.get("BASE_INSTRUCTIONS", BASE_INSTRUCTIONS) - if model.startswith("gpt-5-codex") or model.startswith("gpt-5.1-codex"): + if model.startswith("gpt-5-codex") or model.startswith("gpt-5.1-codex") or model.startswith("gpt-5.2-codex"): codex = current_app.config.get("GPT5_CODEX_INSTRUCTIONS") or GPT5_CODEX_INSTRUCTIONS if isinstance(codex, str) and codex.strip(): return codex @@ -536,6 +536,7 @@ def list_models() -> Response: ("gpt-5.1", ["high", "medium", "low"]), ("gpt-5.2", ["xhigh", "high", "medium", "low"]), ("gpt-5-codex", ["high", "medium", "low"]), + ("gpt-5.2-codex", ["xhigh", "high", "medium", "low"]), ("gpt-5.1-codex", ["high", "medium", "low"]), ("gpt-5.1-codex-max", ["xhigh", "high", "medium", "low"]), ("gpt-5.1-codex-mini", []), diff --git a/chatmock/upstream.py b/chatmock/upstream.py index 52261f1..4803954 100644 --- a/chatmock/upstream.py +++ b/chatmock/upstream.py @@ -45,6 +45,9 @@ def normalize_model_name(name: str | None, debug_model: str | None = None) -> st "gpt5.2": "gpt-5.2", "gpt-5.2": "gpt-5.2", "gpt-5.2-latest": "gpt-5.2", + "gpt5.2-codex": "gpt-5.2-codex", + "gpt-5.2-codex": "gpt-5.2-codex", + "gpt-5.2-codex-latest": "gpt-5.2-codex", "gpt5-codex": "gpt-5-codex", "gpt-5-codex": "gpt-5-codex", "gpt-5-codex-latest": "gpt-5-codex",