chore: update canonical models json (#11641)

Co-authored-by: Lifei Zhou <lifei@squareup.com>
This commit is contained in:
Kalvin C
2026-08-28 04:53:42 +00:00
committed by GitHub
parent caf59517cc
commit f87c4d73d1
4 changed files with 4101 additions and 2198 deletions
File diff suppressed because it is too large Load Diff
@@ -43,6 +43,17 @@
],
"model_count": 3
},
{
"id": "agnes",
"display_name": "Agnes AI",
"npm": "@ai-sdk/openai-compatible",
"api": "https://apihub.agnes-ai.com/v1",
"doc": "https://agnes-ai.com/doc",
"env": [
"AGNES_API_KEY"
],
"model_count": 3
},
{
"id": "ai-router",
"display_name": "AI-ROUTER",
@@ -65,6 +76,17 @@
],
"model_count": 9
},
{
"id": "aixy",
"display_name": "Aixy",
"npm": "@ai-sdk/openai-compatible",
"api": "https://api.aixy-gateway.com/v1",
"doc": "https://docs.aixy-gateway.com/integrations/overview",
"env": [
"AIXY_API_KEY"
],
"model_count": 1
},
{
"id": "aki-io",
"display_name": "AKI.IO",
@@ -228,7 +250,7 @@
"env": [
"BASETEN_API_KEY"
],
"model_count": 19
"model_count": 20
},
{
"id": "berget",
@@ -294,7 +316,7 @@
"env": [
"CLINE_API_KEY"
],
"model_count": 11
"model_count": 13
},
{
"id": "cloudferro-sherlock",
@@ -317,7 +339,7 @@
"CLOUDFLARE_ACCOUNT_ID",
"CLOUDFLARE_API_KEY"
],
"model_count": 25
"model_count": 26
},
{
"id": "coralbricks",
@@ -406,7 +428,7 @@
"env": [
"DEEPSEEK_API_KEY"
],
"model_count": 5
"model_count": 3
},
{
"id": "digitalocean",
@@ -472,7 +494,7 @@
"env": [
"EDENAI_API_KEY"
],
"model_count": 232
"model_count": 235
},
{
"id": "empiriolabs",
@@ -483,7 +505,7 @@
"env": [
"EMPIRIOLABS_API_KEY"
],
"model_count": 55
"model_count": 57
},
{
"id": "evroc",
@@ -494,7 +516,7 @@
"env": [
"EVROC_API_KEY"
],
"model_count": 15
"model_count": 16
},
{
"id": "fastrouter",
@@ -571,7 +593,7 @@
"env": [
"GMICLOUD_API_KEY"
],
"model_count": 13
"model_count": 15
},
{
"id": "greenpt",
@@ -626,7 +648,7 @@
"env": [
"HF_TOKEN"
],
"model_count": 69
"model_count": 71
},
{
"id": "hyper",
@@ -637,7 +659,7 @@
"env": [
"HYPER_API_KEY"
],
"model_count": 26
"model_count": 29
},
{
"id": "iflowcn",
@@ -728,6 +750,17 @@
],
"model_count": 17
},
{
"id": "iteracompute",
"display_name": "IteraCompute",
"npm": "@ai-sdk/openai-compatible",
"api": "https://api.iteracompute.com/v1",
"doc": "https://iteracompute.com/docs.html",
"env": [
"ITERACOMPUTE_API_KEY"
],
"model_count": 1
},
{
"id": "jalapeno",
"display_name": "Jalapeno Cloud",
@@ -770,7 +803,7 @@
"env": [
"KILO_API_KEY"
],
"model_count": 365
"model_count": 366
},
{
"id": "kimi-for-coding",
@@ -825,7 +858,7 @@
"env": [
"LLMGATEWAY_API_KEY"
],
"model_count": 187
"model_count": 189
},
{
"id": "llmgateway-providers",
@@ -836,7 +869,18 @@
"env": [
"LLMGATEWAY_API_KEY"
],
"model_count": 377
"model_count": 381
},
{
"id": "llmtech",
"display_name": "LLM Tech",
"npm": "@ai-sdk/openai-compatible",
"api": "https://api.llmtech.eu/v1",
"doc": "https://llmtech.eu/models/qwen3.8-27b",
"env": [
"LLMTECH_API_KEY"
],
"model_count": 1
},
{
"id": "llmtr",
@@ -1078,7 +1122,7 @@
"env": [
"NANO_GPT_API_KEY"
],
"model_count": 606
"model_count": 612
},
{
"id": "nearai",
@@ -1114,6 +1158,17 @@
],
"model_count": 42
},
{
"id": "neosmith",
"display_name": "NeoSmith",
"npm": "@ai-sdk/openai",
"api": "https://router.neosmith.ai/v1",
"doc": "https://neosmith.ai/docs",
"env": [
"NEOSMITH_API_KEY"
],
"model_count": 4
},
{
"id": "neuralwatt",
"display_name": "Neuralwatt",
@@ -1123,7 +1178,7 @@
"env": [
"NEURALWATT_API_KEY"
],
"model_count": 22
"model_count": 25
},
{
"id": "nova",
@@ -1200,7 +1255,7 @@
"env": [
"OPENCODE_API_KEY"
],
"model_count": 29
"model_count": 31
},
{
"id": "opper",
@@ -1235,6 +1290,17 @@
],
"model_count": 14
},
{
"id": "pendra",
"display_name": "Pendra",
"npm": "@ai-sdk/openai-compatible",
"api": "https://api.pendra.ai/api/v1",
"doc": "https://pendra.ai/docs/integrations/opencode",
"env": [
"PENDRA_API_KEY"
],
"model_count": 6
},
{
"id": "perplexity-agent",
"display_name": "Perplexity Agent",
@@ -1333,7 +1399,7 @@
"env": [
"REQUESTY_API_KEY"
],
"model_count": 139
"model_count": 140
},
{
"id": "routing-run",
@@ -1457,6 +1523,17 @@
],
"model_count": 8
},
{
"id": "standardcompute",
"display_name": "Standard Compute",
"npm": "@ai-sdk/openai-compatible",
"api": "https://api.stdcmpt.com/v1",
"doc": "https://standardcompute.com/models",
"env": [
"STANDARDCOMPUTE_API_KEY"
],
"model_count": 1
},
{
"id": "stepfun",
"display_name": "StepFun (China)",
@@ -1675,7 +1752,18 @@
"env": [
"VIVGRID_API_KEY"
],
"model_count": 20
"model_count": 21
},
{
"id": "volcengine",
"display_name": "Volcengine Ark",
"npm": "@ai-sdk/openai-compatible",
"api": "https://ark.cn-beijing.volces.com/api/v3",
"doc": "https://www.volcengine.com/docs/82379/1330310",
"env": [
"ARK_API_KEY"
],
"model_count": 15
},
{
"id": "vultr",
@@ -1708,7 +1796,7 @@
"env": [
"WANDB_API_KEY"
],
"model_count": 29
"model_count": 26
},
{
"id": "xiaomi",
@@ -1774,7 +1862,7 @@
"env": [
"ZHIPU_API_KEY"
],
"model_count": 14
"model_count": 16
},
{
"id": "zai-coding-plan",
@@ -1785,7 +1873,7 @@
"env": [
"ZHIPU_API_KEY"
],
"model_count": 5
"model_count": 7
},
{
"id": "zeldoc",
@@ -1829,7 +1917,7 @@
"env": [
"ZHIPU_API_KEY"
],
"model_count": 13
"model_count": 15
},
{
"id": "zhipuai-coding-plan",
@@ -1840,6 +1928,6 @@
"env": [
"ZHIPU_API_KEY"
],
"model_count": 8
"model_count": 10
}
]
@@ -473,12 +473,12 @@ mod tests {
// === DeepSeek ===
assert_eq!(
map_to_canonical_model("databricks", "databricks-deepseek-chat", r),
Some("deepseek/deepseek-chat".to_string())
map_to_canonical_model("databricks", "databricks-deepseek-v4-flash", r),
Some("deepseek/deepseek-v4-flash".to_string())
);
assert_eq!(
map_to_canonical_model("databricks", "deepseek-reasoner", r),
Some("deepseek/deepseek-reasoner".to_string())
map_to_canonical_model("databricks", "deepseek-v4-pro", r),
Some("deepseek/deepseek-v4-pro".to_string())
);
// === Grok (X.AI) ===
@@ -524,8 +524,8 @@ mod tests {
Some("mistralai/codestral".to_string())
);
assert_eq!(
map_to_canonical_model("databricks", "deepseek-deepseek-chat", r),
Some("deepseek/deepseek-chat".to_string())
map_to_canonical_model("databricks", "deepseek-deepseek-v4-flash", r),
Some("deepseek/deepseek-v4-flash".to_string())
);
assert_eq!(
map_to_canonical_model("databricks", "x-ai-grok-4.3", r),
+1 -19
View File
@@ -1670,25 +1670,7 @@ mod tests {
#[test]
fn test_bedrock_inference_config_omits_temperature_for_unsupported_model() {
// The Anthropic canonical registry maps this id and reports whether a
// custom temperature may be sent; when it cannot, temperature is left
// unset so the server default is used.
let mut config = ModelConfig::new("us.anthropic.claude-sonnet-4-5-20250929-v1:0");
config.temperature = Some(0.5);
let supported = bedrock_model_supports_temperature(&config);
let inference_config = bedrock_inference_config(&config);
if supported {
assert_eq!(inference_config.temperature(), Some(0.5));
} else {
assert_eq!(inference_config.temperature(), None);
}
}
#[test]
fn test_bedrock_inference_config_omits_temperature_for_bedrock_registry_unsupported_model() {
let mut config = ModelConfig::new("openai.gpt-5.4");
let mut config = ModelConfig::new("global.anthropic.claude-sonnet-5");
config.temperature = Some(0.5);
let inference_config = bedrock_inference_config(&config);