chore: update canonical models json (#11641)
Co-authored-by: Lifei Zhou <lifei@squareup.com>
This commit is contained in:
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),
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user