Skip to content

feat(providers): add Mistral AI, Nebius AI, and Scaleway as first-class providers - #4485

Closed
CrispStrobe wants to merge 1 commit into
NousResearch:mainfrom
CrispStrobe:feat/add-nebius-scaleway-mistral-providers
Closed

CrispStrobe wants to merge 1 commit into
NousResearch:mainfrom
CrispStrobe:feat/add-nebius-scaleway-mistral-providers

Conversation

@CrispStrobe

Copy link
Copy Markdown

Summary

  • Mistral AIapi.mistral.ai/v1, MISTRAL_API_KEY, 8 curated models (mistral-large/medium/small-latest, codestral, devstral, mistral-saba, ministral-8b/3b)
  • Nebius AIapi.tokenfactory.nebius.com/v1, NEBIUS_API_KEY, 7 chat models (DeepSeek-R1-0528, Nemotron-Ultra-253B, gpt-oss-120b, Kimi-K2-Instruct/Thinking, GLM-4.5, Llama-3.3-70B)
  • Scaleway Generative APIsapi.scaleway.ai/v1, SCALEWAY_API_KEY / SCW_SECRET_KEY, 7 models (Llama-3.3-70B, Llama-3.1-8B, Mistral-Nemo, Qwen2.5-Coder-32B, DeepSeek-R1, Phi-4)

Each provider is wired up consistently across all four integration points:

  1. PROVIDER_REGISTRY in auth.py — base URL, env vars, auth type
  2. _PROVIDER_MODELS / _PROVIDER_LABELS / _PROVIDER_ALIASES / _PROVIDER_ORDER in models.py
  3. hermes model picker menu in main.py
  4. _model_flow_api_key_provider routing in main.py

All three use the generic api_key auth flow — no new code paths needed.

Test plan

  • 91/91 existing model/provider/setup tests pass (test_models, test_model_validation, test_status_model_provider, test_setup_model_provider)
  • ruff — no new issues
  • bandit — no new High/Medium issues
  • hermes model shows Mistral AI, Nebius AI, Scaleway in the picker
  • Selecting each provider prompts for API key and shows model list
  • Config saved correctly to ~/.hermes/config.yaml

🤖 Generated with Claude Code

…ss providers

Register all three in PROVIDER_REGISTRY with correct base URLs and env vars:
- mistral: api.mistral.ai/v1, MISTRAL_API_KEY
- nebius: api.tokenfactory.nebius.com/v1, NEBIUS_API_KEY (DSGVO-compliant EU)
- scaleway: api.scaleway.ai/v1, SCALEWAY_API_KEY / SCW_SECRET_KEY

Add curated model lists, display labels, canonical aliases, and provider
order entries in models.py. Wire all three into the `hermes model` picker
menu and route them through _model_flow_api_key_provider.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have area/config Config system, migrations, profiles labels May 1, 2026
@alt-glitch

Copy link
Copy Markdown

Overlaps with #7856 (Mistral-only PR). This PR bundles Mistral + Nebius + Scaleway together — review which to accept.

1 similar comment
@alt-glitch

Copy link
Copy Markdown

Overlaps with #7856 (Mistral-only PR). This PR bundles Mistral + Nebius + Scaleway together — review which to accept.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants