fix(model-profiles): sort generated profiles by model ID for stable diffs (#35344)

- Sort model profiles alphabetically by model ID (the top-level
`_PROFILES` dictionary keys, e.g. `claude-3-5-haiku-20241022`,
`gpt-4o-mini`) before writing `_profiles.py`, so that regenerating
profiles only shows actual data changes in diffs — not random reordering
from the models.dev API response order
- Regenerate all 10 partner profile files with the new sorted ordering
This commit is contained in:
Mason Daugherty
2026-02-19 23:11:22 -05:00
committed by GitHub
parent 8aa7a3f07a
commit 70192690b1
12 changed files with 3243 additions and 3156 deletions

View File

@@ -16,6 +16,205 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p
from typing import Any
_PROFILES: dict[str, dict[str, Any]] = {
"codex-mini-latest": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-3.5-turbo": {
"max_input_tokens": 16385,
"max_output_tokens": 4096,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"structured_output": False,
"image_url_inputs": False,
"pdf_inputs": False,
"pdf_tool_message": False,
"image_tool_message": False,
"tool_choice": True,
},
"gpt-4": {
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4-turbo": {
"max_input_tokens": 128000,
"max_output_tokens": 4096,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4.1": {
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4.1-mini": {
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4.1-nano": {
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o-2024-05-13": {
"max_input_tokens": 128000,
"max_output_tokens": 4096,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o-2024-08-06": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o-2024-11-20": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
@@ -36,13 +235,32 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.3-codex": {
"max_input_tokens": 400000,
"gpt-4o-mini": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"pdf_inputs": True,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
@@ -52,6 +270,27 @@ _PROFILES: dict[str, dict[str, Any]] = {
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-chat-latest": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": False,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
@@ -76,6 +315,46 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-mini": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-nano": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-pro": {
"max_input_tokens": 272000,
"max_output_tokens": 272000,
@@ -96,46 +375,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o-mini": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"text-embedding-ada-002": {
"max_input_tokens": 8192,
"max_output_tokens": 1536,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-chat-latest": {
"gpt-5.1": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -147,7 +387,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
@@ -155,11 +395,11 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"codex-mini-latest": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"gpt-5.1-chat-latest": {
"max_input_tokens": 272000,
"max_output_tokens": 16384,
"text_inputs": True,
"image_inputs": False,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
@@ -168,6 +408,27 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.1-codex": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
@@ -194,9 +455,9 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o-2024-05-13": {
"max_input_tokens": 128000,
"max_output_tokens": 4096,
"gpt-5.1-codex-mini": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
@@ -205,7 +466,27 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.2": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
@@ -254,46 +535,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"o3-deep-research": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"o1": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.1": {
"gpt-5.2-pro": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -306,19 +548,20 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"structured_output": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"o4-mini-deep-research": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"gpt-5.3-codex": {
"max_input_tokens": 400000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"pdf_inputs": True,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
@@ -326,8 +569,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
@@ -352,7 +595,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"o3": {
"o1": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
@@ -372,189 +615,11 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"text-embedding-3-small": {
"max_input_tokens": 8191,
"max_output_tokens": 1536,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4.1-nano": {
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"text-embedding-3-large": {
"max_input_tokens": 8191,
"max_output_tokens": 3072,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-3.5-turbo": {
"max_input_tokens": 16385,
"max_output_tokens": 4096,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"structured_output": False,
"image_url_inputs": False,
"pdf_inputs": False,
"pdf_tool_message": False,
"image_tool_message": False,
"tool_choice": True,
},
"gpt-5.1-codex-mini": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.2": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4.1": {
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"o3-pro": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4-turbo": {
"o1-mini": {
"max_input_tokens": 128000,
"max_output_tokens": 4096,
"max_output_tokens": 65536,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
@@ -562,47 +627,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"o4-mini": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4.1-mini": {
"max_input_tokens": 1047576,
"max_output_tokens": 32768,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"tool_calling": False,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
@@ -649,9 +674,9 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.1-codex": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"o3": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
@@ -669,9 +694,9 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.2-pro": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"o3-deep-research": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
@@ -682,7 +707,6 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
@@ -709,29 +733,9 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o-2024-08-06": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-mini": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"o3-pro": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
@@ -749,9 +753,9 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5.1-chat-latest": {
"max_input_tokens": 272000,
"max_output_tokens": 16384,
"o4-mini": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
@@ -769,9 +773,28 @@ _PROFILES: dict[str, dict[str, Any]] = {
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4": {
"max_input_tokens": 8192,
"max_output_tokens": 8192,
"o4-mini-deep-research": {
"max_input_tokens": 200000,
"max_output_tokens": 100000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"text-embedding-3-large": {
"max_input_tokens": 8191,
"max_output_tokens": 3072,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
@@ -781,59 +804,18 @@ _PROFILES: dict[str, dict[str, Any]] = {
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-5-nano": {
"max_input_tokens": 272000,
"max_output_tokens": 128000,
"text_inputs": True,
"image_inputs": True,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"o1-mini": {
"max_input_tokens": 128000,
"max_output_tokens": 65536,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": True,
"tool_calling": False,
"structured_output": True,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"gpt-4o": {
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text-embedding-3-small": {
"max_input_tokens": 8191,
"max_output_tokens": 1536,
"text_inputs": True,
"image_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
@@ -841,8 +823,26 @@ _PROFILES: dict[str, dict[str, Any]] = {
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"structured_output": True,
"tool_calling": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,
"image_tool_message": True,
"tool_choice": True,
},
"text-embedding-ada-002": {
"max_input_tokens": 8192,
"max_output_tokens": 1536,
"text_inputs": True,
"image_inputs": False,
"audio_inputs": False,
"video_inputs": False,
"text_outputs": True,
"image_outputs": False,
"audio_outputs": False,
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"image_url_inputs": True,
"pdf_inputs": True,
"pdf_tool_message": True,