fix(onboard): refine nvidia nim onboarding catalogs and docs
This commit is contained in:
parent
daef8f8094
commit
dea5dcad36
3 changed files with 55 additions and 19 deletions
|
|
@ -71,6 +71,8 @@ Last verified: **February 18, 2026**.
|
||||||
- `zeroclaw models refresh --provider <ID>`
|
- `zeroclaw models refresh --provider <ID>`
|
||||||
- `zeroclaw models refresh --force`
|
- `zeroclaw models refresh --force`
|
||||||
|
|
||||||
|
`models refresh` currently supports live catalog refresh for provider IDs: `openrouter`, `openai`, `anthropic`, `groq`, `mistral`, `deepseek`, `xai`, `together-ai`, `gemini`, `ollama`, `astrai`, `venice`, `fireworks`, `cohere`, `moonshot`, `glm`, `zai`, `qwen`, and `nvidia`.
|
||||||
|
|
||||||
### `channel`
|
### `channel`
|
||||||
|
|
||||||
- `zeroclaw channel list`
|
- `zeroclaw channel list`
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,20 @@ Runtime resolution order is:
|
||||||
- Default onboarding model: `kimi-for-coding` (alternative: `kimi-k2.5`)
|
- Default onboarding model: `kimi-for-coding` (alternative: `kimi-k2.5`)
|
||||||
- Runtime auto-adds `User-Agent: KimiCLI/0.77` for compatibility.
|
- Runtime auto-adds `User-Agent: KimiCLI/0.77` for compatibility.
|
||||||
|
|
||||||
|
### NVIDIA NIM Notes
|
||||||
|
|
||||||
|
- Canonical provider ID: `nvidia`
|
||||||
|
- Aliases: `nvidia-nim`, `build.nvidia.com`
|
||||||
|
- Base API URL: `https://integrate.api.nvidia.com/v1`
|
||||||
|
- Model discovery: `zeroclaw models refresh --provider nvidia`
|
||||||
|
|
||||||
|
Recommended starter model IDs (verified against NVIDIA API catalog on February 18, 2026):
|
||||||
|
|
||||||
|
- `meta/llama-3.3-70b-instruct`
|
||||||
|
- `deepseek-ai/deepseek-v3.2`
|
||||||
|
- `nvidia/llama-3.3-nemotron-super-49b-v1.5`
|
||||||
|
- `nvidia/llama-3.1-nemotron-ultra-253b-v1`
|
||||||
|
|
||||||
## Custom Endpoints
|
## Custom Endpoints
|
||||||
|
|
||||||
- OpenAI-compatible endpoint:
|
- OpenAI-compatible endpoint:
|
||||||
|
|
|
||||||
|
|
@ -472,6 +472,7 @@ fn canonical_provider_name(provider_name: &str) -> &str {
|
||||||
"together" => "together-ai",
|
"together" => "together-ai",
|
||||||
"google" | "google-gemini" => "gemini",
|
"google" | "google-gemini" => "gemini",
|
||||||
"kimi_coding" | "kimi_for_coding" => "kimi-code",
|
"kimi_coding" | "kimi_for_coding" => "kimi-code",
|
||||||
|
"nvidia-nim" | "build.nvidia.com" => "nvidia",
|
||||||
_ => provider_name,
|
_ => provider_name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -479,13 +480,7 @@ fn canonical_provider_name(provider_name: &str) -> &str {
|
||||||
fn allows_unauthenticated_model_fetch(provider_name: &str) -> bool {
|
fn allows_unauthenticated_model_fetch(provider_name: &str) -> bool {
|
||||||
matches!(
|
matches!(
|
||||||
canonical_provider_name(provider_name),
|
canonical_provider_name(provider_name),
|
||||||
"openrouter"
|
"openrouter" | "ollama" | "venice" | "astrai" | "nvidia"
|
||||||
| "ollama"
|
|
||||||
| "venice"
|
|
||||||
| "astrai"
|
|
||||||
| "nvidia"
|
|
||||||
| "nvidia-nim"
|
|
||||||
| "build.nvidia.com"
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -520,7 +515,7 @@ fn default_model_for_provider(provider: &str) -> String {
|
||||||
"ollama" => "llama3.2".into(),
|
"ollama" => "llama3.2".into(),
|
||||||
"gemini" => "gemini-2.5-pro".into(),
|
"gemini" => "gemini-2.5-pro".into(),
|
||||||
"kimi-code" => "kimi-for-coding".into(),
|
"kimi-code" => "kimi-for-coding".into(),
|
||||||
"nvidia" | "nvidia-nim" | "build.nvidia.com" => "meta/llama-3.3-70b-instruct".into(),
|
"nvidia" => "meta/llama-3.3-70b-instruct".into(),
|
||||||
"astrai" => "anthropic/claude-sonnet-4.6".into(),
|
"astrai" => "anthropic/claude-sonnet-4.6".into(),
|
||||||
_ => "anthropic/claude-sonnet-4.6".into(),
|
_ => "anthropic/claude-sonnet-4.6".into(),
|
||||||
}
|
}
|
||||||
|
|
@ -792,22 +787,22 @@ fn curated_models_for_provider(provider_name: &str) -> Vec<(String, String)> {
|
||||||
"Qwen Turbo (fast and cost-efficient)".to_string(),
|
"Qwen Turbo (fast and cost-efficient)".to_string(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
"nvidia" | "nvidia-nim" | "build.nvidia.com" => vec![
|
"nvidia" => vec![
|
||||||
(
|
(
|
||||||
"meta/llama-3.3-70b-instruct".to_string(),
|
"meta/llama-3.3-70b-instruct".to_string(),
|
||||||
"Llama 3.3 70B Instruct (balanced default)".to_string(),
|
"Llama 3.3 70B Instruct (balanced default)".to_string(),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"deepseek-ai/deepseek-v3.2".to_string(),
|
"deepseek-ai/deepseek-v3.2".to_string(),
|
||||||
"DeepSeek V3.2 (reasoning + coding)".to_string(),
|
"DeepSeek V3.2 (advanced reasoning + coding)".to_string(),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"google/gemma-3-27b-it".to_string(),
|
"nvidia/llama-3.3-nemotron-super-49b-v1.5".to_string(),
|
||||||
"Gemma 3 27B IT (cost-efficient)".to_string(),
|
"Llama 3.3 Nemotron Super 49B v1.5 (NVIDIA-tuned)".to_string(),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
"meta/llama-3.1-405b-instruct".to_string(),
|
"nvidia/llama-3.1-nemotron-ultra-253b-v1".to_string(),
|
||||||
"Llama 3.1 405B Instruct (max quality)".to_string(),
|
"Llama 3.1 Nemotron Ultra 253B v1 (max quality)".to_string(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
"astrai" => vec![
|
"astrai" => vec![
|
||||||
|
|
@ -881,8 +876,6 @@ fn supports_live_model_fetch(provider_name: &str) -> bool {
|
||||||
| "zai"
|
| "zai"
|
||||||
| "qwen"
|
| "qwen"
|
||||||
| "nvidia"
|
| "nvidia"
|
||||||
| "nvidia-nim"
|
|
||||||
| "build.nvidia.com"
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -907,9 +900,7 @@ fn models_endpoint_for_provider(provider_name: &str) -> Option<&'static str> {
|
||||||
"glm" => Some("https://api.z.ai/api/paas/v4/models"),
|
"glm" => Some("https://api.z.ai/api/paas/v4/models"),
|
||||||
"zai" => Some("https://api.z.ai/api/coding/paas/v4/models"),
|
"zai" => Some("https://api.z.ai/api/coding/paas/v4/models"),
|
||||||
"qwen" => Some("https://dashscope.aliyuncs.com/compatible-mode/v1/models"),
|
"qwen" => Some("https://dashscope.aliyuncs.com/compatible-mode/v1/models"),
|
||||||
"nvidia" | "nvidia-nim" | "build.nvidia.com" => {
|
"nvidia" => Some("https://integrate.api.nvidia.com/v1/models"),
|
||||||
Some("https://integrate.api.nvidia.com/v1/models")
|
|
||||||
}
|
|
||||||
"astrai" => Some("https://as-trai.com/v1/models"),
|
"astrai" => Some("https://as-trai.com/v1/models"),
|
||||||
_ => None,
|
_ => None,
|
||||||
},
|
},
|
||||||
|
|
@ -4641,6 +4632,10 @@ mod tests {
|
||||||
);
|
);
|
||||||
assert_eq!(default_model_for_provider("venice"), "zai-org-glm-5");
|
assert_eq!(default_model_for_provider("venice"), "zai-org-glm-5");
|
||||||
assert_eq!(default_model_for_provider("moonshot"), "kimi-k2.5");
|
assert_eq!(default_model_for_provider("moonshot"), "kimi-k2.5");
|
||||||
|
assert_eq!(
|
||||||
|
default_model_for_provider("nvidia"),
|
||||||
|
"meta/llama-3.3-70b-instruct"
|
||||||
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
default_model_for_provider("nvidia-nim"),
|
default_model_for_provider("nvidia-nim"),
|
||||||
"meta/llama-3.3-70b-instruct"
|
"meta/llama-3.3-70b-instruct"
|
||||||
|
|
@ -4664,6 +4659,8 @@ mod tests {
|
||||||
assert_eq!(canonical_provider_name("minimax-cn"), "minimax");
|
assert_eq!(canonical_provider_name("minimax-cn"), "minimax");
|
||||||
assert_eq!(canonical_provider_name("zai-cn"), "zai");
|
assert_eq!(canonical_provider_name("zai-cn"), "zai");
|
||||||
assert_eq!(canonical_provider_name("z.ai-global"), "zai");
|
assert_eq!(canonical_provider_name("z.ai-global"), "zai");
|
||||||
|
assert_eq!(canonical_provider_name("nvidia-nim"), "nvidia");
|
||||||
|
assert_eq!(canonical_provider_name("build.nvidia.com"), "nvidia");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
@ -4757,6 +4754,9 @@ mod tests {
|
||||||
assert!(supports_live_model_fetch("google"));
|
assert!(supports_live_model_fetch("google"));
|
||||||
assert!(supports_live_model_fetch("grok"));
|
assert!(supports_live_model_fetch("grok"));
|
||||||
assert!(supports_live_model_fetch("together"));
|
assert!(supports_live_model_fetch("together"));
|
||||||
|
assert!(supports_live_model_fetch("nvidia"));
|
||||||
|
assert!(supports_live_model_fetch("nvidia-nim"));
|
||||||
|
assert!(supports_live_model_fetch("build.nvidia.com"));
|
||||||
assert!(supports_live_model_fetch("ollama"));
|
assert!(supports_live_model_fetch("ollama"));
|
||||||
assert!(supports_live_model_fetch("astrai"));
|
assert!(supports_live_model_fetch("astrai"));
|
||||||
assert!(supports_live_model_fetch("venice"));
|
assert!(supports_live_model_fetch("venice"));
|
||||||
|
|
@ -4800,6 +4800,26 @@ mod tests {
|
||||||
curated_models_for_provider("zai"),
|
curated_models_for_provider("zai"),
|
||||||
curated_models_for_provider("zai-cn")
|
curated_models_for_provider("zai-cn")
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
curated_models_for_provider("nvidia"),
|
||||||
|
curated_models_for_provider("nvidia-nim")
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
curated_models_for_provider("nvidia"),
|
||||||
|
curated_models_for_provider("build.nvidia.com")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn curated_models_for_nvidia_include_nim_catalog_entries() {
|
||||||
|
let ids: Vec<String> = curated_models_for_provider("nvidia")
|
||||||
|
.into_iter()
|
||||||
|
.map(|(id, _)| id)
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
assert!(ids.contains(&"meta/llama-3.3-70b-instruct".to_string()));
|
||||||
|
assert!(ids.contains(&"deepseek-ai/deepseek-v3.2".to_string()));
|
||||||
|
assert!(ids.contains(&"nvidia/llama-3.3-nemotron-super-49b-v1.5".to_string()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue