diff --git a/libs/partners/openai/langchain_openai/data/_profiles.py b/libs/partners/openai/langchain_openai/data/_profiles.py index d4ea8b27508..48685f24edd 100644 --- a/libs/partners/openai/langchain_openai/data/_profiles.py +++ b/libs/partners/openai/langchain_openai/data/_profiles.py @@ -1065,6 +1065,32 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, "tool_call_streaming": True, }, + "gpt-image-2": { + "name": "gpt-image-2", + "release_date": "2026-04-21", + "last_updated": "2026-04-21", + "open_weights": False, + "max_input_tokens": 0, + "max_output_tokens": 0, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "text_outputs": False, + "image_outputs": True, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": False, + "tool_calling": False, + "attachment": True, + "temperature": False, + "image_url_inputs": True, + "pdf_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "tool_choice": True, + "tool_call_streaming": True, + }, "o1": { "name": "o1", "release_date": "2024-12-05", diff --git a/libs/partners/openrouter/langchain_openrouter/data/_profiles.py b/libs/partners/openrouter/langchain_openrouter/data/_profiles.py index 2761fe1d7fc..8360cd55c3c 100644 --- a/libs/partners/openrouter/langchain_openrouter/data/_profiles.py +++ b/libs/partners/openrouter/langchain_openrouter/data/_profiles.py @@ -276,7 +276,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -839,7 +839,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": True, "temperature": True, "tool_call_streaming": True, @@ -954,6 +954,28 @@ _PROFILES: dict[str, dict[str, Any]] = { "temperature": True, "tool_call_streaming": True, }, + "cohere/north-mini-code:free": { + "name": "North Mini Code (free)", + "release_date": "2026-06-17", + "last_updated": "2026-06-17", + "open_weights": True, + "max_input_tokens": 256000, + "max_output_tokens": 64000, + "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, + "structured_output": False, + "attachment": False, + "temperature": True, + "tool_call_streaming": True, + }, "deepcogito/cogito-v2.1-671b": { "name": "Cogito v2.1 671B", "release_date": "2025-11-13", @@ -1269,7 +1291,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "last_updated": "2025-08-26", "open_weights": False, "max_input_tokens": 32768, - "max_output_tokens": 32768, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -1406,7 +1428,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "last_updated": "2025-12-17", "open_weights": False, "max_input_tokens": 1048576, - "max_output_tokens": 65536, + "max_output_tokens": 65535, "text_inputs": True, "image_inputs": True, "audio_inputs": True, @@ -1423,6 +1445,28 @@ _PROFILES: dict[str, dict[str, Any]] = { "temperature": True, "tool_call_streaming": True, }, + "google/gemini-3-pro-image": { + "name": "Nano Banana Pro (Gemini 3 Pro Image)", + "release_date": "2026-06-18", + "last_updated": "2026-06-18", + "open_weights": False, + "max_input_tokens": 65536, + "max_output_tokens": 32768, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "text_outputs": True, + "image_outputs": True, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + "attachment": True, + "temperature": True, + "tool_call_streaming": True, + }, "google/gemini-3-pro-image-preview": { "name": "Nano Banana Pro", "release_date": "2025-11-20", @@ -1445,6 +1489,28 @@ _PROFILES: dict[str, dict[str, Any]] = { "temperature": True, "tool_call_streaming": True, }, + "google/gemini-3.1-flash-image": { + "name": "Nano Banana 2 (Gemini 3.1 Flash Image)", + "release_date": "2026-06-18", + "last_updated": "2026-06-18", + "open_weights": False, + "max_input_tokens": 65536, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "text_outputs": True, + "image_outputs": True, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": False, + "structured_output": True, + "attachment": True, + "temperature": True, + "tool_call_streaming": True, + }, "google/gemini-3.1-flash-image-preview": { "name": "Nano Banana 2", "release_date": "2026-02-26", @@ -1687,7 +1753,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -1719,7 +1785,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "release_date": "2026-04-02", "last_updated": "2026-04-02", "open_weights": True, - "max_input_tokens": 262144, + "max_input_tokens": 131072, "max_output_tokens": 32768, "text_inputs": True, "image_inputs": True, @@ -1764,7 +1830,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "last_updated": "2026-04-02", "open_weights": True, "max_input_tokens": 262144, - "max_output_tokens": 32768, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -2083,7 +2149,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -2104,8 +2170,8 @@ _PROFILES: dict[str, dict[str, Any]] = { "audio_outputs": False, "video_outputs": False, "reasoning_output": True, - "tool_calling": False, - "structured_output": False, + "tool_calling": True, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -2127,7 +2193,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -2171,7 +2237,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -3261,7 +3327,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -4777,7 +4843,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "last_updated": "2025-08-05", "open_weights": True, "max_input_tokens": 131072, - "max_output_tokens": 8192, + "max_output_tokens": 32768, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -4810,7 +4876,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -5328,7 +5394,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -5350,7 +5416,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -5415,8 +5481,8 @@ _PROFILES: dict[str, dict[str, Any]] = { "audio_outputs": False, "video_outputs": False, "reasoning_output": False, - "tool_calling": False, - "structured_output": False, + "tool_calling": True, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -5460,7 +5526,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -5878,7 +5944,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -6010,7 +6076,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": True, "temperature": True, "tool_call_streaming": True, @@ -6076,7 +6142,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": True, - "structured_output": False, + "structured_output": True, "attachment": True, "temperature": True, "tool_call_streaming": True, @@ -6582,7 +6648,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -6758,7 +6824,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -6802,7 +6868,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": False, - "structured_output": False, + "structured_output": True, "attachment": False, "temperature": True, "tool_call_streaming": True, @@ -6985,28 +7051,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "temperature": True, "tool_call_streaming": True, }, - "xiaomi/mimo-v2-flash": { - "name": "MiMo-V2-Flash", - "release_date": "2025-12-16", - "last_updated": "2026-02-04", - "open_weights": True, - "max_input_tokens": 262144, - "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": True, - "structured_output": False, - "attachment": False, - "temperature": True, - "tool_call_streaming": True, - }, "xiaomi/mimo-v2.5": { "name": "MiMo-V2.5", "release_date": "2026-04-22", @@ -7207,8 +7251,8 @@ _PROFILES: dict[str, dict[str, Any]] = { }, "z-ai/glm-5": { "name": "GLM-5", - "release_date": "2026-02-11", - "last_updated": "2026-02-11", + "release_date": "2026-02-12", + "last_updated": "2026-02-12", "open_weights": True, "max_input_tokens": 202752, "max_output_tokens": 16384, @@ -7251,8 +7295,8 @@ _PROFILES: dict[str, dict[str, Any]] = { }, "z-ai/glm-5.1": { "name": "GLM-5.1", - "release_date": "2026-03-27", - "last_updated": "2026-03-27", + "release_date": "2026-04-07", + "last_updated": "2026-04-07", "open_weights": True, "max_input_tokens": 202752, "max_output_tokens": 131072,