From 70192690b1a27d00c29012d86332059e702c9fe6 Mon Sep 17 00:00:00 2001 From: Mason Daugherty Date: Thu, 19 Feb 2026 23:11:22 -0500 Subject: [PATCH] fix(model-profiles): sort generated profiles by model ID for stable diffs (#35344) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- .../langchain_model_profiles/cli.py | 2 +- .../tests/unit_tests/test_cli.py | 56 + .../langchain_anthropic/data/_profiles.py | 406 +- .../langchain_deepseek/data/_profiles.py | 28 +- .../langchain_fireworks/data/_profiles.py | 232 +- .../groq/langchain_groq/data/_profiles.py | 238 +- .../langchain_huggingface/data/_profiles.py | 254 +- .../langchain_mistralai/data/_profiles.py | 316 +- .../openai/langchain_openai/data/_profiles.py | 806 ++-- .../langchain_openrouter/data/_profiles.py | 3717 +++++++++-------- .../langchain_perplexity/data/_profiles.py | 28 +- .../xai/langchain_xai/data/_profiles.py | 316 +- 12 files changed, 3243 insertions(+), 3156 deletions(-) diff --git a/libs/model-profiles/langchain_model_profiles/cli.py b/libs/model-profiles/langchain_model_profiles/cli.py index aa759867a08..fbdc0c7ee53 100644 --- a/libs/model-profiles/langchain_model_profiles/cli.py +++ b/libs/model-profiles/langchain_model_profiles/cli.py @@ -310,7 +310,7 @@ def refresh(provider: str, data_dir: Path) -> None: # noqa: C901, PLR0915 print(f"Writing to {output_file}...") module_content = [f'"""{MODULE_ADMONITION}"""\n\n', "from typing import Any\n\n"] module_content.append("_PROFILES: dict[str, dict[str, Any]] = ") - json_str = json.dumps(profiles, indent=4) + json_str = json.dumps(dict(sorted(profiles.items())), indent=4) json_str = ( json_str.replace("true", "True") .replace("false", "False") diff --git a/libs/model-profiles/tests/unit_tests/test_cli.py b/libs/model-profiles/tests/unit_tests/test_cli.py index 8cfdddc4f94..6c962acff6b 100644 --- a/libs/model-profiles/tests/unit_tests/test_cli.py +++ b/libs/model-profiles/tests/unit_tests/test_cli.py @@ -216,6 +216,62 @@ max_input_tokens = 123 ) +def test_refresh_generates_sorted_profiles( + tmp_path: Path, mock_models_dev_response: dict +) -> None: + """Test that profiles are sorted alphabetically by model ID.""" + data_dir = tmp_path / "data" + data_dir.mkdir() + + # Inject models in reverse-alphabetical order so the API response + # is NOT already sorted. + mock_models_dev_response["anthropic"]["models"] = { + "z-model": { + "id": "z-model", + "name": "Z Model", + "tool_call": True, + "limit": {"context": 100000, "output": 2048}, + "modalities": {"input": ["text"], "output": ["text"]}, + }, + "a-model": { + "id": "a-model", + "name": "A Model", + "tool_call": True, + "limit": {"context": 100000, "output": 2048}, + "modalities": {"input": ["text"], "output": ["text"]}, + }, + "m-model": { + "id": "m-model", + "name": "M Model", + "tool_call": True, + "limit": {"context": 100000, "output": 2048}, + "modalities": {"input": ["text"], "output": ["text"]}, + }, + } + + mock_response = Mock() + mock_response.json.return_value = mock_models_dev_response + mock_response.raise_for_status = Mock() + + with ( + patch("langchain_model_profiles.cli.httpx.get", return_value=mock_response), + patch("builtins.input", return_value="y"), + ): + refresh("anthropic", data_dir) + + profiles_file = data_dir / "_profiles.py" + spec = importlib.util.spec_from_file_location( + "generated_profiles_sorted", profiles_file + ) + assert spec + assert spec.loader + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) # type: ignore[union-attr] + + model_ids = list(module._PROFILES.keys()) # type: ignore[attr-defined] + assert model_ids == sorted(model_ids), f"Profile keys are not sorted: {model_ids}" + + def test_model_data_to_profile_text_modalities() -> None: """Test that text input/output modalities are correctly mapped.""" # Model with text in both input and output diff --git a/libs/partners/anthropic/langchain_anthropic/data/_profiles.py b/libs/partners/anthropic/langchain_anthropic/data/_profiles.py index cfebc851ce2..a589bc2018d 100644 --- a/libs/partners/anthropic/langchain_anthropic/data/_profiles.py +++ b/libs/partners/anthropic/langchain_anthropic/data/_profiles.py @@ -16,9 +16,9 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "claude-opus-4-5-20251101": { + "claude-3-5-haiku-20241022": { "max_input_tokens": 200000, - "max_output_tokens": 64000, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -28,7 +28,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": True, + "reasoning_output": False, "tool_calling": True, "image_url_inputs": True, "pdf_tool_message": True, @@ -54,196 +54,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, - "claude-opus-4-1": { - "max_input_tokens": 200000, - "max_output_tokens": 32000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "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_tool_message": True, - "image_tool_message": True, - "structured_output": True, - }, - "claude-3-5-sonnet-20241022": { - "max_input_tokens": 200000, - "max_output_tokens": 8192, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - "image_url_inputs": True, - "pdf_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-3-sonnet-20240229": { - "max_input_tokens": 200000, - "max_output_tokens": 4096, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - "image_url_inputs": True, - "pdf_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-opus-4-6": { - "max_input_tokens": 200000, - "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, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "image_url_inputs": True, - "pdf_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-sonnet-4-6": { - "max_input_tokens": 200000, - "max_output_tokens": 64000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "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_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-sonnet-4-0": { - "max_input_tokens": 200000, - "max_output_tokens": 64000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "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_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-opus-4-20250514": { - "max_input_tokens": 200000, - "max_output_tokens": 32000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "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_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-sonnet-4-5-20250929": { - "max_input_tokens": 200000, - "max_output_tokens": 64000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "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_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-opus-4-0": { - "max_input_tokens": 200000, - "max_output_tokens": 32000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "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_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, - "claude-3-5-haiku-20241022": { - "max_input_tokens": 200000, - "max_output_tokens": 8192, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - "image_url_inputs": True, - "pdf_tool_message": True, - "image_tool_message": True, - "structured_output": False, - }, "claude-3-5-sonnet-20240620": { "max_input_tokens": 200000, "max_output_tokens": 8192, @@ -263,7 +73,26 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, - "claude-3-7-sonnet-latest": { + "claude-3-5-sonnet-20241022": { + "max_input_tokens": 200000, + "max_output_tokens": 8192, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": False, + "tool_calling": True, + "image_url_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-3-7-sonnet-20250219": { "max_input_tokens": 200000, "max_output_tokens": 64000, "text_inputs": True, @@ -282,7 +111,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, - "claude-3-7-sonnet-20250219": { + "claude-3-7-sonnet-latest": { "max_input_tokens": 200000, "max_output_tokens": 64000, "text_inputs": True, @@ -320,6 +149,63 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, + "claude-3-opus-20240229": { + "max_input_tokens": 200000, + "max_output_tokens": 4096, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": False, + "tool_calling": True, + "image_url_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-3-sonnet-20240229": { + "max_input_tokens": 200000, + "max_output_tokens": 4096, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": False, + "tool_calling": True, + "image_url_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-haiku-4-5": { + "max_input_tokens": 200000, + "max_output_tokens": 64000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "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_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, "claude-haiku-4-5-20251001": { "max_input_tokens": 200000, "max_output_tokens": 64000, @@ -339,9 +225,66 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, - "claude-haiku-4-5": { + "claude-opus-4-0": { "max_input_tokens": 200000, - "max_output_tokens": 64000, + "max_output_tokens": 32000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "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_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-opus-4-1": { + "max_input_tokens": 200000, + "max_output_tokens": 32000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "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_tool_message": True, + "image_tool_message": True, + "structured_output": True, + }, + "claude-opus-4-1-20250805": { + "max_input_tokens": 200000, + "max_output_tokens": 32000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "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_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-opus-4-20250514": { + "max_input_tokens": 200000, + "max_output_tokens": 32000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -377,9 +320,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, - "claude-3-opus-20240229": { + "claude-opus-4-5-20251101": { "max_input_tokens": 200000, - "max_output_tokens": 4096, + "max_output_tokens": 64000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -389,7 +332,64 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": False, + "reasoning_output": True, + "tool_calling": True, + "image_url_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-opus-4-6": { + "max_input_tokens": 200000, + "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, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "image_url_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-sonnet-4-0": { + "max_input_tokens": 200000, + "max_output_tokens": 64000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "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_tool_message": True, + "image_tool_message": True, + "structured_output": False, + }, + "claude-sonnet-4-20250514": { + "max_input_tokens": 200000, + "max_output_tokens": 64000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "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_tool_message": True, @@ -415,7 +415,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": True, }, - "claude-sonnet-4-20250514": { + "claude-sonnet-4-5-20250929": { "max_input_tokens": 200000, "max_output_tokens": 64000, "text_inputs": True, @@ -434,9 +434,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "structured_output": False, }, - "claude-opus-4-1-20250805": { + "claude-sonnet-4-6": { "max_input_tokens": 200000, - "max_output_tokens": 32000, + "max_output_tokens": 64000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, diff --git a/libs/partners/deepseek/langchain_deepseek/data/_profiles.py b/libs/partners/deepseek/langchain_deepseek/data/_profiles.py index 0bce7c20b97..f24a7b99074 100644 --- a/libs/partners/deepseek/langchain_deepseek/data/_profiles.py +++ b/libs/partners/deepseek/langchain_deepseek/data/_profiles.py @@ -16,20 +16,6 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "deepseek-reasoner": { - "max_input_tokens": 128000, - "max_output_tokens": 128000, - "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, - }, "deepseek-chat": { "max_input_tokens": 128000, "max_output_tokens": 8192, @@ -44,4 +30,18 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, + "deepseek-reasoner": { + "max_input_tokens": 128000, + "max_output_tokens": 128000, + "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, + }, } diff --git a/libs/partners/fireworks/langchain_fireworks/data/_profiles.py b/libs/partners/fireworks/langchain_fireworks/data/_profiles.py index 94cf90317c0..e170da2cc0f 100644 --- a/libs/partners/fireworks/langchain_fireworks/data/_profiles.py +++ b/libs/partners/fireworks/langchain_fireworks/data/_profiles.py @@ -16,9 +16,9 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "accounts/fireworks/models/kimi-k2-instruct": { - "max_input_tokens": 128000, - "max_output_tokens": 16384, + "accounts/fireworks/models/deepseek-v3p1": { + "max_input_tokens": 163840, + "max_output_tokens": 163840, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -27,7 +27,49 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": False, + "reasoning_output": True, + "tool_calling": True, + }, + "accounts/fireworks/models/deepseek-v3p2": { + "max_input_tokens": 160000, + "max_output_tokens": 160000, + "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, + }, + "accounts/fireworks/models/glm-4p5": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, + }, + "accounts/fireworks/models/glm-4p5-air": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, }, "accounts/fireworks/models/glm-4p7": { @@ -58,76 +100,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "accounts/fireworks/models/deepseek-v3p1": { - "max_input_tokens": 163840, - "max_output_tokens": 163840, - "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, - }, - "accounts/fireworks/models/minimax-m2p1": { - "max_input_tokens": 200000, - "max_output_tokens": 200000, - "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, - }, - "accounts/fireworks/models/glm-4p5-air": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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, - }, - "accounts/fireworks/models/deepseek-v3p2": { - "max_input_tokens": 160000, - "max_output_tokens": 160000, - "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, - }, - "accounts/fireworks/models/minimax-m2p5": { - "max_input_tokens": 196608, - "max_output_tokens": 196608, - "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, - }, "accounts/fireworks/models/gpt-oss-120b": { "max_input_tokens": 131072, "max_output_tokens": 32768, @@ -142,48 +114,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "accounts/fireworks/models/kimi-k2p5": { - "max_input_tokens": 256000, - "max_output_tokens": 256000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - }, - "accounts/fireworks/models/kimi-k2-thinking": { - "max_input_tokens": 256000, - "max_output_tokens": 256000, - "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, - }, - "accounts/fireworks/models/glm-4p5": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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, - }, "accounts/fireworks/models/gpt-oss-20b": { "max_input_tokens": 131072, "max_output_tokens": 32768, @@ -198,4 +128,74 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, + "accounts/fireworks/models/kimi-k2-instruct": { + "max_input_tokens": 128000, + "max_output_tokens": 16384, + "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, + }, + "accounts/fireworks/models/kimi-k2-thinking": { + "max_input_tokens": 256000, + "max_output_tokens": 256000, + "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, + }, + "accounts/fireworks/models/kimi-k2p5": { + "max_input_tokens": 256000, + "max_output_tokens": 256000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + }, + "accounts/fireworks/models/minimax-m2p1": { + "max_input_tokens": 200000, + "max_output_tokens": 200000, + "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, + }, + "accounts/fireworks/models/minimax-m2p5": { + "max_input_tokens": 196608, + "max_output_tokens": 196608, + "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, + }, } diff --git a/libs/partners/groq/langchain_groq/data/_profiles.py b/libs/partners/groq/langchain_groq/data/_profiles.py index 6f6e0696843..c8e31e8a38a 100644 --- a/libs/partners/groq/langchain_groq/data/_profiles.py +++ b/libs/partners/groq/langchain_groq/data/_profiles.py @@ -16,62 +16,6 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "llama3-70b-8192": { - "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, - }, - "qwen-qwq-32b": { - "max_input_tokens": 131072, - "max_output_tokens": 16384, - "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, - }, - "llama-3.1-8b-instant": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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, - }, - "llama-guard-3-8b": { - "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": False, - }, "deepseek-r1-distill-llama-70b": { "max_input_tokens": 131072, "max_output_tokens": 8192, @@ -86,7 +30,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "llama3-8b-8192": { + "gemma2-9b-it": { "max_input_tokens": 8192, "max_output_tokens": 8192, "text_inputs": True, @@ -100,9 +44,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "mistral-saba-24b": { - "max_input_tokens": 32768, - "max_output_tokens": 32768, + "llama-3.1-8b-instant": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -128,7 +72,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "gemma2-9b-it": { + "llama-guard-3-8b": { "max_input_tokens": 8192, "max_output_tokens": 8192, "text_inputs": True, @@ -140,6 +84,92 @@ _PROFILES: dict[str, dict[str, Any]] = { "audio_outputs": False, "video_outputs": False, "reasoning_output": False, + "tool_calling": False, + }, + "llama3-70b-8192": { + "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, + }, + "llama3-8b-8192": { + "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, + }, + "meta-llama/llama-4-maverick-17b-128e-instruct": { + "max_input_tokens": 131072, + "max_output_tokens": 8192, + "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, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + "max_input_tokens": 131072, + "max_output_tokens": 8192, + "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, + }, + "meta-llama/llama-guard-4-12b": { + "max_input_tokens": 131072, + "max_output_tokens": 1024, + "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": False, + }, + "mistral-saba-24b": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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, }, "moonshotai/kimi-k2-instruct": { @@ -171,64 +201,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "qwen/qwen3-32b": { - "max_input_tokens": 131072, - "max_output_tokens": 16384, - "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, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - "max_input_tokens": 131072, - "max_output_tokens": 8192, - "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, - }, - "meta-llama/llama-guard-4-12b": { - "max_input_tokens": 131072, - "max_output_tokens": 1024, - "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": False, - }, - "meta-llama/llama-4-maverick-17b-128e-instruct": { - "max_input_tokens": 131072, - "max_output_tokens": 8192, - "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, - }, "openai/gpt-oss-120b": { "max_input_tokens": 131072, "max_output_tokens": 65536, @@ -259,4 +231,32 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, + "qwen-qwq-32b": { + "max_input_tokens": 131072, + "max_output_tokens": 16384, + "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, + }, + "qwen/qwen3-32b": { + "max_input_tokens": 131072, + "max_output_tokens": 16384, + "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, + }, } diff --git a/libs/partners/huggingface/langchain_huggingface/data/_profiles.py b/libs/partners/huggingface/langchain_huggingface/data/_profiles.py index 45323d6d466..79435997ac9 100644 --- a/libs/partners/huggingface/langchain_huggingface/data/_profiles.py +++ b/libs/partners/huggingface/langchain_huggingface/data/_profiles.py @@ -16,21 +16,7 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "zai-org/GLM-4.7-Flash": { - "max_input_tokens": 200000, - "max_output_tokens": 128000, - "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, - }, - "zai-org/GLM-4.7": { + "MiniMaxAI/MiniMax-M2.1": { "max_input_tokens": 204800, "max_output_tokens": 131072, "text_inputs": True, @@ -44,34 +30,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "zai-org/GLM-5": { - "max_input_tokens": 202752, - "max_output_tokens": 131072, - "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, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - "max_input_tokens": 262144, - "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": True, - "tool_calling": True, - }, "MiniMaxAI/MiniMax-M2.5": { "max_input_tokens": 204800, "max_output_tokens": 131072, @@ -86,8 +44,8 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "MiniMaxAI/MiniMax-M2.1": { - "max_input_tokens": 204800, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + "max_input_tokens": 262144, "max_output_tokens": 131072, "text_inputs": True, "image_inputs": False, @@ -100,6 +58,118 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + "max_input_tokens": 262144, + "max_output_tokens": 66536, + "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, + }, + "Qwen/Qwen3-Coder-Next": { + "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": False, + "tool_calling": True, + }, + "Qwen/Qwen3-Embedding-4B": { + "max_input_tokens": 32000, + "max_output_tokens": 2048, + "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, + }, + "Qwen/Qwen3-Embedding-8B": { + "max_input_tokens": 32000, + "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, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + "max_input_tokens": 262144, + "max_output_tokens": 66536, + "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, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + "max_input_tokens": 262144, + "max_output_tokens": 131072, + "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, + }, + "Qwen/Qwen3.5-397B-A17B": { + "max_input_tokens": 262144, + "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": True, + "tool_calling": True, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + "max_input_tokens": 262144, + "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": True, + "tool_calling": True, + }, "deepseek-ai/DeepSeek-R1-0528": { "max_input_tokens": 163840, "max_output_tokens": 163840, @@ -156,20 +226,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "moonshotai/Kimi-K2.5": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - }, "moonshotai/Kimi-K2-Thinking": { "max_input_tokens": 262144, "max_output_tokens": 262144, @@ -184,27 +240,13 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { + "moonshotai/Kimi-K2.5": { "max_input_tokens": 262144, - "max_output_tokens": 66536, - "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, - }, - "Qwen/Qwen3.5-397B-A17B": { - "max_input_tokens": 262144, - "max_output_tokens": 32768, + "max_output_tokens": 262144, "text_inputs": True, "image_inputs": True, "audio_inputs": False, - "video_inputs": False, + "video_inputs": True, "text_outputs": True, "image_outputs": False, "audio_outputs": False, @@ -212,8 +254,8 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - "max_input_tokens": 262144, + "zai-org/GLM-4.7": { + "max_input_tokens": 204800, "max_output_tokens": 131072, "text_inputs": True, "image_inputs": False, @@ -226,9 +268,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "Qwen/Qwen3-Coder-Next": { - "max_input_tokens": 262144, - "max_output_tokens": 65536, + "zai-org/GLM-4.7-Flash": { + "max_input_tokens": 200000, + "max_output_tokens": 128000, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -237,53 +279,11 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": False, + "reasoning_output": True, "tool_calling": True, }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - "max_input_tokens": 262144, - "max_output_tokens": 66536, - "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, - }, - "Qwen/Qwen3-Embedding-4B": { - "max_input_tokens": 32000, - "max_output_tokens": 2048, - "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, - }, - "Qwen/Qwen3-Embedding-8B": { - "max_input_tokens": 32000, - "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, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - "max_input_tokens": 262144, + "zai-org/GLM-5": { + "max_input_tokens": 202752, "max_output_tokens": 131072, "text_inputs": True, "image_inputs": False, @@ -293,7 +293,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": False, + "reasoning_output": True, "tool_calling": True, }, } diff --git a/libs/partners/mistralai/langchain_mistralai/data/_profiles.py b/libs/partners/mistralai/langchain_mistralai/data/_profiles.py index 23b1101fbc7..d0b68d2b7f9 100644 --- a/libs/partners/mistralai/langchain_mistralai/data/_profiles.py +++ b/libs/partners/mistralai/langchain_mistralai/data/_profiles.py @@ -16,6 +16,34 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { + "codestral-latest": { + "max_input_tokens": 256000, + "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": True, + }, + "devstral-2512": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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, + }, "devstral-medium-2507": { "max_input_tokens": 128000, "max_output_tokens": 128000, @@ -30,6 +58,48 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, + "devstral-medium-latest": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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, + }, + "devstral-small-2505": { + "max_input_tokens": 128000, + "max_output_tokens": 128000, + "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, + }, + "devstral-small-2507": { + "max_input_tokens": 128000, + "max_output_tokens": 128000, + "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, + }, "labs-devstral-small-2512": { "max_input_tokens": 256000, "max_output_tokens": 256000, @@ -44,66 +114,10 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "devstral-medium-latest": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "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, - }, - "open-mistral-7b": { - "max_input_tokens": 8000, - "max_output_tokens": 8000, - "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, - }, - "mistral-small-2506": { + "magistral-medium-latest": { "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, - }, - "mistral-medium-2505": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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, - }, - "codestral-latest": { - "max_input_tokens": 256000, - "max_output_tokens": 4096, - "text_inputs": True, "image_inputs": False, "audio_inputs": False, "video_inputs": False, @@ -111,21 +125,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - }, - "ministral-8b-latest": { - "max_input_tokens": 128000, - "max_output_tokens": 128000, - "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, + "reasoning_output": True, "tool_calling": True, }, "magistral-small": { @@ -142,11 +142,11 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "mistral-large-2512": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, + "ministral-3b-latest": { + "max_input_tokens": 128000, + "max_output_tokens": 128000, "text_inputs": True, - "image_inputs": True, + "image_inputs": False, "audio_inputs": False, "video_inputs": False, "text_outputs": True, @@ -156,7 +156,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "ministral-3b-latest": { + "ministral-8b-latest": { "max_input_tokens": 128000, "max_output_tokens": 128000, "text_inputs": True, @@ -184,9 +184,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": False, }, - "devstral-small-2505": { - "max_input_tokens": 128000, - "max_output_tokens": 128000, + "mistral-large-2411": { + "max_input_tokens": 131072, + "max_output_tokens": 16384, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -198,67 +198,11 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "pixtral-12b": { - "max_input_tokens": 128000, - "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": False, - "tool_calling": True, - }, - "open-mixtral-8x7b": { - "max_input_tokens": 32000, - "max_output_tokens": 32000, - "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, - }, - "pixtral-large-latest": { - "max_input_tokens": 128000, - "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": False, - "tool_calling": True, - }, - "mistral-nemo": { - "max_input_tokens": 128000, - "max_output_tokens": 128000, - "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, - }, - "devstral-2512": { + "mistral-large-2512": { "max_input_tokens": 262144, "max_output_tokens": 262144, "text_inputs": True, - "image_inputs": False, + "image_inputs": True, "audio_inputs": False, "video_inputs": False, "text_outputs": True, @@ -282,6 +226,20 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, + "mistral-medium-2505": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, + }, "mistral-medium-2508": { "max_input_tokens": 262144, "max_output_tokens": 262144, @@ -296,10 +254,24 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "mistral-large-2411": { - "max_input_tokens": 131072, + "mistral-medium-latest": { + "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, + }, + "mistral-nemo": { + "max_input_tokens": 128000, + "max_output_tokens": 128000, + "text_inputs": True, "image_inputs": False, "audio_inputs": False, "video_inputs": False, @@ -310,6 +282,20 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, + "mistral-small-2506": { + "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, + }, "mistral-small-latest": { "max_input_tokens": 128000, "max_output_tokens": 16384, @@ -324,6 +310,20 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, + "open-mistral-7b": { + "max_input_tokens": 8000, + "max_output_tokens": 8000, + "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, + }, "open-mixtral-8x22b": { "max_input_tokens": 64000, "max_output_tokens": 64000, @@ -338,9 +338,23 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "mistral-medium-latest": { + "open-mixtral-8x7b": { + "max_input_tokens": 32000, + "max_output_tokens": 32000, + "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, + }, + "pixtral-12b": { "max_input_tokens": 128000, - "max_output_tokens": 16384, + "max_output_tokens": 128000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -352,11 +366,11 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "devstral-small-2507": { + "pixtral-large-latest": { "max_input_tokens": 128000, "max_output_tokens": 128000, "text_inputs": True, - "image_inputs": False, + "image_inputs": True, "audio_inputs": False, "video_inputs": False, "text_outputs": True, @@ -366,18 +380,4 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "magistral-medium-latest": { - "max_input_tokens": 128000, - "max_output_tokens": 16384, - "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, - }, } diff --git a/libs/partners/openai/langchain_openai/data/_profiles.py b/libs/partners/openai/langchain_openai/data/_profiles.py index ecf2542937f..78e5611f243 100644 --- a/libs/partners/openai/langchain_openai/data/_profiles.py +++ b/libs/partners/openai/langchain_openai/data/_profiles.py @@ -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, diff --git a/libs/partners/openrouter/langchain_openrouter/data/_profiles.py b/libs/partners/openrouter/langchain_openrouter/data/_profiles.py index 2bb4f1506e8..fd0c9d296c8 100644 --- a/libs/partners/openrouter/langchain_openrouter/data/_profiles.py +++ b/libs/partners/openrouter/langchain_openrouter/data/_profiles.py @@ -16,35 +16,6 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "prime-intellect/intellect-3": { - "max_input_tokens": 131072, - "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": True, - "tool_calling": True, - "structured_output": True, - }, - "featherless/qwerky-72b": { - "max_input_tokens": 32768, - "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": False, - }, "allenai/molmo-2-8b:free": { "max_input_tokens": 36864, "max_output_tokens": 36864, @@ -59,12 +30,43 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": False, }, - "nvidia/nemotron-nano-9b-v2:free": { - "max_input_tokens": 128000, + "anthropic/claude-3.5-haiku": { + "max_input_tokens": 200000, + "max_output_tokens": 8192, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": False, + "tool_calling": True, + }, + "anthropic/claude-3.7-sonnet": { + "max_input_tokens": 200000, "max_output_tokens": 128000, "text_inputs": True, - "image_inputs": False, + "image_inputs": True, "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + }, + "anthropic/claude-haiku-4.5": { + "max_input_tokens": 200000, + "max_output_tokens": 64000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, "video_inputs": False, "text_outputs": True, "image_outputs": False, @@ -74,8 +76,102 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "nvidia/nemotron-nano-12b-v2-vl:free": { - "max_input_tokens": 128000, + "anthropic/claude-opus-4": { + "max_input_tokens": 200000, + "max_output_tokens": 32000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + }, + "anthropic/claude-opus-4.1": { + "max_input_tokens": 200000, + "max_output_tokens": 32000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "anthropic/claude-opus-4.5": { + "max_input_tokens": 200000, + "max_output_tokens": 32000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "anthropic/claude-opus-4.6": { + "max_input_tokens": 1000000, + "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, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "anthropic/claude-sonnet-4": { + "max_input_tokens": 200000, + "max_output_tokens": 64000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + }, + "anthropic/claude-sonnet-4.5": { + "max_input_tokens": 1000000, + "max_output_tokens": 64000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "pdf_inputs": True, + "video_inputs": False, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "anthropic/claude-sonnet-4.6": { + "max_input_tokens": 1000000, "max_output_tokens": 128000, "text_inputs": True, "image_inputs": True, @@ -87,36 +183,8 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, - }, - "nvidia/nemotron-3-nano-30b-a3b:free": { - "max_input_tokens": 256000, - "max_output_tokens": 256000, - "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": True, }, - "nvidia/nemotron-nano-9b-v2": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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, - }, "arcee-ai/trinity-large-preview:free": { "max_input_tokens": 131072, "max_output_tokens": 131072, @@ -147,94 +215,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "xiaomi/mimo-v2-flash": { - "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": True, - }, - "microsoft/mai-ds-r1:free": { - "max_input_tokens": 163840, - "max_output_tokens": 163840, - "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, - }, - "sarvamai/sarvam-m:free": { - "max_input_tokens": 32768, - "max_output_tokens": 32768, - "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, - }, - "liquid/lfm-2.5-1.2b-thinking:free": { - "max_input_tokens": 131072, - "max_output_tokens": 32768, - "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, - }, - "liquid/lfm-2.5-1.2b-instruct:free": { - "max_input_tokens": 131072, - "max_output_tokens": 32768, - "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, - }, - "thudm/glm-z1-32b:free": { - "max_input_tokens": 32768, - "max_output_tokens": 32768, - "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, - }, - "sourceful/riverflow-v2-fast-preview": { - "max_input_tokens": 8192, - "max_output_tokens": 8192, + "black-forest-labs/flux.2-flex": { + "max_input_tokens": 67344, + "max_output_tokens": 67344, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -246,9 +229,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": False, }, - "sourceful/riverflow-v2-max-preview": { - "max_input_tokens": 8192, - "max_output_tokens": 8192, + "black-forest-labs/flux.2-klein-4b": { + "max_input_tokens": 40960, + "max_output_tokens": 40960, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -260,9 +243,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": False, }, - "sourceful/riverflow-v2-standard-preview": { - "max_input_tokens": 8192, - "max_output_tokens": 8192, + "black-forest-labs/flux.2-max": { + "max_input_tokens": 46864, + "max_output_tokens": 46864, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -274,75 +257,33 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": False, }, - "rekaai/reka-flash-3": { - "max_input_tokens": 32768, - "max_output_tokens": 8192, + "black-forest-labs/flux.2-pro": { + "max_input_tokens": 46864, + "max_output_tokens": 46864, "text_inputs": True, - "image_inputs": False, + "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, - }, - "stepfun/step-3.5-flash:free": { - "max_input_tokens": 256000, - "max_output_tokens": 256000, - "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, - }, - "stepfun/step-3.5-flash": { - "max_input_tokens": 256000, - "max_output_tokens": 256000, - "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, - }, - "cognitivecomputations/dolphin3.0-r1-mistral-24b": { - "max_input_tokens": 32768, - "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": True, - "tool_calling": True, - }, - "cognitivecomputations/dolphin3.0-mistral-24b": { - "max_input_tokens": 32768, - "max_output_tokens": 8192, - "text_inputs": True, - "image_inputs": False, - "audio_inputs": False, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, + "text_outputs": False, + "image_outputs": True, "audio_outputs": False, "video_outputs": False, "reasoning_output": False, - "tool_calling": True, + "tool_calling": False, + }, + "bytedance-seed/seedream-4.5": { + "max_input_tokens": 4096, + "max_output_tokens": 4096, + "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, }, "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { "max_input_tokens": 32768, @@ -359,9 +300,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": False, "structured_output": True, }, - "kwaipilot/kat-coder-pro:free": { - "max_input_tokens": 256000, - "max_output_tokens": 65536, + "cognitivecomputations/dolphin3.0-mistral-24b": { + "max_input_tokens": 32768, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -372,11 +313,39 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": False, "tool_calling": True, + }, + "cognitivecomputations/dolphin3.0-r1-mistral-24b": { + "max_input_tokens": 32768, + "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": True, + "tool_calling": True, + }, + "deepseek/deepseek-chat-v3-0324": { + "max_input_tokens": 16384, + "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": False, "structured_output": True, }, - "deepseek/deepseek-v3.1-terminus:exacto": { - "max_input_tokens": 131072, - "max_output_tokens": 65536, + "deepseek/deepseek-chat-v3.1": { + "max_input_tokens": 163840, + "max_output_tokens": 163840, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -389,6 +358,20 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, + "deepseek/deepseek-r1-0528-qwen3-8b:free": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, + }, "deepseek/deepseek-r1-0528:free": { "max_input_tokens": 163840, "max_output_tokens": 163840, @@ -404,6 +387,21 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": False, "structured_output": True, }, + "deepseek/deepseek-r1-distill-llama-70b": { + "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": True, + "tool_calling": False, + "structured_output": True, + }, "deepseek/deepseek-r1-distill-qwen-14b": { "max_input_tokens": 64000, "max_output_tokens": 8192, @@ -432,9 +430,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "deepseek/deepseek-r1-0528-qwen3-8b:free": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, + "deepseek/deepseek-v3-base:free": { + "max_input_tokens": 163840, + "max_output_tokens": 163840, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -443,11 +441,11 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, + "reasoning_output": False, + "tool_calling": False, }, - "deepseek/deepseek-v3.2-speciale": { - "max_input_tokens": 163840, + "deepseek/deepseek-v3.1-terminus": { + "max_input_tokens": 131072, "max_output_tokens": 65536, "text_inputs": True, "image_inputs": False, @@ -461,52 +459,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "deepseek/deepseek-chat-v3.1": { - "max_input_tokens": 163840, - "max_output_tokens": 163840, - "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": True, - }, - "deepseek/deepseek-chat-v3-0324": { - "max_input_tokens": 16384, - "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": False, - "structured_output": True, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - "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": True, - "tool_calling": False, - "structured_output": True, - }, - "deepseek/deepseek-v3.1-terminus": { + "deepseek/deepseek-v3.1-terminus:exacto": { "max_input_tokens": 131072, "max_output_tokens": 65536, "text_inputs": True, @@ -536,9 +489,24 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "deepseek/deepseek-v3-base:free": { + "deepseek/deepseek-v3.2-speciale": { "max_input_tokens": 163840, - "max_output_tokens": 163840, + "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": True, + }, + "featherless/qwerky-72b": { + "max_input_tokens": 32768, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -550,23 +518,25 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": False, }, - "openrouter/sherlock-think-alpha": { - "max_input_tokens": 1840000, - "max_output_tokens": 0, + "google/gemini-2.0-flash-001": { + "max_input_tokens": 1048576, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": True, - "audio_inputs": False, - "video_inputs": False, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, "text_outputs": True, "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": True, + "reasoning_output": False, "tool_calling": True, + "structured_output": True, }, - "openrouter/sherlock-dash-alpha": { - "max_input_tokens": 1840000, - "max_output_tokens": 0, + "google/gemini-2.0-flash-exp:free": { + "max_input_tokens": 1048576, + "max_output_tokens": 1048576, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -578,9 +548,340 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "openrouter/aurora-alpha": { - "max_input_tokens": 128000, - "max_output_tokens": 50000, + "google/gemini-2.5-flash": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-2.5-flash-lite": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-2.5-flash-preview-09-2025": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-2.5-pro": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-2.5-pro-preview-05-06": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-2.5-pro-preview-06-05": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-3-flash-preview": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-3-pro-preview": { + "max_input_tokens": 1050000, + "max_output_tokens": 66000, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemini-3.1-pro-preview": { + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": True, + "pdf_inputs": True, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "google/gemma-2-9b-it": { + "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": False, + }, + "google/gemma-3-12b-it": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": False, + "structured_output": True, + }, + "google/gemma-3-12b-it:free": { + "max_input_tokens": 32768, + "max_output_tokens": 8192, + "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": False, + }, + "google/gemma-3-27b-it": { + "max_input_tokens": 96000, + "max_output_tokens": 96000, + "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, + }, + "google/gemma-3-27b-it:free": { + "max_input_tokens": 131072, + "max_output_tokens": 8192, + "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, + }, + "google/gemma-3-4b-it": { + "max_input_tokens": 96000, + "max_output_tokens": 96000, + "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": False, + }, + "google/gemma-3-4b-it:free": { + "max_input_tokens": 32768, + "max_output_tokens": 8192, + "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": False, + }, + "google/gemma-3n-e2b-it:free": { + "max_input_tokens": 8192, + "max_output_tokens": 2000, + "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, + }, + "google/gemma-3n-e4b-it": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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, + }, + "google/gemma-3n-e4b-it:free": { + "max_input_tokens": 8192, + "max_output_tokens": 2000, + "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, + }, + "kwaipilot/kat-coder-pro:free": { + "max_input_tokens": 256000, + "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": False, + "tool_calling": True, + "structured_output": True, + }, + "liquid/lfm-2.5-1.2b-instruct:free": { + "max_input_tokens": 131072, + "max_output_tokens": 32768, + "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, + }, + "liquid/lfm-2.5-1.2b-thinking:free": { + "max_input_tokens": 131072, + "max_output_tokens": 32768, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -590,6 +891,371 @@ _PROFILES: dict[str, dict[str, Any]] = { "audio_outputs": False, "video_outputs": False, "reasoning_output": True, + "tool_calling": False, + }, + "meta-llama/llama-3.1-405b-instruct:free": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": True, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + "max_input_tokens": 131072, + "max_output_tokens": 8192, + "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": False, + }, + "meta-llama/llama-3.2-3b-instruct:free": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": False, + }, + "meta-llama/llama-3.3-70b-instruct:free": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": True, + }, + "meta-llama/llama-4-scout:free": { + "max_input_tokens": 64000, + "max_output_tokens": 64000, + "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, + }, + "microsoft/mai-ds-r1:free": { + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "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, + }, + "minimax/minimax-01": { + "max_input_tokens": 1000000, + "max_output_tokens": 1000000, + "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, + }, + "minimax/minimax-m1": { + "max_input_tokens": 1000000, + "max_output_tokens": 40000, + "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, + }, + "minimax/minimax-m2": { + "max_input_tokens": 196600, + "max_output_tokens": 118000, + "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": True, + }, + "minimax/minimax-m2.1": { + "max_input_tokens": 204800, + "max_output_tokens": 131072, + "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": True, + }, + "minimax/minimax-m2.5": { + "max_input_tokens": 204800, + "max_output_tokens": 131072, + "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": True, + }, + "mistralai/codestral-2508": { + "max_input_tokens": 256000, + "max_output_tokens": 256000, + "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": True, + }, + "mistralai/devstral-2512": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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": True, + }, + "mistralai/devstral-2512:free": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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, + }, + "mistralai/devstral-medium-2507": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": True, + }, + "mistralai/devstral-small-2505": { + "max_input_tokens": 128000, + "max_output_tokens": 128000, + "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, + }, + "mistralai/devstral-small-2505:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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, + }, + "mistralai/devstral-small-2507": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": True, + }, + "mistralai/mistral-7b-instruct:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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, + }, + "mistralai/mistral-medium-3": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, + }, + "mistralai/mistral-medium-3.1": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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, + }, + "mistralai/mistral-nemo:free": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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": True, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + "max_input_tokens": 128000, + "max_output_tokens": 8192, + "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, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + "max_input_tokens": 96000, + "max_output_tokens": 8192, + "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, + }, + "mistralai/mistral-small-3.2-24b-instruct:free": { + "max_input_tokens": 96000, + "max_output_tokens": 96000, + "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, }, @@ -651,13 +1317,13 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "moonshotai/kimi-k2.5": { + "moonshotai/kimi-k2-thinking": { "max_input_tokens": 262144, "max_output_tokens": 262144, "text_inputs": True, - "image_inputs": True, + "image_inputs": False, "audio_inputs": False, - "video_inputs": True, + "video_inputs": False, "text_outputs": True, "image_outputs": False, "audio_outputs": False, @@ -666,13 +1332,13 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "moonshotai/kimi-k2-thinking": { + "moonshotai/kimi-k2.5": { "max_input_tokens": 262144, "max_output_tokens": 262144, "text_inputs": True, - "image_inputs": False, + "image_inputs": True, "audio_inputs": False, - "video_inputs": False, + "video_inputs": True, "text_outputs": True, "image_outputs": False, "audio_outputs": False, @@ -695,326 +1361,10 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemini-2.5-pro-preview-06-05": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemma-3n-e4b-it:free": { - "max_input_tokens": 8192, - "max_output_tokens": 2000, - "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, - }, - "google/gemini-2.5-flash-preview-09-2025": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemini-2.5-pro-preview-05-06": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemma-3n-e2b-it:free": { - "max_input_tokens": 8192, - "max_output_tokens": 2000, - "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, - }, - "google/gemini-2.5-flash": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemini-2.0-flash-001": { - "max_input_tokens": 1048576, - "max_output_tokens": 8192, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - "structured_output": True, - }, - "google/gemini-3-flash-preview": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemma-3-12b-it:free": { - "max_input_tokens": 32768, - "max_output_tokens": 8192, - "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": False, - }, - "google/gemini-2.5-flash-lite": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemini-2.0-flash-exp:free": { - "max_input_tokens": 1048576, - "max_output_tokens": 1048576, - "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, - }, - "google/gemma-2-9b-it": { - "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": False, - }, - "google/gemma-3-4b-it:free": { - "max_input_tokens": 32768, - "max_output_tokens": 8192, - "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": False, - }, - "google/gemma-3n-e4b-it": { - "max_input_tokens": 32768, - "max_output_tokens": 32768, - "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, - }, - "google/gemini-3-pro-preview": { - "max_input_tokens": 1050000, - "max_output_tokens": 66000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemma-3-12b-it": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": False, - "structured_output": True, - }, - "google/gemma-3-4b-it": { - "max_input_tokens": 96000, - "max_output_tokens": 96000, - "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": False, - }, - "google/gemma-3-27b-it": { - "max_input_tokens": 96000, - "max_output_tokens": 96000, - "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, - }, - "google/gemini-2.5-pro": { - "max_input_tokens": 1048576, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": True, - "pdf_inputs": True, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "google/gemma-3-27b-it:free": { + "nousresearch/deephermes-3-llama-3-8b-preview": { "max_input_tokens": 131072, "max_output_tokens": 8192, "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, - }, - "z-ai/glm-5": { - "max_input_tokens": 202752, - "max_output_tokens": 131000, - "text_inputs": True, "image_inputs": False, "audio_inputs": False, "video_inputs": False, @@ -1024,381 +1374,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, - "structured_output": True, }, - "z-ai/glm-4.5-air": { - "max_input_tokens": 128000, - "max_output_tokens": 96000, - "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": True, - }, - "z-ai/glm-4.5": { - "max_input_tokens": 128000, - "max_output_tokens": 96000, - "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": True, - }, - "z-ai/glm-4.6:exacto": { - "max_input_tokens": 200000, - "max_output_tokens": 128000, - "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": True, - }, - "z-ai/glm-4.7-flash": { - "max_input_tokens": 200000, - "max_output_tokens": 65535, - "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": True, - }, - "z-ai/glm-4.5-air:free": { - "max_input_tokens": 128000, - "max_output_tokens": 96000, - "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, - }, - "z-ai/glm-4.6": { - "max_input_tokens": 200000, - "max_output_tokens": 128000, - "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": True, - }, - "z-ai/glm-4.7": { - "max_input_tokens": 204800, - "max_output_tokens": 131072, - "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": True, - }, - "z-ai/glm-4.5v": { - "max_input_tokens": 64000, - "max_output_tokens": 16384, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "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": True, - }, - "qwen/qwen-2.5-vl-7b-instruct:free": { - "max_input_tokens": 32768, - "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, - }, - "qwen/qwen3-32b:free": { - "max_input_tokens": 40960, - "max_output_tokens": 40960, - "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": True, - }, - "qwen/qwen3-coder:free": { - "max_input_tokens": 262144, - "max_output_tokens": 66536, - "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, - }, - "qwen/qwen3-coder-flash": { - "max_input_tokens": 128000, - "max_output_tokens": 66536, - "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, - }, - "qwen/qwen3-30b-a3b:free": { - "max_input_tokens": 40960, - "max_output_tokens": 40960, - "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": True, - }, - "qwen/qwen3-235b-a22b-07-25:free": { - "max_input_tokens": 262144, - "max_output_tokens": 131072, - "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, - }, - "qwen/qwen3-14b:free": { - "max_input_tokens": 40960, - "max_output_tokens": 40960, - "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": True, - }, - "qwen/qwen3-coder": { - "max_input_tokens": 262144, - "max_output_tokens": 66536, - "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": True, - }, - "qwen/qwq-32b:free": { - "max_input_tokens": 32768, - "max_output_tokens": 32768, - "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": True, - }, - "qwen/qwen3.5-397b-a17b": { - "max_input_tokens": 262144, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "qwen/qwen3-coder:exacto": { + "nousresearch/hermes-3-llama-3.1-405b:free": { "max_input_tokens": 131072, - "max_output_tokens": 32768, - "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": True, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - "max_input_tokens": 32768, - "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": False, - "structured_output": True, - }, - "qwen/qwen3.5-plus-02-15": { - "max_input_tokens": 1000000, - "max_output_tokens": 65536, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - "max_input_tokens": 262000, - "max_output_tokens": 262000, - "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": True, - }, - "qwen/qwen2.5-vl-72b-instruct": { - "max_input_tokens": 32768, - "max_output_tokens": 8192, - "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": False, - "structured_output": True, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - "max_input_tokens": 160000, - "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": False, - "tool_calling": True, - "structured_output": True, - }, - "qwen/qwen3-235b-a22b-07-25": { - "max_input_tokens": 262144, "max_output_tokens": 131072, "text_inputs": True, "image_inputs": False, @@ -1408,11 +1386,24 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - "structured_output": True, + "reasoning_output": True, + "tool_calling": False, }, - "qwen/qwen3-235b-a22b:free": { + "nousresearch/hermes-4-405b": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, + }, + "nousresearch/hermes-4-70b": { "max_input_tokens": 131072, "max_output_tokens": 131072, "text_inputs": True, @@ -1427,405 +1418,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "qwen/qwen3-next-80b-a3b-instruct:free": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "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": True, - }, - "qwen/qwen3-4b:free": { - "max_input_tokens": 40960, - "max_output_tokens": 40960, - "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": True, - }, - "qwen/qwen3-8b:free": { - "max_input_tokens": 40960, - "max_output_tokens": 40960, - "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": True, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - "max_input_tokens": 262000, - "max_output_tokens": 262000, - "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": True, - }, - "qwen/qwen2.5-vl-32b-instruct:free": { - "max_input_tokens": 8192, - "max_output_tokens": 8192, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "video_inputs": True, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": False, - "tool_calling": True, - "structured_output": True, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - "max_input_tokens": 262144, - "max_output_tokens": 81920, - "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": True, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "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": True, - }, - "qwen/qwen2.5-vl-72b-instruct:free": { - "max_input_tokens": 32768, - "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, - }, - "qwen/qwen3-max": { - "max_input_tokens": 262144, - "max_output_tokens": 32768, - "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, - }, - "x-ai/grok-3": { - "max_input_tokens": 131072, - "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": True, - }, - "x-ai/grok-code-fast-1": { - "max_input_tokens": 256000, - "max_output_tokens": 10000, - "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": True, - }, - "x-ai/grok-4-fast": { - "max_input_tokens": 2000000, - "max_output_tokens": 30000, - "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, - }, - "x-ai/grok-4": { - "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": True, - }, - "x-ai/grok-4.1-fast": { - "max_input_tokens": 2000000, - "max_output_tokens": 30000, - "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, - }, - "x-ai/grok-3-mini-beta": { - "max_input_tokens": 131072, - "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": True, - "tool_calling": True, - }, - "x-ai/grok-3-mini": { - "max_input_tokens": 131072, - "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": True, - "tool_calling": True, - "structured_output": True, - }, - "x-ai/grok-3-beta": { - "max_input_tokens": 131072, - "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, - }, - "meta-llama/llama-3.3-70b-instruct:free": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": True, - }, - "meta-llama/llama-4-scout:free": { - "max_input_tokens": 64000, - "max_output_tokens": 64000, - "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, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - "max_input_tokens": 131072, - "max_output_tokens": 8192, - "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": False, - }, - "meta-llama/llama-3.2-3b-instruct:free": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": False, - }, - "meta-llama/llama-3.1-405b-instruct:free": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": True, - }, - "tngtech/tng-r1t-chimera:free": { - "max_input_tokens": 163840, - "max_output_tokens": 163840, - "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": True, - }, - "tngtech/deepseek-r1t2-chimera:free": { - "max_input_tokens": 163840, - "max_output_tokens": 163840, - "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, - }, - "mistralai/devstral-medium-2507": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": True, - }, - "mistralai/devstral-small-2505:free": { - "max_input_tokens": 32768, - "max_output_tokens": 32768, - "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, - }, - "mistralai/mistral-medium-3": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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, - }, - "mistralai/codestral-2508": { + "nvidia/nemotron-3-nano-30b-a3b:free": { "max_input_tokens": 256000, "max_output_tokens": 256000, "text_inputs": True, @@ -1836,27 +1429,13 @@ _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, }, - "mistralai/devstral-2512:free": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "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, - }, - "mistralai/mistral-small-3.1-24b-instruct": { + "nvidia/nemotron-nano-12b-v2-vl:free": { "max_input_tokens": 128000, - "max_output_tokens": 8192, + "max_output_tokens": 128000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -1865,11 +1444,24 @@ _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, }, - "mistralai/devstral-small-2505": { + "nvidia/nemotron-nano-9b-v2": { + "max_input_tokens": 131072, + "max_output_tokens": 131072, + "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, + }, + "nvidia/nemotron-nano-9b-v2:free": { "max_input_tokens": 128000, "max_output_tokens": 128000, "text_inputs": True, @@ -1880,28 +1472,15 @@ _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, }, - "mistralai/mistral-7b-instruct:free": { - "max_input_tokens": 32768, + "openai/gpt-4.1": { + "max_input_tokens": 1047576, "max_output_tokens": 32768, "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, - }, - "mistralai/devstral-2512": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, - "text_inputs": True, - "image_inputs": False, + "image_inputs": True, "audio_inputs": False, "video_inputs": False, "text_outputs": True, @@ -1912,9 +1491,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "mistralai/mistral-small-3.2-24b-instruct": { - "max_input_tokens": 96000, - "max_output_tokens": 8192, + "openai/gpt-4.1-mini": { + "max_input_tokens": 1047576, + "max_output_tokens": 32768, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -1927,9 +1506,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "mistralai/mistral-small-3.2-24b-instruct:free": { - "max_input_tokens": 96000, - "max_output_tokens": 96000, + "openai/gpt-4o-mini": { + "max_input_tokens": 128000, + "max_output_tokens": 16384, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -1942,39 +1521,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "mistralai/devstral-small-2507": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": True, - }, - "mistralai/mistral-nemo:free": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, - "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": True, - }, - "mistralai/mistral-medium-3.1": { - "max_input_tokens": 262144, - "max_output_tokens": 262144, + "openai/gpt-5": { + "max_input_tokens": 400000, + "max_output_tokens": 128000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -1983,10 +1532,25 @@ _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, }, + "openai/gpt-5-chat": { + "max_input_tokens": 400000, + "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, + }, "openai/gpt-5-codex": { "max_input_tokens": 400000, "max_output_tokens": 128000, @@ -2002,6 +1566,52 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, + "openai/gpt-5-image": { + "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": True, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "openai/gpt-5-mini": { + "max_input_tokens": 400000, + "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, + }, + "openai/gpt-5-nano": { + "max_input_tokens": 400000, + "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, + }, "openai/gpt-5-pro": { "max_input_tokens": 400000, "max_output_tokens": 272000, @@ -2017,66 +1627,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/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, - }, - "openai/gpt-5.1-codex-max": { - "max_input_tokens": 400000, - "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, - }, - "openai/gpt-5.2-codex": { - "max_input_tokens": 400000, - "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, - }, - "openai/gpt-oss-120b:exacto": { - "max_input_tokens": 131072, - "max_output_tokens": 32768, - "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": True, - }, "openai/gpt-5.1": { "max_input_tokens": 400000, "max_output_tokens": 128000, @@ -2092,36 +1642,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/gpt-5.2-chat": { - "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": True, - "tool_calling": True, - "structured_output": True, - }, - "openai/gpt-5-chat": { - "max_input_tokens": 400000, - "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, - }, "openai/gpt-5.1-chat": { "max_input_tokens": 128000, "max_output_tokens": 16384, @@ -2137,27 +1657,26 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/gpt-5-image": { + "openai/gpt-5.1-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": True, + "image_outputs": False, "audio_outputs": False, "video_outputs": False, "reasoning_output": True, "tool_calling": True, "structured_output": True, }, - "openai/gpt-oss-120b": { - "max_input_tokens": 131072, - "max_output_tokens": 32768, + "openai/gpt-5.1-codex-max": { + "max_input_tokens": 400000, + "max_output_tokens": 128000, "text_inputs": True, - "image_inputs": False, + "image_inputs": True, "audio_inputs": False, "video_inputs": False, "text_outputs": True, @@ -2198,38 +1717,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/gpt-oss-20b:free": { - "max_input_tokens": 131072, - "max_output_tokens": 32768, - "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, - }, - "openai/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, - }, - "openai/gpt-5": { - "max_input_tokens": 400000, - "max_output_tokens": 128000, + "openai/gpt-5.2-chat": { + "max_input_tokens": 128000, + "max_output_tokens": 16384, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -2242,51 +1732,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/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, - }, - "openai/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, - }, - "openai/gpt-oss-safeguard-20b": { - "max_input_tokens": 131072, - "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, - }, - "openai/gpt-5.1-codex": { + "openai/gpt-5.2-codex": { "max_input_tokens": 400000, "max_output_tokens": 128000, "text_inputs": True, @@ -2316,11 +1762,11 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/gpt-5-mini": { - "max_input_tokens": 400000, - "max_output_tokens": 128000, + "openai/gpt-oss-120b": { + "max_input_tokens": 131072, + "max_output_tokens": 32768, "text_inputs": True, - "image_inputs": True, + "image_inputs": False, "audio_inputs": False, "video_inputs": False, "text_outputs": True, @@ -2331,7 +1777,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "openai/gpt-oss-20b": { + "openai/gpt-oss-120b:exacto": { "max_input_tokens": 131072, "max_output_tokens": 32768, "text_inputs": True, @@ -2360,9 +1806,52 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "openai/gpt-5-nano": { - "max_input_tokens": 400000, - "max_output_tokens": 128000, + "openai/gpt-oss-20b": { + "max_input_tokens": 131072, + "max_output_tokens": 32768, + "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": True, + }, + "openai/gpt-oss-20b:free": { + "max_input_tokens": 131072, + "max_output_tokens": 32768, + "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, + }, + "openai/gpt-oss-safeguard-20b": { + "max_input_tokens": 131072, + "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, + }, + "openai/o4-mini": { + "max_input_tokens": 200000, + "max_output_tokens": 100000, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -2375,9 +1864,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "minimax/minimax-m1": { - "max_input_tokens": 1000000, - "max_output_tokens": 40000, + "openrouter/aurora-alpha": { + "max_input_tokens": 128000, + "max_output_tokens": 50000, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -2388,10 +1877,25 @@ _PROFILES: dict[str, dict[str, Any]] = { "video_outputs": False, "reasoning_output": True, "tool_calling": True, + "structured_output": True, }, - "minimax/minimax-01": { - "max_input_tokens": 1000000, - "max_output_tokens": 1000000, + "openrouter/sherlock-dash-alpha": { + "max_input_tokens": 1840000, + "max_output_tokens": 0, + "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, + }, + "openrouter/sherlock-think-alpha": { + "max_input_tokens": 1840000, + "max_output_tokens": 0, "text_inputs": True, "image_inputs": True, "audio_inputs": False, @@ -2403,9 +1907,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "minimax/minimax-m2.1": { - "max_input_tokens": 204800, - "max_output_tokens": 131072, + "prime-intellect/intellect-3": { + "max_input_tokens": 131072, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -2418,9 +1922,9 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "minimax/minimax-m2": { - "max_input_tokens": 196600, - "max_output_tokens": 118000, + "qwen/qwen-2.5-coder-32b-instruct": { + "max_input_tokens": 32768, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -2429,237 +1933,100 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "minimax/minimax-m2.5": { - "max_input_tokens": 204800, - "max_output_tokens": 131072, - "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": True, - }, - "bytedance-seed/seedream-4.5": { - "max_input_tokens": 4096, - "max_output_tokens": 4096, - "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": False, "tool_calling": False, - }, - "anthropic/claude-3.7-sonnet": { - "max_input_tokens": 200000, - "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, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - }, - "anthropic/claude-opus-4.1": { - "max_input_tokens": 200000, - "max_output_tokens": 32000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, "structured_output": True, }, - "anthropic/claude-haiku-4.5": { - "max_input_tokens": 200000, - "max_output_tokens": 64000, + "qwen/qwen-2.5-vl-7b-instruct:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, "text_inputs": True, "image_inputs": True, "audio_inputs": False, - "pdf_inputs": True, "video_inputs": False, "text_outputs": True, "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": True, + "reasoning_output": False, "tool_calling": True, - "structured_output": True, }, - "anthropic/claude-3.5-haiku": { - "max_input_tokens": 200000, + "qwen/qwen2.5-vl-32b-instruct:free": { + "max_input_tokens": 8192, "max_output_tokens": 8192, "text_inputs": True, "image_inputs": True, "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, + "video_inputs": True, "text_outputs": True, "image_outputs": False, "audio_outputs": False, "video_outputs": False, "reasoning_output": False, "tool_calling": True, - }, - "anthropic/claude-opus-4.5": { - "max_input_tokens": 200000, - "max_output_tokens": 32000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, "structured_output": True, }, - "anthropic/claude-opus-4": { - "max_input_tokens": 200000, - "max_output_tokens": 32000, + "qwen/qwen2.5-vl-72b-instruct": { + "max_input_tokens": 32768, + "max_output_tokens": 8192, "text_inputs": True, "image_inputs": True, "audio_inputs": False, - "pdf_inputs": True, "video_inputs": False, "text_outputs": True, "image_outputs": False, "audio_outputs": False, "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - }, - "anthropic/claude-sonnet-4": { - "max_input_tokens": 200000, - "max_output_tokens": 64000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - }, - "anthropic/claude-sonnet-4.5": { - "max_input_tokens": 1000000, - "max_output_tokens": 64000, - "text_inputs": True, - "image_inputs": True, - "audio_inputs": False, - "pdf_inputs": True, - "video_inputs": False, - "text_outputs": True, - "image_outputs": False, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "anthropic/claude-opus-4.6": { - "max_input_tokens": 1000000, - "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, - "audio_outputs": False, - "video_outputs": False, - "reasoning_output": True, - "tool_calling": True, - "structured_output": True, - }, - "black-forest-labs/flux.2-pro": { - "max_input_tokens": 46864, - "max_output_tokens": 46864, - "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": False, "tool_calling": False, + "structured_output": True, }, - "black-forest-labs/flux.2-flex": { - "max_input_tokens": 67344, - "max_output_tokens": 67344, + "qwen/qwen2.5-vl-72b-instruct:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, "text_inputs": True, "image_inputs": True, "audio_inputs": False, "video_inputs": False, "text_outputs": True, - "image_outputs": True, + "image_outputs": False, "audio_outputs": False, "video_outputs": False, "reasoning_output": False, - "tool_calling": False, + "tool_calling": True, }, - "black-forest-labs/flux.2-max": { - "max_input_tokens": 46864, - "max_output_tokens": 46864, - "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": False, - "tool_calling": False, - }, - "black-forest-labs/flux.2-klein-4b": { + "qwen/qwen3-14b:free": { "max_input_tokens": 40960, "max_output_tokens": 40960, "text_inputs": True, - "image_inputs": True, + "image_inputs": False, "audio_inputs": False, "video_inputs": False, "text_outputs": True, - "image_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "qwen/qwen3-235b-a22b-07-25": { + "max_input_tokens": 262144, + "max_output_tokens": 131072, + "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, + "tool_calling": True, + "structured_output": True, }, - "nousresearch/hermes-4-405b": { - "max_input_tokens": 131072, + "qwen/qwen3-235b-a22b-07-25:free": { + "max_input_tokens": 262144, "max_output_tokens": 131072, "text_inputs": True, "image_inputs": False, @@ -2669,10 +2036,25 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, + "reasoning_output": False, + "tool_calling": True, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + "max_input_tokens": 262144, + "max_output_tokens": 81920, + "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": True, }, - "nousresearch/hermes-4-70b": { + "qwen/qwen3-235b-a22b:free": { "max_input_tokens": 131072, "max_output_tokens": 131072, "text_inputs": True, @@ -2687,7 +2069,461 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_calling": True, "structured_output": True, }, - "nousresearch/deephermes-3-llama-3-8b-preview": { + "qwen/qwen3-30b-a3b-instruct-2507": { + "max_input_tokens": 262000, + "max_output_tokens": 262000, + "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": True, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + "max_input_tokens": 262000, + "max_output_tokens": 262000, + "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": True, + }, + "qwen/qwen3-30b-a3b:free": { + "max_input_tokens": 40960, + "max_output_tokens": 40960, + "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": True, + }, + "qwen/qwen3-32b:free": { + "max_input_tokens": 40960, + "max_output_tokens": 40960, + "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": True, + }, + "qwen/qwen3-4b:free": { + "max_input_tokens": 40960, + "max_output_tokens": 40960, + "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": True, + }, + "qwen/qwen3-8b:free": { + "max_input_tokens": 40960, + "max_output_tokens": 40960, + "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": True, + }, + "qwen/qwen3-coder": { + "max_input_tokens": 262144, + "max_output_tokens": 66536, + "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": True, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + "max_input_tokens": 160000, + "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": False, + "tool_calling": True, + "structured_output": True, + }, + "qwen/qwen3-coder-flash": { + "max_input_tokens": 128000, + "max_output_tokens": 66536, + "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, + }, + "qwen/qwen3-coder:exacto": { + "max_input_tokens": 131072, + "max_output_tokens": 32768, + "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": True, + }, + "qwen/qwen3-coder:free": { + "max_input_tokens": 262144, + "max_output_tokens": 66536, + "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, + }, + "qwen/qwen3-max": { + "max_input_tokens": 262144, + "max_output_tokens": 32768, + "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, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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": True, + }, + "qwen/qwen3-next-80b-a3b-instruct:free": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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": True, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "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": True, + }, + "qwen/qwen3.5-397b-a17b": { + "max_input_tokens": 262144, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "qwen/qwen3.5-plus-02-15": { + "max_input_tokens": 1000000, + "max_output_tokens": 65536, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "qwen/qwq-32b:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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": True, + }, + "rekaai/reka-flash-3": { + "max_input_tokens": 32768, + "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": True, + "tool_calling": True, + }, + "sarvamai/sarvam-m:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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, + }, + "sourceful/riverflow-v2-fast-preview": { + "max_input_tokens": 8192, + "max_output_tokens": 8192, + "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, + }, + "sourceful/riverflow-v2-max-preview": { + "max_input_tokens": 8192, + "max_output_tokens": 8192, + "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, + }, + "sourceful/riverflow-v2-standard-preview": { + "max_input_tokens": 8192, + "max_output_tokens": 8192, + "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, + }, + "stepfun/step-3.5-flash": { + "max_input_tokens": 256000, + "max_output_tokens": 256000, + "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, + }, + "stepfun/step-3.5-flash:free": { + "max_input_tokens": 256000, + "max_output_tokens": 256000, + "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, + }, + "thudm/glm-z1-32b:free": { + "max_input_tokens": 32768, + "max_output_tokens": 32768, + "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, + }, + "tngtech/deepseek-r1t2-chimera:free": { + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "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, + }, + "tngtech/tng-r1t-chimera:free": { + "max_input_tokens": 163840, + "max_output_tokens": 163840, + "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": True, + }, + "x-ai/grok-3": { + "max_input_tokens": 131072, + "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": True, + }, + "x-ai/grok-3-beta": { + "max_input_tokens": 131072, + "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, + }, + "x-ai/grok-3-mini": { + "max_input_tokens": 131072, + "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": True, + "tool_calling": True, + "structured_output": True, + }, + "x-ai/grok-3-mini-beta": { "max_input_tokens": 131072, "max_output_tokens": 8192, "text_inputs": True, @@ -2701,9 +2537,114 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "nousresearch/hermes-3-llama-3.1-405b:free": { - "max_input_tokens": 131072, - "max_output_tokens": 131072, + "x-ai/grok-4": { + "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": True, + }, + "x-ai/grok-4-fast": { + "max_input_tokens": 2000000, + "max_output_tokens": 30000, + "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, + }, + "x-ai/grok-4.1-fast": { + "max_input_tokens": 2000000, + "max_output_tokens": 30000, + "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, + }, + "x-ai/grok-code-fast-1": { + "max_input_tokens": 256000, + "max_output_tokens": 10000, + "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": True, + }, + "xiaomi/mimo-v2-flash": { + "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": True, + }, + "z-ai/glm-4.5": { + "max_input_tokens": 128000, + "max_output_tokens": 96000, + "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": True, + }, + "z-ai/glm-4.5-air": { + "max_input_tokens": 128000, + "max_output_tokens": 96000, + "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": True, + }, + "z-ai/glm-4.5-air:free": { + "max_input_tokens": 128000, + "max_output_tokens": 96000, "text_inputs": True, "image_inputs": False, "audio_inputs": False, @@ -2715,4 +2656,94 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": False, }, + "z-ai/glm-4.5v": { + "max_input_tokens": 64000, + "max_output_tokens": 16384, + "text_inputs": True, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": True, + "text_outputs": True, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + }, + "z-ai/glm-4.6": { + "max_input_tokens": 200000, + "max_output_tokens": 128000, + "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": True, + }, + "z-ai/glm-4.6:exacto": { + "max_input_tokens": 200000, + "max_output_tokens": 128000, + "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": True, + }, + "z-ai/glm-4.7": { + "max_input_tokens": 204800, + "max_output_tokens": 131072, + "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": True, + }, + "z-ai/glm-4.7-flash": { + "max_input_tokens": 200000, + "max_output_tokens": 65535, + "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": True, + }, + "z-ai/glm-5": { + "max_input_tokens": 202752, + "max_output_tokens": 131000, + "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": True, + }, } diff --git a/libs/partners/perplexity/langchain_perplexity/data/_profiles.py b/libs/partners/perplexity/langchain_perplexity/data/_profiles.py index 277701ea2b5..9a83c0a1dce 100644 --- a/libs/partners/perplexity/langchain_perplexity/data/_profiles.py +++ b/libs/partners/perplexity/langchain_perplexity/data/_profiles.py @@ -16,20 +16,6 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "sonar-reasoning-pro": { - "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": True, - "tool_calling": False, - }, "sonar": { "max_input_tokens": 128000, "max_output_tokens": 4096, @@ -72,4 +58,18 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": False, }, + "sonar-reasoning-pro": { + "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": True, + "tool_calling": False, + }, } diff --git a/libs/partners/xai/langchain_xai/data/_profiles.py b/libs/partners/xai/langchain_xai/data/_profiles.py index 1f1bc07485c..a497352119f 100644 --- a/libs/partners/xai/langchain_xai/data/_profiles.py +++ b/libs/partners/xai/langchain_xai/data/_profiles.py @@ -16,20 +16,6 @@ https://docs.langchain.com/oss/python/langchain/models#updating-or-overwriting-p from typing import Any _PROFILES: dict[str, dict[str, Any]] = { - "grok-2-1212": { - "max_input_tokens": 131072, - "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, - }, "grok-2": { "max_input_tokens": 131072, "max_output_tokens": 8192, @@ -44,7 +30,21 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "grok-3-fast-latest": { + "grok-2-1212": { + "max_input_tokens": 131072, + "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, + }, + "grok-2-latest": { "max_input_tokens": 131072, "max_output_tokens": 8192, "text_inputs": True, @@ -72,34 +72,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "grok-3": { - "max_input_tokens": 131072, - "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, - }, - "grok-code-fast-1": { - "max_input_tokens": 256000, - "max_output_tokens": 10000, - "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, - }, "grok-2-vision-1212": { "max_input_tokens": 8192, "max_output_tokens": 4096, @@ -114,104 +86,6 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "grok-4-1-fast-non-reasoning": { - "max_input_tokens": 2000000, - "max_output_tokens": 30000, - "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, - }, - "grok-beta": { - "max_input_tokens": 131072, - "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": True, - }, - "grok-3-mini-fast": { - "max_input_tokens": 131072, - "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": True, - "tool_calling": True, - }, - "grok-4-fast": { - "max_input_tokens": 2000000, - "max_output_tokens": 30000, - "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, - }, - "grok-4": { - "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, - }, - "grok-3-latest": { - "max_input_tokens": 131072, - "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, - }, - "grok-4-1-fast": { - "max_input_tokens": 2000000, - "max_output_tokens": 30000, - "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, - }, "grok-2-vision-latest": { "max_input_tokens": 8192, "max_output_tokens": 4096, @@ -226,7 +100,63 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "grok-3-mini-latest": { + "grok-3": { + "max_input_tokens": 131072, + "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, + }, + "grok-3-fast": { + "max_input_tokens": 131072, + "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, + }, + "grok-3-fast-latest": { + "max_input_tokens": 131072, + "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, + }, + "grok-3-latest": { + "max_input_tokens": 131072, + "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, + }, + "grok-3-mini": { "max_input_tokens": 131072, "max_output_tokens": 8192, "text_inputs": True, @@ -240,7 +170,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "grok-3-mini": { + "grok-3-mini-fast": { "max_input_tokens": 131072, "max_output_tokens": 8192, "text_inputs": True, @@ -268,7 +198,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": True, "tool_calling": True, }, - "grok-2-latest": { + "grok-3-mini-latest": { "max_input_tokens": 131072, "max_output_tokens": 8192, "text_inputs": True, @@ -279,9 +209,65 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_outputs": False, "audio_outputs": False, "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + }, + "grok-4": { + "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, + }, + "grok-4-1-fast": { + "max_input_tokens": 2000000, + "max_output_tokens": 30000, + "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, + }, + "grok-4-1-fast-non-reasoning": { + "max_input_tokens": 2000000, + "max_output_tokens": 30000, + "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, }, + "grok-4-fast": { + "max_input_tokens": 2000000, + "max_output_tokens": 30000, + "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, + }, "grok-4-fast-non-reasoning": { "max_input_tokens": 2000000, "max_output_tokens": 30000, @@ -296,6 +282,34 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, + "grok-beta": { + "max_input_tokens": 131072, + "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": True, + }, + "grok-code-fast-1": { + "max_input_tokens": 256000, + "max_output_tokens": 10000, + "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, + }, "grok-vision-beta": { "max_input_tokens": 8192, "max_output_tokens": 4096, @@ -310,18 +324,4 @@ _PROFILES: dict[str, dict[str, Any]] = { "reasoning_output": False, "tool_calling": True, }, - "grok-3-fast": { - "max_input_tokens": 131072, - "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, - }, }