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]] = {
"sonar": {
"name": "Sonar",
"release_date": "2024-01-01",
"last_updated": "2025-09-01",
"open_weights": False,
"max_input_tokens": 128000,
"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": False,
"attachment": False,
"temperature": True,
},
"sonar-deep-research": {
"name": "Perplexity Sonar Deep Research",
"release_date": "2025-02-01",
"last_updated": "2025-09-01",
"open_weights": False,
"max_input_tokens": 128000,
"max_output_tokens": 8192,
"text_inputs": True,
@@ -43,8 +53,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": False,
"attachment": False,
"temperature": False,
},
"sonar-pro": {
"name": "Sonar Pro",
"release_date": "2024-01-01",
"last_updated": "2025-09-01",
"open_weights": False,
"max_input_tokens": 200000,
"max_output_tokens": 8192,
"text_inputs": True,
@@ -57,8 +73,14 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": False,
"tool_calling": False,
"attachment": True,
"temperature": True,
},
"sonar-reasoning-pro": {
"name": "Sonar Reasoning Pro",
"release_date": "2024-01-01",
"last_updated": "2025-09-01",
"open_weights": False,
"max_input_tokens": 128000,
"max_output_tokens": 4096,
"text_inputs": True,
@@ -71,5 +93,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
"video_outputs": False,
"reasoning_output": True,
"tool_calling": False,
"attachment": True,
"temperature": True,
},
}