add Nemotron-3-Super to ai lib #118
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
specs
https://deepinfra.com/dash/models/details?model=nvidia%2FNVIDIA-Nemotron-3-Super-120B-A12B&tab=api
check that all parameters can be used in our AI client API, using builder paradigm
make sure we give deepinfra priority if we can find the DEEPINFRA_API_KEY key for this model
make some integration tests which only run when the DEEPINFRA_API_KEY or OPENROUTER_API_KEY is being set
make nice example in rust
make sure we support https://openrouter.ai/nvidia/nemotron-3-super-120b-a12b:free
as well
so we support the deepinfra if key = preferred otherwise the openrouter one
Implementation Spec for Issue #118: Add Nemotron-3-Super to AI Lib
Objective
Add NVIDIA Nemotron-3-Super-120B-A12B as a new model in the
herolib_aicrate with DeepInfra as a new provider (preferred whenDEEPINFRA_API_KEYis set) and OpenRouter as a fallback (including the free tier endpoint).Requirements
DeepInfraas a newProvidervariant with base URLhttps://api.deepinfra.com/v1/openaiNemotronSuper120Bas a newModelvariantDEEPINFRA_API_KEYis setnvidia/nemotron-3-super-120b-a12b:freeas model IDDEEPINFRA_API_KEYorOPENROUTER_API_KEYenv varsFiles to Modify
crates/ai/src/provider.rsDeepInfravariant with base URL, env var, display namecrates/ai/src/model.rsNemotronSuper120Bvariant with DeepInfra + OpenRouter providerscrates/ai/src/client/mod.rsfrom_env()auto-discoverycrates/ai/src/rhai.rscrates/ai/src/lib.rscrates/ai/Cargo.tomlFiles to Create
crates/ai/tests/nemotron_super_integration.rscrates/ai/examples/rust/nemotron_super.rsImplementation Plan
Step 1: Add DeepInfra Provider
Files:
crates/ai/src/provider.rsDeepInfratoProviderenumDependencies: none
Step 2: Add Nemotron-3-Super Model
Files:
crates/ai/src/model.rsNemotronSuper120Bvariant with provider mappingsnvidia/NVIDIA-Nemotron-3-Super-120B-A12Bnvidia/nemotron-3-super-120b-a12b:freeDependencies: Step 1
Step 3: Register DeepInfra in Client
Files:
crates/ai/src/client/mod.rsProvider::DeepInfrato provider array (first position for priority)Dependencies: Step 1
Step 4: Update Rhai Bindings
Files:
crates/ai/src/rhai.rsnemotron_super_120bparsing inparse_model()Dependencies: Step 2
Step 5: Update Documentation
Files:
crates/ai/src/lib.rs,crates/ai/Cargo.tomlDependencies: Steps 1-2
Step 6: Create Integration Tests
Files:
crates/ai/tests/nemotron_super_integration.rsDependencies: Steps 1-3
Step 7: Create Rust Example
Files:
crates/ai/examples/rust/nemotron_super.rsDependencies: Steps 1-3
Acceptance Criteria
Provider::DeepInfraexists with correct base URL and env varModel::NemotronSuper120Bexists with DeepInfra first, OpenRouter secondAiClient::from_env()auto-discoversDEEPINFRA_API_KEYparse_model()handles the new modelcargo buildandcargo testsucceedTest Results
All unit and integration tests pass successfully.
Implementation Summary
Files Modified
crates/ai/src/provider.rs— AddedDeepInfraprovider variant with base URL, env var, and display namecrates/ai/src/model.rs— AddedNemotronSuper120Bmodel with DeepInfra (preferred) + OpenRouter (free) providerscrates/ai/src/client/mod.rs— Registered DeepInfra infrom_env()auto-discovery (first position for priority)crates/ai/src/rhai.rs— Addednemotron_super_120bparsing in Rhai bindingscrates/ai/src/lib.rs— Updated crate documentation with DeepInfra providercrates/ai/Cargo.toml— Updated description to include DeepInfracrates/ai/src/bin/modeltest.rs— Added DeepInfra model fetcher and discoverycrates/ai/examples/rust/modeltest.rs— Added DeepInfra model fetcher and discoveryFiles Created
crates/ai/tests/nemotron_super_integration.rs— Integration tests (6 tests: 2 API-gated, 4 unit)crates/ai/examples/rust/nemotron_super.rs— Rust example with prompt builder and custom optionsKey Details
nvidia/NVIDIA-Nemotron-3-Super-120B-A12Bnvidia/nemotron-3-super-120b-a12b:freeImplementation committed:
6227079bBrowse:
6227079b