Ajoutez les modèles cloud du catalogue à Jan sans quitter le local-first.

Updated 2026-07-29

Jan fait tourner des modèles sur votre machine par conception, et ses réglages Model Providers acceptent n'importe quel endpoint compatible OpenAI pour les jours où le local ne suffit pas : ajoutez un fournisseur, réglez la Base URL sur https://api.apisrouter.com/v1, collez une seule clé, et les ids Claude, GPT, Gemini et DeepSeek rejoignent votre gamme locale.

Réponse rapide : un fournisseur dans Settings.

Ouvrez les Settings de Jan et allez dans Model Providers. Cliquez sur le contrôle plus à côté de la liste des fournisseurs pour ajouter un fournisseur personnalisé, donnez-lui un nom (APIsRouter), et sur les builds récents choisissez le format OpenAI API quand la boîte de dialogue le demande (Jan v0.8.1 a ajouté un sélecteur de format OpenAI-ou-Anthropic ; pour une passerelle choisissez OpenAI). Remplissez ensuite les deux champs qui comptent : Base URL https://api.apisrouter.com/v1 et votre clé API. Ajoutez les modèles que vous voulez par id : la documentation de Jan est explicite sur le fait que la propriété id doit correspondre au nom de modèle que sert l'endpoint, donc copiez les ids depuis le listing du catalogue (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash) plutôt que de les taper de mémoire. Enregistrez, et les ids apparaissent dans le sélecteur de modèle à côté de ce que vous faites tourner localement. Les libellés ont bougé entre les versions (les versions plus anciennes appelaient cette zone Remote Engines), donc traitez fournisseur, format, URL, clé, modèles comme le squelette stable.

Name:        APIsRouter
API Format:  OpenAI          (v0.8.1+ selector)
Base URL:    https://api.apisrouter.com/v1
API Key:     sk-YOUR-APISROUTER-KEY

Models: add ids that match the endpoint, e.g.
  claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash

Comment Jan traite les fournisseurs distants.

Jan (menloresearch sur GitHub, environ 44 000 étoiles) est le client desktop local-first : les modèles se téléchargent sur votre machine, tournent via llama.cpp, et fonctionnent hors ligne, l'app exposant même son propre serveur compatible OpenAI à http://127.0.0.1:1337/v1 pour d'autres outils. Les fournisseurs distants sont la seconde voie délibérée, pour les modèles trop gros pour tourner localement ou les tâches qui méritent une qualité frontier. Un fournisseur personnalisé au format OpenAI est une simple description d'endpoint : base URL, clé, ids de modèles déclarés. Les conversations contre ces ids partent comme des requêtes chat-completions standard avec l'id comme chaîne de modèle, donc une passerelle multi-fournisseurs n'a besoin que d'une seule entrée. Claude pour l'écriture soignée, DeepSeek pour le résumé en volume, Gemini pour la vitesse, une seule clé derrière tous. L'adéquation philosophique est meilleure qu'elle n'y paraît d'abord. Les utilisateurs local-first ont tendance à être délibérés sur ce qui quitte la machine, et une passerelle garde la voie distante tout aussi délibérée : un endpoint à pare-feuiller, un journal d'usage à lire, un solde qui ne bouge que quand vous avez choisi d'envoyer quelque chose. Rien ne change côté voie locale ; vos modèles téléchargés continuent de fonctionner hors ligne exactement comme avant.

Déclarer des modèles : le contrat des ids.

