From 2aec223c5db44267a154075decb2d8dd99c21b27 Mon Sep 17 00:00:00 2001 From: Konstantin Fickel Date: Sun, 15 Feb 2026 14:42:43 +0100 Subject: [PATCH] feat: add GPT-5 generation models to OpenAI providers Text: gpt-5, gpt-5-mini, gpt-5-nano (all with vision), o3, o4-mini (with vision), o3-pro (text only) Image: gpt-image-1.5, gpt-image-1-mini (both with reference images) --- bulkgen/providers/openai_image.py | 18 ++++++++++++++ bulkgen/providers/openai_text.py | 39 +++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/bulkgen/providers/openai_image.py b/bulkgen/providers/openai_image.py index 66b8070..bb087ba 100644 --- a/bulkgen/providers/openai_image.py +++ b/bulkgen/providers/openai_image.py @@ -64,6 +64,15 @@ class OpenAIImageProvider(Provider): @override def get_provided_models() -> list[ModelInfo]: return [ + ModelInfo( + name="gpt-image-1.5", + provider="OpenAI", + type="image", + capabilities=[ + Capability.TEXT_TO_IMAGE, + Capability.REFERENCE_IMAGES, + ], + ), ModelInfo( name="gpt-image-1", provider="OpenAI", @@ -73,6 +82,15 @@ class OpenAIImageProvider(Provider): Capability.REFERENCE_IMAGES, ], ), + ModelInfo( + name="gpt-image-1-mini", + provider="OpenAI", + type="image", + capabilities=[ + Capability.TEXT_TO_IMAGE, + Capability.REFERENCE_IMAGES, + ], + ), ModelInfo( name="dall-e-3", provider="OpenAI", diff --git a/bulkgen/providers/openai_text.py b/bulkgen/providers/openai_text.py index 55a234b..b1006c4 100644 --- a/bulkgen/providers/openai_text.py +++ b/bulkgen/providers/openai_text.py @@ -39,6 +39,45 @@ class OpenAITextProvider(Provider): @override def get_provided_models() -> list[ModelInfo]: return [ + # GPT-5 family + ModelInfo( + name="gpt-5", + provider="OpenAI", + type="text", + capabilities=[Capability.TEXT_GENERATION, Capability.VISION], + ), + ModelInfo( + name="gpt-5-mini", + provider="OpenAI", + type="text", + capabilities=[Capability.TEXT_GENERATION, Capability.VISION], + ), + ModelInfo( + name="gpt-5-nano", + provider="OpenAI", + type="text", + capabilities=[Capability.TEXT_GENERATION, Capability.VISION], + ), + # Reasoning models + ModelInfo( + name="o3", + provider="OpenAI", + type="text", + capabilities=[Capability.TEXT_GENERATION, Capability.VISION], + ), + ModelInfo( + name="o4-mini", + provider="OpenAI", + type="text", + capabilities=[Capability.TEXT_GENERATION, Capability.VISION], + ), + ModelInfo( + name="o3-pro", + provider="OpenAI", + type="text", + capabilities=[Capability.TEXT_GENERATION], + ), + # GPT-4 family ModelInfo( name="gpt-4o", provider="OpenAI", diff --git a/pyproject.toml b/pyproject.toml index 120743d..3c7abd6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ dependencies = [ "httpx>=0.27.0", "mistralai>=1.0.0", "networkx>=3.6.1", - "openai>=1.0.0", + "openai>=2.21.0", "pydantic>=2.12.5", "pyyaml>=6.0", "typer>=0.23.1", diff --git a/uv.lock b/uv.lock index 0189e7f..9b76caa 100644 --- a/uv.lock +++ b/uv.lock @@ -73,7 +73,7 @@ requires-dist = [ { name = "httpx", specifier = ">=0.27.0" }, { name = "mistralai", specifier = ">=1.0.0" }, { name = "networkx", specifier = ">=3.6.1" }, - { name = "openai", specifier = ">=1.0.0" }, + { name = "openai", specifier = ">=2.21.0" }, { name = "pydantic", specifier = ">=2.12.5" }, { name = "pyyaml", specifier = ">=6.0" }, { name = "typer", specifier = ">=0.23.1" },