Toutes les pages
Sur cette page

DeepSeek Ajouté en 0.9.17

Le fournisseur DeepSeek fait tourner les modèles de DeepSeek avec votre propre clé d’API DeepSeek. DeepSeek n’a pas d’agent à lui ; OAR lance donc Claude Code sur la machine du relais et le dirige vers l’API compatible Anthropic de DeepSeek. L’agent travaille dans le dossier de la conversation avec les outils de Claude Code ; c’est le modèle de DeepSeek qui réfléchit. Les turns sont facturés au compte DeepSeek auquel appartient la clé.

Comme l’agent est Claude Code, un chat DeepSeek a presque tout ce qu’a un chat Claude : les quatre modes du relais, les cartes de question, le tableau de plan, les subagents, le pilotage et les tâches de fond. Le tableau de tous les fournisseurs se trouve dans Les fournisseurs en un coup d’œil.

La clé d’API #

Il vous faut une clé d’API DeepSeek et rien d’autre : aucune CLI à installer, et aucun compte Claude n’entre en jeu. Ouvrez Settings → Providers → DeepSeek (Réglages → Fournisseurs → DeepSeek), le dernier sous-onglet.

Contrôle Par défaut Ce qu’il fait
Enable DeepSeek for New Chat model selection (Activer DeepSeek dans le choix du modèle des nouveaux chats) activé dès qu’une clé est enregistrée Propose DeepSeek dans New Chat (Nouveau chat). Impossible de le cocher avant qu’une clé soit enregistrée, et il s’applique dès que vous le basculez.
Le champ de la clé (DeepSeek API key…) vide Votre clé. Une fois une clé enregistrée, le champ affiche Saved API key (enter to replace) (Clé d’API enregistrée, saisir pour la remplacer). Laissez-le vide pour garder la clé enregistrée.
Default model (Modèle par défaut) deepseek-flash Le modèle avec lequel démarre une nouvelle conversation DeepSeek. Voir Modèles.
Commit attribution (Attribution des commits) OAR Ce que disent les commits. Voir Attribution des commits.
Monthly budget (optional) (Budget mensuel, facultatif), Budget currency (Devise du budget) vide, USD ($) Une barre de budget sur la carte de consommation. Voir Budget mensuel.
Starting balance (optional) (Solde initial, facultatif) vide Le montant à partir duquel la barre de solde mesure. Voir Solde initial et recharges.
Advanced → Base URL (Avancé → URL de base) vide Un autre endpoint à la place de celui de DeepSeek. Voir Un autre endpoint.
Save DeepSeek settings (Enregistrer les réglages DeepSeek) Enregistre tous les champs ci-dessus. Le premier enregistrement d’une clé active aussi DeepSeek.
Remove saved key (Supprimer la clé enregistrée) Demande Remove the saved DeepSeek API key?, puis supprime la clé, les modèles découverts et votre choix dans Select Models (Sélectionner des modèles), et désactive DeepSeek. Le modèle par défaut reste.
Import usage export (Importer un export de consommation) Au bas de l’onglet : les deux fichiers de l’export de consommation de DeepSeek, Amount file (Fichier des montants) et Cost file (Fichier des coûts), pour la carte de consommation. Voir Importer un export de consommation.

La ligne sous les champs indique où vous en êtes :

Statut Signification
Not configured. New conversations use GitHub Copilot. Aucune clé n’est enregistrée.
API key saved but currently disabled. Enable it to allow DeepSeek selection in New Chat. Une clé est enregistrée et l’interrupteur est désactivé.
DeepSeek is enabled. Select DeepSeek in New Chat to use it. Prêt.

Ensuite, démarrez une conversation comme d’habitude : dans New Chat, choisissez DeepSeek. Voir Démarrer une conversation.

Où la clé est conservée, et qui la voit #

  • La clé est stockée dans la base de données du relais, sur la machine du relais. Le panneau ne l’affiche plus jamais et elle n’est jamais envoyée à un navigateur : les réglages indiquent seulement qu’une clé est enregistrée.
  • Elle ne parvient qu’aux workers des chats DeepSeek. Là où les sessions tournent sous tmux, elle leur est transmise par un fichier que seul l’utilisateur du relais peut lire. Dans le worker, elle devient le token de Claude Code pour l’endpoint de DeepSeek.
  • Elle est envoyée à l’URL de base et nulle part ailleurs : à l’API de DeepSeek, ou à l’adresse indiquée sous Advanced. Quand les requêtes du relais lui-même à DeepSeek (la liste des modèles, le solde) échouent, la clé est retirée du texte d’erreur.
  • Elle ne peut pas être définie par l’environnement : un DEEPSEEK_API_KEY dans l’environnement propre du relais n’est pas transmis, les workers reçoivent la clé du panneau.
  • L’agent peut la lire. Claude Code garde la clé dans son environnement, donc les commandes que lance l’agent peuvent la voir, comme pour toute clé détenue par une CLI. Le relais remplace la clé par [redacted] dans tout ce que publie un worker de session (réponses, raisonnements, activité des outils, texte des subagents, questions, sortie des tâches) avant de le stocker, de l’afficher ou de le journaliser, et le worker DeepSeek fait de même dans son propre journal. Là où un texte a été tronqué, la partie de la clé qu’il contient disparaît aussi, à partir de 8 caractères. Une clé que vous avez changée ou supprimée reste masquée jusqu’au redémarrage du relais. La sortie de tâche que le relais lit dans le fichier d’une tâche est nettoyée d’après la forme des clés et des longs tokens, et non d’après le texte même de la clé enregistrée. Cela tient la clé à l’écart de ce qu’OAR stocke et affiche. Ce n’est pas une barrière contre l’agent, qui peut modifier le texte avant de l’afficher, appeler lui-même l’API locale du relais ou lire la base de données du relais.

Enregistrer, changer et supprimer la clé #

  • La clé doit compter de 8 à 512 caractères, sans espaces. Sinon, l’enregistrement échoue avec The DeepSeek API key has an invalid format.
  • Enregistrer une clé alors que DeepSeek est activé demande ses modèles à DeepSeek (voir Modèles). En cas d’échec, l’avis en donne la raison et la liste se replie comme décrit là-bas.
  • Enregistrer une autre clé efface les modèles découverts et arrête les workers DeepSeek en cours, y compris celui qui est au milieu d’un turn ; changez donc la clé entre deux turns. Le message suivant les démarre avec la nouvelle clé.
  • La suppression de la clé est refusée tant qu’une conversation DeepSeek a envoyé un message ou en a un en file : Cannot remove the DeepSeek API key while N DeepSeek conversation(s) still exist. Switch DeepSeek off for new conversations instead. Quand elle aboutit, les conversations qui n’ont pas encore envoyé de message repassent sur Copilot. Désactiver DeepSeek ne déplace rien ; cela retire seulement DeepSeek de New Chat.

Modèles #

Modèle Affiché comme Images
deepseek-flash (par défaut) DeepSeek Flash Oui
deepseek-v4-pro DeepSeek V4 Pro Non

D’où vient la liste. Le relais interroge GET /models chez DeepSeek avec votre clé et garde les ID qui commencent par deepseek-. Il le fait quand vous enregistrez une clé, quand vous réactivez DeepSeek, quand vous changez l’URL de base, et sur Refresh (Actualiser) dans 🤗 Select Models. Une requête abandonne au bout de 10 secondes. Tant qu’aucune liste n’a été lue, les sélecteurs proposent deepseek-flash et deepseek-v4-pro. Une lecture qui échoue, ou qui ne liste aucun modèle DeepSeek, conserve la liste qu’avait le relais ; après Refresh, l’avis indique DeepSeek model discovery failed. Cached DeepSeek models were kept: ….

Lesquels s’affichent. 🤗 Select Models → DeepSeek (Sélectionner des modèles → DeepSeek) choisit les modèles que propose la zone de saisie ; 💾 Save enabled models (Enregistrer les modèles activés) conserve le choix. Sans choix, tous sont proposés. Le Default model est toujours proposé et ne peut pas être décoché.

Par message. Une conversation peut changer de modèle entre deux turns. Un changement redémarre le Claude Code de la conversation avec le nouveau modèle avant le message suivant ; la conversation reprend là où elle en était. Un modèle que le relais ne propose pas est refusé avec DeepSeek model "…" is not available.

Images. DeepSeek V4 Pro n’accepte pas d’images en entrée, pas plus qu’un modèle qu’OAR ne connaît pas. Un tel modèle reçoit chaque image jointe sous forme de chemin de fichier. Dès qu’une conversation contient des images, le passage à un tel modèle est refusé, car l’historique qu’il reprend ferait échouer la requête : DeepSeek V4 Pro takes no images, and this conversation already has some. Stay on DeepSeek Flash, or start a new DeepSeek conversation for DeepSeek V4 Pro.

Effort de raisonnement #

Les modèles de DeepSeek réfléchissent toujours. Le sélecteur d’effort propose l’intensité : low, high ou max, les trois mêmes pour chaque modèle. high est la valeur par défaut.

Il n’y a pas de none : Claude Code ne demande jamais à DeepSeek de désactiver le raisonnement, donc OAR ne le propose pas, et la boîte de dialogue 🧠 n’a pas de contrôles Thinking (Raisonnement) pour DeepSeek.

L’effort est fixé au démarrage de Claude Code. Un autre effort redémarre donc le Claude Code de la conversation entre deux turns, comme un changement de modèle, et la conversation reprend là où elle en était.

Un effort qui vient d’ailleurs, par exemple d’un agent sur un autre relais, est ramené aux niveaux de DeepSeek : none et minimal tournent en low, medium et xhigh en high, ultra et ultracode en max. Un message sans effort, ou avec un nom pour lequel DeepSeek n’a pas de niveau, garde l’effort de la conversation. Une nouvelle conversation sans effort démarre à high ; une conversation créée avec un nom pour lequel DeepSeek n’a pas de niveau démarre à low.

Le dossier et la session #

Un chat DeepSeek fait tourner le même worker qu’un chat Claude, bâti sur le Claude Agent SDK, sur la machine du relais : un par conversation, dans le dossier de travail de la conversation. Son Claude Code est le build fourni avec l’Agent SDK, ou le binaire claude que le relais utilise pour les chats Claude s’il y en a un de défini (CLAUDE_CODE_EXECUTABLE, que définit une installation de la CLI depuis le sous-onglet Claude). Claude Code est dirigé vers <base URL>/anthropic, l’API compatible Anthropic de DeepSeek. Le premier turn d’un worker affiche la ligne d’activité Starting Claude Code for DeepSeek (cold start)….

Son propre dossier de configuration. Dans un chat DeepSeek, Claude Code garde son état, ses sessions et leurs fils de conversation dans deepseek-claude, dans le dossier de données du relais, lisible par le seul utilisateur du relais. Il n’utilise jamais ~/.claude (ni CLAUDE_CONFIG_DIR) : la connexion Claude de la machine, vos réglages globaux, compétences, plugins et serveurs MCP sont hors de portée. Le CLAUDE.md et le dossier .claude/ propres à un dépôt s’appliquent toujours, sauf qu’ils ne peuvent pas rediriger le trafic de DeepSeek.

Pas de connexion Claude. Le worker transmet à Claude Code la clé DeepSeek et rien de la configuration Claude de la machine. Un token de connexion Claude présent dans l’environnement du relais ne lui parvient pas. OAR coupe aussi le trafic propre de Claude Code vers Anthropic, comme les vérifications de mises à jour et la télémétrie.

Ce qui marche comme sur Claude. Ces fonctions proviennent du même exécuteur que les chats Claude et se comportent comme décrit sur Claude :

  • les quatre modes du relais ; plan se termine par le tableau Plan ready for review (Plan prêt à relire) ;
  • les outils sur la machine du relais, les cartes de question avec choix multiple, la visionneuse des subagents, les tâches de fond dans le panneau des tâches, Stop (Arrêter), et le pilotage, où le bouton d’envoi affiche Steer (Piloter) pendant un turn ;
  • les outils d’agent preview et relay_tool d’OAR ;
  • le bouton Session root (Racine de la session) dans l’explorateur de fichiers, qui ouvre le dossier de la session sous deepseek-claude/projects ;
  • la limite des commandes de fond du sous-onglet Claude ;
  • la reprise après un redémarrage, à partir de l’ID de session enregistré. Supprimer une conversation DeepSeek supprime sa session Claude Code dans deepseek-claude ; les dépenses qu’elle a ajoutées restent dans les totaux de la carte de consommation.

Les subagents restent sur le modèle du chat. Claude Code désigne ses modèles par des alias. OAR les fixe : un subagent que l’agent demande comme « opus », « sonnet » ou « fable », ou sans modèle, tourne sur le modèle de la conversation ; un subagent demandé comme « haiku » tourne sur DeepSeek Flash. Les petits appels propres à Claude Code, comme les titres et les résumés, vont aussi à DeepSeek Flash. Le badge d’un subagent nomme le modèle DeepSeek. Un changement de modèle redémarre Claude Code pour que les alias fixés suivent.

Contexte et compactage. Les modèles de DeepSeek ont une fenêtre de 1 048 576 tokens. La puce Context window (Fenêtre de contexte) de la zone de saisie montre cette fenêtre unique, sous la forme 1.05M ; il n’y a rien à choisir. La boîte de dialogue 🧠 affiche le contexte tel que Claude Code le rapporte. Un chat DeepSeek compacte à 400 000 tokens, sauf si vous fixez une autre fenêtre avec le curseur de compactage auto de la boîte de dialogue : bien en dessous de la fenêtre, pour qu’un turn arrivant après l’expiration du cache de DeepSeek ne renvoie pas l’essentiel d’un million de tokens au prix du défaut de cache.

Pièces jointes. Sur un modèle qui accepte les images, les images jusqu’à 5 Mo vont dans le message ; les images plus grandes et les autres fichiers sont transmis sous forme de chemins que l’agent lit. Voir Modèles pour les modèles qui n’acceptent pas d’images.

Absent sur DeepSeek. Les compteurs du forfait Claude et la pause à la limite d’utilisation ne s’appliquent pas. Les réponses DeepSeek n’ont pas de ligne de consommation ; le coût figure sur la carte de consommation.

Les réglages du dossier ne peuvent pas rediriger DeepSeek #

Un .claude/settings.json ou .claude/settings.local.json dans le dossier peut définir des variables d’environnement et un key helper pour Claude Code. Dans un chat DeepSeek, le relais impose l’URL de base et la clé par-dessus, et avec elles les réglages de proxy, de confiance TLS, de fournisseur et d’identifiants : les réglages du dossier ne peuvent pas diriger Claude Code vers une autre adresse, remplacer la clé par une autre ni faire passer les requêtes par un proxy à eux. La clé n’est pas mise sur la ligne de commande pour cela.

Ajouté en 0.9.18 Pas de hooks. Dans un chat DeepSeek, Claude Code démarre avec tous les hooks et la ligne d’état désactivés : ni ceux du dossier de réglages propre à DeepSeek, ni ceux du dossier du chat (.claude/settings.json, settings.local.json), ni ceux d’un plugin ne s’exécutent. Ils tourneraient sous l’utilisateur du relais avec la clé dans leur environnement, et le hook SessionStart d’un dossier avant même que le relais ait imposé l’endpoint et la clé. Le réglage figure sur la ligne de commande de Claude Code, donc un fichier de réglages ne peut pas les réactiver. Les hooks des réglages gérés, ceux de l’administrateur de la machine, s’exécutent toujours. En 0.9.17, ces hooks s’exécutaient ; revenir à 0.9.17 les réactive.

Si Claude Code ne prend pas les réglages imposés dans la minute, le turn échoue avant tout envoi, avec Claude Code did not take the DeepSeek connection settings before the first message, so nothing was sent. Renvoyez le message ; s’il échoue encore, mettez le relais à jour et cherchez la raison dans son journal.

Ce qui part chez DeepSeek #

Tout ce que l’agent lit et écrit pendant un turn part chez DeepSeek : vos messages, les fichiers qu’il ouvre, la sortie de ses commandes, et le contexte que Claude Code ajoute à chaque session, comme le chemin du dossier et les fichiers CLAUDE.md. Pendant un turn mesuré, l’API de DeepSeek a été le seul hôte avec lequel Claude Code a communiqué.

Attribution des commits #

Choix Commits Pull requests
OAR (par défaut) Se terminent par Co-authored-by: Open Agent Relay (DeepSeek Flash) <no-reply@oar.sh>, avec le nom du modèle utilisé. Se terminent par 🤖 Generated with [Open Agent Relay](https://oar.sh).
Off (Désactivé) Pas de ligne d’attribution. Pas de ligne d’attribution.

Il n’y a pas de Vanilla (D’origine) : les lignes propres à Claude Code attribueraient à Claude le travail de DeepSeek. Le choix propre à un dossier, défini dans la boîte de dialogue 🧠 d’une conversation Claude dans ce dossier, s’applique aussi aux chats DeepSeek qui s’y trouvent, Vanilla valant OAR. La boîte de dialogue 🧠 d’un chat DeepSeek n’a pas de sélecteur d’attribution.

Un autre endpoint #

Advanced → Base URL accepte une autre adresse, pour un proxy par exemple. Laissez le champ vide pour https://api.deepseek.com. L’adresse doit utiliser https, ou http sur cette machine (localhost, 127.0.0.1 ou ::1), et ne doit contenir ni nom d’utilisateur, ni mot de passe, ni chaîne de requête, ni fragment. La clé y est envoyée et nulle part ailleurs. Enregistrer une nouvelle adresse efface les modèles découverts et les relit depuis celle-ci. Un worker DeepSeek déjà en cours garde l’adresse avec laquelle il a démarré.

WebSearch et WebFetch #

Claude Code a deux outils web, et ils ne tournent pas au même endroit :

Outil Où il tourne Ce qu’il coûte
WebSearch Sur les serveurs de DeepSeek, via la recherche de DeepSeek. Une requête de recherche : 0,75 $ ou 5 ¥ pour 1 000 requêtes réussies, à partir du 2026-10-31 16:00 UTC. Avant cette date, elles sont comptées sans coût.
WebFetch Sur la machine du relais : Claude Code récupère lui-même la page et la fait lire par DeepSeek Flash. Seulement les tokens Flash, comptés comme ceux de n’importe quel autre turn. Aucune requête n’est facturée.

La carte de consommation compte les recherches sur une ligne Search (Recherche) à part. Le décompte vient des totaux propres à Claude Code, qui comptent chaque recherche faite par son outil WebSearch.

La carte de consommation #

📊 Check Usage (Vérifier la consommation) a une carte DeepSeek tant que DeepSeek est activé. DeepSeek se paie à l’usage, donc la carte montre de l’argent : le solde du compte, lu en direct avec la clé enregistrée, et ce qu’ont coûté les turns DeepSeek de ce relais, estimé à partir de leurs tokens aux prix de DeepSeek (voir Comment l’estimation est faite).

Les dépenses sont affichées dans la devise du solde (celle où il y a de l’argent), ou en dollars US quand il n’y a pas de solde sur lequel se baser. La carte montre tout d’un coup, les chiffres d’abord, et tient dans la largeur d’un téléphone. De haut en bas :

Partie Ce qu’elle montre
Barres Balance (USD) (Solde, USD), Balance (CNY) (Solde, CNY) Une barre par devise où il y a de l’argent : ce qui reste, mesuré par rapport au solde après sa dernière recharge. La ligne en dessous indique à partir de quoi elle mesure. Voir Solde initial et recharges.
Barre Monthly budget (USD) ou (CNY) Seulement quand un budget est défini. Voir Budget mensuel.
Chiffres Le solde par devise, avec ce qui a été rechargé et offert, et Estimated spend on this relay (Dépenses estimées sur ce relais) depuis le premier turn DeepSeek.
Daily spend, last 30 days (Dépenses quotidiennes, 30 derniers jours) Une colonne par jour UTC, empilée par modèle. Survolez une colonne ou appuyez dessus pour voir le total du jour et la part de chaque modèle.
Where the money goes (Où va l’argent) Une barre par modèle, répartie en Cache hit (Succès de cache), Cache miss (Défaut de cache), Output (Sortie) et, dès qu’il y en a, Search. Son en-tête indique ce que le cache a fait économiser.
Estimated spend by model (Dépenses estimées par modèle) Une ligne par modèle avec ses turns et, dès qu’il y en a, une ligne Search : ce qu’ont coûté les recherches web et combien il y en a eu, comme 3 searches.
Tokens by model (Tokens par modèle) Les tokens en succès de cache, en défaut de cache et en sortie par modèle, et la part de l’entrée venue du cache.
La note sur l’estimation Les prix, les heures pleines et ce qui n’est pas compté, avec un lien Prices (Prix).

Les barres changent de couleur en se remplissant et virent au rouge à 90 %, comme sur toutes les cartes ; voir Lire une carte. Le pied de la carte renvoie vers DeepSeek usage (Consommation DeepSeek) et Top up (Recharger) sur la plateforme de DeepSeek.

Une fois l’export de consommation de DeepSeek importé, la carte montre les chiffres propres de DeepSeek pour les jours que couvre l’export, et les libellés deviennent Spend, actual and estimated (Dépenses, réelles et estimées) et Spend by model, actual and estimated (Dépenses par modèle, réelles et estimées). Voir Importer un export de consommation.

Les graphiques. Ils sont dessinés sans bibliothèque de graphiques et fonctionnent dans les deux jeux de couleurs. Sur Daily spend (Dépenses quotidiennes), un modèle garde sa couleur d’une lecture à l’autre : DeepSeek Flash d’abord, puis DeepSeek V4 Pro, puis les autres modèles par nom ; au-delà de quatre modèles, le quatrième et les suivants partagent Other models (Autres modèles). Chaque colonne et chaque barre a un équivalent textuel pour les lecteurs d’écran et une infobulle au survol, au focus ou à l’appui, et chaque graphique a un volet repliable As a table (Sous forme de tableau) avec les mêmes chiffres. Daily spend est omis quand il n’y a eu aucune dépense ces 30 derniers jours, et sa note indique quand commence l’historique quotidien sur ce relais, si c’est plus tard. L’économie due au cache correspond aux succès de cache comptés au prix du défaut de cache, moins ce qu’ils ont coûté.

Quand le solde ne peut pas être lu. Une lecture abandonne au bout de 5 secondes. Une réponse est gardée une minute, un échec 15 secondes. Quand une lecture échoue, la carte est marquée Partial (Partiel), indique The balance could not be read: … et montre le dernier solde lu, as read avec son heure. Quand DeepSeek signale que le solde est trop bas pour des appels d’API, la carte indique DeepSeek reports this balance as not enough for API calls: DeepSeek turns fail until it is topped up. avec un lien Top up.

Un agent peut lire la même carte avec l’action usage de relay_tool.

Budget mensuel #

Monthly budget (optional) dans le sous-onglet DeepSeek ajoute une barre de budget à la carte : les dépenses DeepSeek estimées de ce relais sur le mois civil, comparées au montant.

  • Budget currency : USD ($) (présélectionné pour un nouveau budget), CNY (¥), ou The balance's currency (may change) (Devise du solde, peut changer). La barre porte le nom de sa devise, par exemple Monthly budget (CNY), et compte les dépenses dans cette devise, quelle que soit celle du solde. Un budget enregistré avant qu’on puisse choisir la devise suit la devise du solde.
  • La barre est marquée estimated (Estimé). Avec des jours d’un export de consommation importé dans le mois (et le budget dans la devise de la carte), elle ne l’est pas, et sa note indique que les dépenses sont réelles ces jours-là et estimées les autres. Elle change de couleur à 50 et 75 % du budget et vire au rouge à 90.
  • Elle compte par jour UTC et repart à zéro le 1er du mois (UTC) ; la barre indique quand elle repart.
  • Laissez le montant vide, ou saisissez 0, pour ne pas avoir de barre. Les montants gardent deux décimales.

Solde initial et recharges #

DeepSeek communique le solde à OAR, pas ce que vous avez versé. La barre de solde a donc besoin d’une référence, et OAR la garde par devise sur le relais :

  • Sans solde initial, la barre mesure à partir du solde juste après sa dernière recharge. Tant que le relais n’a pas vu de recharge, elle mesure à partir du plus haut solde qu’il a lu ; la barre démarre donc vide et se remplit avec les dépenses. La ligne sous la barre nomme le montant et le jour où il a été lu, par exemple Measured from ¥110.00, the highest balance seen (2026-10-20).
  • Une recharge (ou un crédit offert) est toute hausse du solde entre deux lectures. Le relais lit le solde quand la carte est ouverte (ou qu’un agent lit la carte), donc il remarque une recharge à la lecture suivante. À partir de là, la barre mesure à partir du solde qui suit.
  • Starting balance (optional) fixe à la place le montant de référence, par exemple votre première recharge. Il est dans la devise du solde et s’applique à la barre de cette devise. La ligne sous la barre indique Measured from …, the starting balance set on the DeepSeek tab. Laissez-le vide pour mesurer comme sans solde initial.

Ce qu’une recharge fait à un solde initial. Une recharge effectuée après que vous l’avez défini le remplace : la barre mesure à partir du solde après la recharge, et le sous-onglet DeepSeek indique No longer used: the balance rose on <date> (a top-up), so the bar measures from the balance after it. Enter an amount again to measure from it. Pour réutiliser un solde initial, saisissez un montant dans le champ (le même montant convient) et enregistrez. Enregistrer les autres champs du sous-onglet ne ramène pas l’ancien montant.

Une recharge faite avant que vous ne définissiez le solde initial ne le remplace pas, même quand le solde est maintenant supérieur au montant. Enregistrer un solde initial lit le solde à ce moment-là, et une hausse ne remplace le montant que si le relais a lu le solde après que vous l’avez défini. Vous pouvez donc recharger, saisir le nouveau solde et enregistrer. Si cette lecture échoue, le montant reste jusqu’à une recharge postérieure à la prochaine lecture réussie du relais.

Import usage export (Importer un export de consommation) #

Les dépenses de la carte sont une estimation. Pour avoir les chiffres propres de DeepSeek, exportez votre consommation sur la page de consommation de DeepSeek (DeepSeek usage au pied de la carte y renvoie) et importez-la. L’export se compose de deux fichiers CSV pour la période choisie : les montants (tokens et requêtes par modèle et par clé d’API, avec leurs prix) et le coût.

  1. Exportez une période sur la page de consommation de DeepSeek.
  2. Dans Settings → Providers → DeepSeek, sous Import usage export, choisissez le fichier Amount file et le fichier Cost file, puis appuyez sur Import usage export.
  3. La ligne sous le bouton indique ce qui a été importé (les lignes, les jours, les modèles) et si la carte l’utilise.

Ce que la carte montre alors. Pour les jours que couvre l’export, les chiffres de la clé enregistrée dans l’onglet remplacent l’estimation : tokens, requêtes et coût par modèle, selon les jours de l’export. Tous les autres jours restent estimés, y compris un trou entre deux imports. Les libellés deviennent Spend, actual and estimated et Spend by model, actual and estimated, la ligne d’un modèle ajoute le nombre de requêtes compté par l’export, et une note donne la fin du dernier export.

  • La clé enregistrée uniquement. L’export liste toutes les clés du compte ; la carte compte les lignes de la clé enregistrée, où qu’elle ait été utilisée, pas seulement depuis ce relais.
  • Une seule devise. La carte n’utilise que les lignes dans sa propre devise, celle du solde. Quand l’export est dans une autre devise, l’import le signale et la carte reste estimée.
  • Recherches. Les jours d’export, le coût de l’export inclut les recherches web ; la carte n’y ajoute donc pas d’estimation de recherche.
  • Jours omis. Un jour dont une période n’est pas encore terminée (aujourd’hui, dans un export fait en cours de journée), et les jours d’export jusqu’au jour où commence l’historique quotidien de ce relais inclus, car tous leurs turns ne figurent pas dans cet historique. Une note le signale.
  • Fuseaux horaires. Les jours de l’export suivent le fuseau horaire dans lequel il a été fait, ceux de l’estimation l’UTC. À la limite entre un jour d’export et un jour estimé, une heure peut être comptée deux fois ou pas du tout.
  • Budget mensuel. Avec des jours d’export dans le mois, la barre de budget n’est plus marquée estimated.

Comment l’import vérifie les fichiers. Pour chaque période et chaque modèle, les montants multipliés par leurs prix doivent donner le total du fichier des coûts. Sinon, rien n’est importé et la ligne indique The files do not match for …. Réimporter les mêmes fichiers ne change rien. Un export plus récent remplace, pour chaque clé qu’il contient, les jours qu’il couvre, même s’il a été fait dans un autre fuseau horaire. Les deux fichiers ensemble peuvent peser jusqu’à 2 Mo. Le relais garde les lignes dans une table à part, chaque clé masquée sauf ses premiers et derniers caractères ; ses propres décomptes de vos turns ne changent pas. Les agents d’un relais associé ne peuvent pas importer.

Sur la machine du relais, npm run deepseek:import -- amount.csv cost.csv <database> dans le dossier d’OAR fait la même chose. Indiquez la base de données, copilot.db dans le dossier de données : sans elle, la commande utilise data/copilot.db à côté du serveur.

Comment l’estimation est faite #

DeepSeek ne communique aucun coût par requête, et le chiffre de coût propre à Claude Code est calculé aux prix de Claude. OAR compte donc les tokens que rapporte chaque turn DeepSeek sur ce relais, par modèle, et les valorise aux prix publiés par DeepSeek (relevés le 2026-10-19), en dollars US et en yuans. Par million de tokens, en heures creuses :

Modèle Succès de cache Défaut de cache Sortie
DeepSeek Flash 0,003 $ · 0,02 ¥ 0,15 $ · 1 ¥ 0,60 $ · 4 ¥
DeepSeek V4 Pro 0,022 $ · 0,15 ¥ 0,66 $ · 4,5 ¥ 1,98 $ · 13,5 ¥
  • Heures pleines et heures creuses. Les prix en heures pleines sont exactement le double. Les heures pleines vont du lundi au vendredi, 01:00–04:00 et 06:00–10:00 UTC (09:00–12:00 et 14:00–18:00, heure de Pékin) ; la carte indique ces heures dans le fuseau horaire de votre navigateur. Chaque turn est valorisé selon sa propre heure.
  • Jours fériés. Les jours fériés chinois, DeepSeek applique les prix des heures creuses toute la journée. L’estimation ne connaît pas ces dates : les turns en heures pleines un jour férié sont donc comptés au double du prix réel.
  • Recherches. Les recherches web sont comptées à 0,75 $ ou 5 ¥ pour 1 000 à partir du 2026-10-31 16:00 UTC (2026-11-01 00:00, heure de Pékin), au même prix à toute heure ; les précédentes sont comptées sans coût. Voir WebSearch et WebFetch.
  • Non facturé. DeepSeek ne facture pas les requêtes count_tokens que Claude Code envoie à chaque début de session, et l’estimation ne les compte pas.
  • Modèles inconnus. deepseek-v4-flash et deepseek-v4-flash-vision-exp sont valorisés comme Flash. Un modèle sans prix connu n’a pas d’estimation : sa ligne indique no price known, et le total indique combien de modèles il laisse de côté.
  • Ce relais seulement. Les turns sur d’autres relais et les autres usages de la clé n’y figurent pas. La page de consommation de DeepSeek, accessible depuis la carte, contient toutes les requêtes du compte.
  • Chiffres réels. Pour les jours que couvre un export de consommation importé, la carte montre les chiffres propres de DeepSeek pour la clé enregistrée à la place de l’estimation, issus de tous les usages de la clé.
  • Redémarrages. Un processus Claude Code qui repart de zéro, ou un rapport qui arrive en retard ou en double, est compté une seule fois. Un cas subsiste : un rapport tardif d’un processus antérieur qui arrive après le démarrage d’un processus plus récent est compté en entier, tout comme le rapport suivant du processus plus récent.
  • Lignes sous un nom Claude. Les builds antérieurs à la fixation des subagents sur le modèle du chat comptaient certains turns sous un nom de modèle Claude. Au démarrage, le relais fusionne ces lignes dans le modèle DeepSeek qui les a servis. Une ligne fusionnée est valorisée à une seule heure, celle de son dernier turn ; une ligne qui couvre des turns en heures pleines et en heures creuses est donc approximative : son coût en tokens peut s’écarter d’un facteur deux au plus.

Une heure de turn en avance de plus de 5 minutes sur l’horloge du relais est remplacée par l’heure du relais.

Limites #

  • Le raisonnement ne peut pas être désactivé, et none tourne en low.
  • DeepSeek V4 Pro n’accepte pas d’images ; le passage à ce modèle est refusé dès qu’une conversation contient des images.
  • Les dépenses sont une estimation, des seuls turns de ce relais, et surévaluent les turns en heures pleines les jours fériés chinois. Seuls les jours d’un export de consommation importé montrent les chiffres propres de DeepSeek.
  • Un changement d’effort ou de modèle redémarre le Claude Code de la conversation entre deux turns.
  • La récupération web côté serveur de Claude Code n’est pas disponible sur DeepSeek ; WebFetch tourne sur la machine du relais.
  • Pas de pause à la limite d’utilisation : un turn refusé pour cause de solde échoue, et vous le renvoyez après avoir rechargé.

Codes d’erreur #

Une réponse DeepSeek en échec se termine par Error code: relay.<code>. et, pour certains codes, par des boutons qui mènent droit à la solution :

Code Quand Boutons
relay.deepseek-balance DeepSeek a refusé la requête à cause du solde (HTTP 402). Top up DeepSeek (Recharger DeepSeek), qui ouvre la page de recharge de DeepSeek ; DeepSeek settings (Réglages DeepSeek)
relay.deepseek-api-key DeepSeek n’a pas accepté la clé (HTTP 401). DeepSeek settings
relay.deepseek-rate-limit DeepSeek a atteint sa limite de requêtes simultanées pour le compte (HTTP 429). Aucun
relay.deepseek-api-error Toute autre requête refusée. Aucun
relay.deepseek-turn-error Tout autre échec du turn. Aucun

DeepSeek settings ouvre Settings → Providers → DeepSeek. Les autres codes suivent le même schéma, relay.deepseek- suivi de la raison donnée par Claude Code, par exemple relay.deepseek-overloaded (HTTP 529) ou relay.deepseek-model-not-found. Aucun d’eux ne comporte les conseils liés au compte Claude.

Dépannage #

Problème Que faire
DeepSeek n’apparaît pas dans New Chat Enregistrez une clé dans Settings → Providers → DeepSeek et vérifiez que Enable DeepSeek for New Chat model selection est coché.
relay.deepseek-balance, ou la carte indique que le solde ne suffit pas pour des appels d’API Appuyez sur Top up DeepSeek, ajoutez de l’argent sur la plateforme de DeepSeek et renvoyez le message.
relay.deepseek-api-key La clé est fausse ou a été révoquée. Collez une clé valide et enregistrez, entre deux turns.
relay.deepseek-rate-limit Attendez un moment et renvoyez le message.
DeepSeek model discovery failed: …, ou DeepSeek listed no DeepSeek models Vérifiez la clé et l’URL de base, puis appuyez sur Refresh dans 🤗 Select Models. Tant que cela ne marche pas, la dernière liste, ou deepseek-flash et deepseek-v4-pro, reste proposée.
DeepSeek model "…" is not available Le modèle n’est pas dans la liste du relais. Actualisez la liste ou choisissez un autre modèle.
… takes no images, and this conversation already has some. Restez sur DeepSeek Flash, ou démarrez une nouvelle conversation DeepSeek pour le modèle texte seul.
DeepSeek model selection requires creating a new DeepSeek conversation Une conversation d’un autre fournisseur ne peut pas passer à un modèle DeepSeek. Démarrez un nouveau chat sur DeepSeek.
Cannot remove the DeepSeek API key while N DeepSeek conversation(s) still exist. Archivez ou supprimez ces conversations, ou désactivez plutôt DeepSeek.
Claude Code did not take the DeepSeek connection settings before the first message, so nothing was sent. Renvoyez le message. S’il échoue encore, le Claude Code que fait tourner le relais ne prend pas les réglages imposés : mettez le relais à jour et cherchez la raison dans son journal.
The DeepSeek base URL must use https (http only on a loopback address) Utilisez https, ou une adresse http sur cette machine.
La barre de solde part du mauvais montant Définissez Starting balance dans le sous-onglet DeepSeek, dans la devise du solde.
Le sous-onglet indique que le solde initial est No longer used Une recharge l’a remplacé. Saisissez de nouveau le montant et enregistrez, ou videz le champ.
Les dépenses de la carte sont inférieures à celles de la page de consommation de DeepSeek La carte ne compte que les turns DeepSeek de ce relais. La page de DeepSeek contient toutes les requêtes du compte. Pour avoir ses chiffres sur la carte, importez l’export de consommation.
Les dépenses de la carte sont plus élevées un jour férié Les heures pleines des jours fériés chinois sont comptées au prix des heures pleines ; DeepSeek facture le prix des heures creuses. Importer l’export de consommation met les chiffres propres de DeepSeek sur ces jours.
The files do not match for … Le fichier des montants et le fichier des coûts viennent d’exports différents. Exportez les deux pour la même période et importez-les ensemble.
The … file is not a DeepSeek usage export: … Choisissez les fichiers tels que la page de consommation de DeepSeek les a exportés, le fichier des montants sous Amount file et le fichier des coûts sous Cost file.
L’import indique que la clé enregistrée n’est pas dans cet export L’export ne contient aucune consommation de la clé enregistrée dans l’onglet : il vient d’un autre compte, ou la clé n’a pas été utilisée sur cette période. La carte reste estimée.
L’import indique que la carte n’utilise pas les chiffres L’export est dans une autre devise que le solde. La carte n’utilise que les lignes dans la devise du solde.