vet

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 4a6023e01e24b45a9cddc97e28800ffeb7b5222a
parent 71ddc8431d26a07d14c0dc2e4e84c52c74154e75
Author: Andrew Laack <andrew@laack.co>
Date:   Thu,  5 Mar 2026 20:08:23 +0000

Merge pull request #174 from imbue-ai/andrew/gpt-5-4

GPT 5.4 Support
Diffstat:
Mregistry/models.json | 18++++++++++++++++++
Muv.lock | 2+-
Mvet/imbue_core/agents/llm_apis/openai_api.py | 20++++++++++++++++++++
3 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/registry/models.json b/registry/models.json @@ -1,5 +1,23 @@ { "providers": { + "openai": { + "name": "OpenAI", + "api_type": "openai_compatible", + "base_url": "https://api.openai.com/v1", + "api_key_env": "OPENAI_API_KEY", + "models": { + "gpt-5.4": { + "context_window": 1050000, + "max_output_tokens": 128000, + "supports_temperature": false + }, + "gpt-5.4-pro": { + "context_window": 1050000, + "max_output_tokens": 128000, + "supports_temperature": false + } + } + }, "groq": { "name": "Groq", "api_type": "openai_compatible", diff --git a/uv.lock b/uv.lock @@ -1494,7 +1494,7 @@ wheels = [ [[package]] name = "verify-everything" -version = "0.2.3" +version = "0.2.4" source = { editable = "." } dependencies = [ { name = "anthropic" }, diff --git a/vet/imbue_core/agents/llm_apis/openai_api.py b/vet/imbue_core/agents/llm_apis/openai_api.py @@ -63,6 +63,8 @@ class OpenAIModelName(enum.StrEnum): GPT_5_MINI = "gpt-5-mini" GPT_5_1 = "gpt-5.1" GPT_5_2 = "gpt-5.2" + GPT_5_4 = "gpt-5.4" + GPT_5_4_PRO = "gpt-5.4-pro" # Using Tier 5 rate limits @@ -142,6 +144,22 @@ OPENAI_MODEL_INFO_BY_NAME: FrozenMapping[OpenAIModelName, ModelInfo] = FrozenDic max_output_tokens=128_000, rate_limit_req=15000 / 60, # 15000 RPM = 250 RPS ), + OpenAIModelName.GPT_5_4: ModelInfo( + model_name=str(OpenAIModelName.GPT_5_4), + cost_per_input_token=2.50 / 1_000_000, + cost_per_output_token=15 / 1_000_000, + max_input_tokens=1_050_000, + max_output_tokens=128_000, + rate_limit_req=15000 / 60, # 15000 RPM = 250 RPS + ), + OpenAIModelName.GPT_5_4_PRO: ModelInfo( + model_name=str(OpenAIModelName.GPT_5_4_PRO), + cost_per_input_token=30 / 1_000_000, + cost_per_output_token=180 / 1_000_000, + max_input_tokens=1_050_000, + max_output_tokens=128_000, + rate_limit_req=10000 / 60, # 10000 RPM = 166.67 RPS + ), } ) @@ -191,6 +209,8 @@ def is_openai_reasoning_model(model_name: str) -> bool: OpenAIModelName.GPT_5_MINI, OpenAIModelName.GPT_5_1, OpenAIModelName.GPT_5_2, + OpenAIModelName.GPT_5_4, + OpenAIModelName.GPT_5_4_PRO, )