Jan ne récupère pas pour vous le catalogue d'un endpoint personnalisé ; les modèles que vous déclarez sont les modèles que vous obtenez, et l'id est le contrat. L'orthographe qui fait foi vient du listing /v1/models de la passerelle, suffixes de version inclus. Un id déclaré qui dérive du listing produit des erreurs not-found seulement quand ce modèle est sélectionné, ce qui se lit comme un fournisseur capricieux jusqu'à ce que vous compariez les chaînes. Déclarez délibérément. Un sélecteur local-first fonctionne mieux quand les lignes distantes sont peu nombreuses et intentionnelles : un id rapide pour les échanges distants du quotidien (gpt-5.4-mini ou claude-haiku-4-5-20251001), un id frontier pour le travail qui justifie de quitter la machine (claude-sonnet-4-6), et le spécialiste que mérite votre charge de travail (deepseek-v4-flash pour les longs résumés multilingues, gemini-3.5-flash quand la latence est la fonctionnalité). Chaque ligne est facile à ajouter plus tard ; un catalogue collé en bloc est du bruit que vous faites défiler chaque jour. Si vous utilisez aussi le serveur API local de Jan pour servir d'autres outils, gardez le modèle mental clair : ce serveur, c'est Jan en tant que fournisseur sur 127.0.0.1:1337/v1 ; l'entrée de fournisseur personnalisé, c'est Jan en tant que client. Les deux sont indépendants, et configurer l'un n'affecte jamais l'autre.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# declare these ids verbatim in the provider's model list

Choisir quelles conversations quittent la machine.

Comme l'usage distant est prépayé et mesuré par clé, le coût de la voie distante est un chiffre que vous lisez, pas un abonnement que vous devinez. Faites tourner un mois de votre répartition réelle et le journal d'usage vous dit exactement ce que coûte le fait de quitter la machine, par modèle, par jour.

  • Les échanges distants du quotidien, questions rapides, réécritures, traductions, appartiennent au palier rapide : gpt-5.4-mini et claude-haiku-4-5-20251001 répondent vite et gardent le solde presque immobile.
  • claude-sonnet-4-6 est la montée en gamme pour le travail qu'un modèle local ne peut visiblement pas porter : rédaction longue et soignée, revue de code subtile, analyse que vous allez transmettre.
  • gemini-3.5-flash mérite sa ligne sur la latence ; pour les échanges interactifs courts, il se rapproche le plus de la réactivité d'un modèle local.
  • deepseek-v4-flash est le choix de volume pour résumer de longs documents que vous ne donneriez pas à un petit modèle local.
  • Gardez le matériel privé entièrement sur des modèles locaux ; la séparation entre les voies est tout l'intérêt de faire tourner Jan en premier lieu.

Paiement à l'usage · en dessous du tarif officiel

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModèlePrix officielNotre prix
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Modes d'échec spécifiques à Jan.

Les erreurs not-found sur un modèle spécifique tiennent au contrat des ids : l'id déclaré ne correspond pas à l'orthographe de l'endpoint. Comparez contre la sortie /v1/models caractère pour caractère. Les échecs d'authentification sur chaque requête tiennent au champ clé. Un fournisseur qui s'enregistre mais ne répond jamais a généralement un problème de Base URL : le suffixe /v1 doit être présent, puisque Jan ajoute des chemins de route comme /chat/completions à la base que vous lui donnez, et un segment doublé ou manquant produit un 404. Si le fournisseur a été créé sur un build plus ancien, vérifiez le format API : la v0.8.1 a introduit le sélecteur OpenAI-ou-Anthropic, et une entrée de passerelle accidentellement réglée sur le format Anthropic parle le mauvais dialecte à un endpoint /v1/chat/completions. Et rappelez-vous quelle voie vous déboguez. Les échecs de modèle local (VRAM, quantification, réglages llama.cpp) et les échecs distants (URL, clé, ids) partagent une fenêtre de chat mais rien d'autre ; le sélecteur de modèle montre à quelle voie appartient une conversation en échec avant que vous ne commenciez à tirer sur le mauvais fil.

