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]] = {
"codestral-latest": {
"name": "Codestral (latest)",
"release_date": "2024-05-29",
"last_updated": "2025-01-04",
"open_weights": True,
"max_input_tokens": 256000,
"max_output_tokens": 4096,
"text_inputs": True,
@@ -29,8 +33,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"devstral-2512": {
"name": "Devstral 2",
"release_date": "2025-12-09",
"last_updated": "2025-12-09",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"text_inputs": True,
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"devstral-medium-2507": {
"name": "Devstral Medium",
"release_date": "2025-07-10",
"last_updated": "2025-07-10",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"devstral-medium-latest": {
"name": "Devstral 2 (latest)",
"release_date": "2025-12-02",
"last_updated": "2025-12-02",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"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,
},
"devstral-small-2505": {
"name": "Devstral Small 2505",
"release_date": "2025-05-07",
"last_updated": "2025-05-07",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"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,
},
"devstral-small-2507": {
"name": "Devstral Small",
"release_date": "2025-07-10",
"last_updated": "2025-07-10",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -99,8 +133,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"labs-devstral-small-2512": {
"name": "Devstral Small 2",
"release_date": "2025-12-09",
"last_updated": "2025-12-09",
"open_weights": True,
"max_input_tokens": 256000,
"max_output_tokens": 256000,
"text_inputs": True,
@@ -113,8 +153,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"magistral-medium-latest": {
"name": "Magistral Medium (latest)",
"release_date": "2025-03-17",
"last_updated": "2025-03-20",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -127,8 +173,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"magistral-small": {
"name": "Magistral Small",
"release_date": "2025-03-17",
"last_updated": "2025-03-17",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -141,8 +193,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"ministral-3b-latest": {
"name": "Ministral 3B (latest)",
"release_date": "2024-10-01",
"last_updated": "2024-10-04",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -155,8 +213,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"ministral-8b-latest": {
"name": "Ministral 8B (latest)",
"release_date": "2024-10-01",
"last_updated": "2024-10-04",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -169,8 +233,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"mistral-embed": {
"name": "Mistral Embed",
"release_date": "2023-12-11",
"last_updated": "2023-12-11",
"open_weights": False,
"max_input_tokens": 8000,
"max_output_tokens": 3072,
"text_inputs": True,
@@ -183,8 +253,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"attachment": False,
"temperature": False,
},
"mistral-large-2411": {
"name": "Mistral Large 2.1",
"release_date": "2024-11-01",
"last_updated": "2024-11-04",
"open_weights": True,
"max_input_tokens": 131072,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -197,8 +273,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"mistral-large-2512": {
"name": "Mistral Large 3",
"release_date": "2024-11-01",
"last_updated": "2025-12-02",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"text_inputs": True,
@@ -211,8 +293,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"mistral-large-latest": {
"name": "Mistral Large (latest)",
"release_date": "2024-11-01",
"last_updated": "2025-12-02",
"open_weights": True,
"max_input_tokens": 262144,
"max_output_tokens": 262144,
"text_inputs": True,
@@ -225,8 +313,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"mistral-medium-2505": {
"name": "Mistral Medium 3",
"release_date": "2025-05-07",
"last_updated": "2025-05-07",
"open_weights": False,
"max_input_tokens": 131072,
"max_output_tokens": 131072,
"text_inputs": True,
@@ -239,8 +333,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"mistral-medium-2508": {
"name": "Mistral Medium 3.1",
"release_date": "2025-08-12",
"last_updated": "2025-08-12",
"open_weights": False,
"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": False,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"mistral-medium-latest": {
"name": "Mistral Medium (latest)",
"release_date": "2025-05-07",
"last_updated": "2025-05-10",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -267,8 +373,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"mistral-nemo": {
"name": "Mistral Nemo",
"release_date": "2024-07-01",
"last_updated": "2024-07-01",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -281,8 +393,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"mistral-small-2506": {
"name": "Mistral Small 3.2",
"release_date": "2025-06-20",
"last_updated": "2025-06-20",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -295,8 +413,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"mistral-small-latest": {
"name": "Mistral Small (latest)",
"release_date": "2024-09-01",
"last_updated": "2024-09-04",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 16384,
"text_inputs": True,
@@ -309,8 +433,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"open-mistral-7b": {
"name": "Mistral 7B",
"release_date": "2023-09-27",
"last_updated": "2023-09-27",
"open_weights": True,
"max_input_tokens": 8000,
"max_output_tokens": 8000,
"text_inputs": True,
@@ -323,8 +453,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"open-mixtral-8x22b": {
"name": "Mixtral 8x22B",
"release_date": "2024-04-17",
"last_updated": "2024-04-17",
"open_weights": True,
"max_input_tokens": 64000,
"max_output_tokens": 64000,
"text_inputs": True,
@@ -337,8 +473,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"open-mixtral-8x7b": {
"name": "Mixtral 8x7B",
"release_date": "2023-12-11",
"last_updated": "2023-12-11",
"open_weights": True,
"max_input_tokens": 32000,
"max_output_tokens": 32000,
"text_inputs": True,
@@ -351,8 +493,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": False,
"temperature": True,
},
"pixtral-12b": {
"name": "Pixtral 12B",
"release_date": "2024-09-01",
"last_updated": "2024-09-01",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -365,8 +513,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
"pixtral-large-latest": {
"name": "Pixtral Large (latest)",
"release_date": "2024-11-01",
"last_updated": "2024-11-04",
"open_weights": True,
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"text_inputs": True,
@@ -379,5 +533,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": True,
"attachment": True,
"temperature": True,
},
}