diff --git a/nanobot/config/schema.py b/nanobot/config/schema.py index 47f2babcd..a3c003b35 100644 --- a/nanobot/config/schema.py +++ b/nanobot/config/schema.py @@ -169,6 +169,7 @@ class ProvidersConfig(Base): openai_codex: ProviderConfig = Field(default_factory=ProviderConfig, exclude=True) # OpenAI Codex (OAuth) github_copilot: ProviderConfig = Field(default_factory=ProviderConfig, exclude=True) # Github Copilot (OAuth) qianfan: ProviderConfig = Field(default_factory=ProviderConfig) # Qianfan (百度千帆) + nvidia: ProviderConfig = Field(default_factory=ProviderConfig) # NVIDIA NIM (nvapi- keys) class HeartbeatConfig(Base): diff --git a/nanobot/providers/registry.py b/nanobot/providers/registry.py index 2e2bdbc50..0f4c9869a 100644 --- a/nanobot/providers/registry.py +++ b/nanobot/providers/registry.py @@ -428,6 +428,19 @@ PROVIDERS: tuple[ProviderSpec, ...] = ( is_local=True, default_api_base="http://localhost:8000/v3", ), + # === NVIDIA NIM (NVIDIA Inference Microservices) ======================= + # Keys start with "nvapi-", base URL at integrate.api.nvidia.com + ProviderSpec( + name="nvidia", + keywords=("nvidia", "nemotron", "nvapi"), + env_key="NVIDIA_NIM_API_KEY", + display_name="NVIDIA NIM", + backend="openai_compat", + is_gateway=False, + detect_by_key_prefix="nvapi-", + detect_by_base_keyword="nvidia.com", + default_api_base="https://integrate.api.nvidia.com/v1", + ), # === Auxiliary (not a primary LLM provider) ============================ # Groq: mainly used for Whisper voice transcription, also usable for LLM ProviderSpec(