feat(model-profiles): new fields + Makefile target (#35788)

Extract additional fields from models.dev into `_model_data_to_profile`:
`name`, `status`, `release_date`, `last_updated`, `open_weights`,
`attachment`, `temperature`

Move the model profile refresh logic from an inline bash script in the
GitHub Actions workflow into a `make refresh-profiles` target in
`libs/model-profiles/Makefile`. This makes it runnable locally with a
single command and keeps the provider map in one place instead of
duplicated between CI and developer docs.
This commit is contained in:
Mason Daugherty
2026-03-12 09:56:25 -04:00
committed by GitHub
parent 1891d414be
commit 5d9568b5f5
15 changed files with 2373 additions and 34 deletions

View File

@@ -17,6 +17,10 @@ from typing import Any
_PROFILES: dict[str, dict[str, Any]] = {
"MiniMaxAI/MiniMax-M2.1": {
"name": "MiniMax-M2.1",
"release_date": "2025-12-23",
"last_updated": "2025-12-23",
"open_weights": True,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"MiniMaxAI/MiniMax-M2.5": {
"name": "MiniMax-M2.5",
"release_date": "2026-02-12",
"last_updated": "2026-02-12",
"open_weights": True,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"Qwen/Qwen3-235B-A22B-Thinking-2507": {
"name": "Qwen3-235B-A22B-Thinking-2507",
"release_date": "2025-07-25",
"last_updated": "2025-07-25",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"Qwen/Qwen3-Coder-480B-A35B-Instruct": {
"name": "Qwen3-Coder-480B-A35B-Instruct",
"release_date": "2025-07-23",
"last_updated": "2025-07-23",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 66536,
"text_inputs": True,
@@ -71,8 +93,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"Qwen/Qwen3-Coder-Next": {
"name": "Qwen3-Coder-Next",
"release_date": "2026-02-03",
"last_updated": "2026-02-03",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 65536,
"text_inputs": True,
@@ -85,8 +113,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"Qwen/Qwen3-Embedding-4B": {
"name": "Qwen 3 Embedding 4B",
"release_date": "2025-01-01",
"last_updated": "2025-01-01",
"open_weights": True,
"max_input_tokens": 32000,
"max_output_tokens": 2048,
"text_inputs": True,
@@ -99,8 +133,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"attachment": False,
"temperature": False,
},
"Qwen/Qwen3-Embedding-8B": {
"name": "Qwen 3 Embedding 8B",
"release_date": "2025-01-01",
"last_updated": "2025-01-01",
"open_weights": True,
"max_input_tokens": 32000,
"max_output_tokens": 4096,
"text_inputs": True,
@@ -113,8 +153,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"attachment": False,
"temperature": False,
},
"Qwen/Qwen3-Next-80B-A3B-Instruct": {
"name": "Qwen3-Next-80B-A3B-Instruct",
"release_date": "2025-09-11",
"last_updated": "2025-09-11",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 66536,
"text_inputs": True,
@@ -127,8 +173,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"Qwen/Qwen3-Next-80B-A3B-Thinking": {
"name": "Qwen3-Next-80B-A3B-Thinking",
"release_date": "2025-09-11",
"last_updated": "2025-09-11",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -141,8 +193,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"Qwen/Qwen3.5-397B-A17B": {
"name": "Qwen3.5-397B-A17B",
"release_date": "2026-02-01",
"last_updated": "2026-02-01",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 32768,
"text_inputs": True,
@@ -155,8 +213,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"XiaomiMiMo/MiMo-V2-Flash": {
"name": "MiMo-V2-Flash",
"release_date": "2025-12-16",
"last_updated": "2025-12-16",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 4096,
"text_inputs": True,
@@ -169,8 +233,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"deepseek-ai/DeepSeek-R1-0528": {
"name": "DeepSeek-R1-0528",
"release_date": "2025-05-28",
"last_updated": "2025-05-28",
"open_weights": True,
"max_input_tokens": 163840,
"max_output_tokens": 163840,
"text_inputs": True,
@@ -183,8 +253,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"deepseek-ai/DeepSeek-V3.2": {
"name": "DeepSeek-V3.2",
"release_date": "2025-12-01",
"last_updated": "2025-12-01",
"open_weights": True,
"max_input_tokens": 163840,
"max_output_tokens": 65536,
"text_inputs": True,
@@ -197,8 +273,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"moonshotai/Kimi-K2-Instruct": {
"name": "Kimi-K2-Instruct",
"release_date": "2025-07-14",
"last_updated": "2025-07-14",
"open_weights": True,
"max_input_tokens": 131072,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -211,8 +293,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"moonshotai/Kimi-K2-Instruct-0905": {
"name": "Kimi-K2-Instruct-0905",
"release_date": "2025-09-04",
"last_updated": "2025-09-04",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -225,8 +313,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"moonshotai/Kimi-K2-Thinking": {
"name": "Kimi-K2-Thinking",
"release_date": "2025-11-06",
"last_updated": "2025-11-06",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"text_inputs": True,
@@ -239,8 +333,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"moonshotai/Kimi-K2.5": {
"name": "Kimi-K2.5",
"release_date": "2026-01-01",
"last_updated": "2026-01-01",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"text_inputs": True,
@@ -253,8 +353,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"zai-org/GLM-4.7": {
"name": "GLM-4.7",
"release_date": "2025-12-22",
"last_updated": "2025-12-22",
"open_weights": True,
"max_input_tokens": 204800,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -267,8 +373,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"zai-org/GLM-4.7-Flash": {
"name": "GLM-4.7-Flash",
"release_date": "2025-08-08",
"last_updated": "2025-08-08",
"open_weights": True,
"max_input_tokens": 200000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -281,8 +393,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"zai-org/GLM-5": {
"name": "GLM-5",
"release_date": "2026-02-11",
"last_updated": "2026-02-11",
"open_weights": True,
"max_input_tokens": 202752,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -295,5 +413,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
}