Qui ajoute une voie de passerelle à Jan.

  • Les utilisateurs local-first qui ont occasionnellement besoin d'une qualité frontier et veulent cette voie occasionnelle sur un solde prépayé plutôt qu'un abonnement fournisseur.
  • Les développeurs sur des machines qui ne peuvent pas bien faire tourner de gros modèles locaux, utilisant Jan comme interface et la passerelle pour le gros du travail.
  • Les utilisateurs soucieux de confidentialité qui veulent exactement un seul endpoint distant à raisonner, pare-feuiller et auditer, au lieu d'un par fournisseur.
  • Les gens qui comparent la sortie locale contre le cloud sur de vraies tâches, où les candidats distants sont des lignes déclarées, pas de nouveaux comptes.
  • Les développeurs sans accès à la facturation d'un fournisseur donné. Un accès basé sur la recharge, sans exigence de carte, supprime la dépendance à une inscription par fournisseur.

Vérifiez l'endpoint et déboguez le premier échange distant.

Faites d'abord un curl sur le listing de modèles et sur une completion de chat ; une fois les deux validés, tout ce qui reste se trouve dans l'entrée de fournisseur. Cela vous donne aussi les orthographes exactes des ids à déclarer. Dans Jan, envoyez un court message sur l'id distant rapide. Les erreurs d'authentification tiennent à la clé ; not-found à l'id ; le silence ou les 404 à la forme de la Base URL. Si la voie distante fonctionne mais semble lente sur l'id frontier, c'est de la latence de modèle, pas un problème de configuration ; les modèles de raisonnement prennent leur temps sur les échanges longs. Une fois les échanges distants en circulation, la console APIsRouter affiche le modèle par requête, le nombre de tokens et la dépense. Pour un utilisateur local-first, ce journal est une lecture particulièrement satisfaisante : c'est l'enregistrement complet de tout ce qui a jamais quitté la machine, par modèle, par jour, la voie locale n'y contribuant strictement rien.

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.4-mini",
       "messages":[{"role":"user","content":"ping"}]}'

Questions fréquentes

Comment ajouter un fournisseur compatible OpenAI personnalisé à Jan ?

Settings, Model Providers, puis le contrôle plus pour ajouter un fournisseur. Nommez-le, choisissez le format OpenAI API sur les builds qui le demandent (v0.8.1+), réglez Base URL sur https://api.apisrouter.com/v1, collez votre clé, et déclarez des ids de modèles qui correspondent au listing de l'endpoint.

Pourquoi mon modèle déclaré renvoie-t-il not-found ?

Jan envoie l'id déclaré tel quel comme chaîne de modèle, et sa documentation exige que l'id corresponde exactement au nom de modèle de l'endpoint. Récupérez le listing /v1/models et copiez l'orthographe, suffixes de version inclus, au lieu de taper les ids de mémoire.

Ajouter un fournisseur distant change-t-il le fonctionnement des modèles locaux ?

Non. Les modèles locaux continuent de tourner sur l'appareil via llama.cpp, hors ligne inclus. L'entrée de fournisseur ajoute une voie distante séparée au sélecteur, et les conversations ne touchent le réseau que quand vous choisissez un id distant.

La Base URL doit-elle inclure /v1 ?

Oui : https://api.apisrouter.com/v1. Jan ajoute des routes comme /chat/completions à la base que vous configurez, donc un /v1 manquant produit un 404, et un /v1 doublé aussi. Si les requêtes échouent, lisez d'abord l'URL composée dans l'erreur avant de changer autre chose.

Jan peut-il atteindre Claude et Gemini via une seule entrée de fournisseur ?

Oui. Dans le format OpenAI, l'id de modèle voyage comme simple chaîne, donc claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini et deepseek-v4-flash peuvent tous être déclarés sous une seule entrée, facturés via une seule clé, et changés par conversation.

Est-ce la même chose que le serveur API local de Jan ?

Non. Le serveur local sur 127.0.0.1:1337/v1, c'est Jan servant ses modèles locaux à d'autres outils. L'entrée de fournisseur personnalisé, c'est Jan consommant un endpoint distant. Ce sont des fonctionnalités indépendantes qui partagent par hasard le format sur le fil d'OpenAI.