How to retrieve used tokens in a node?

for (const item of $input.all()) {
try {
// Utilisation de .first() pour forcer n8n à aller chercher les données
// dans le nœud Gemini2 peu importe où il se trouve
const geminiData = $(‘Gemini2’).first().json;

item.json.prompt_tokens = geminiData.tokenUsage?.promptTokens || 0;
item.json.completion_tokens = geminiData.tokenUsage?.completionTokens || 0;
item.json.total_tokens = geminiData.tokenUsage?.totalTokens || 0;

} catch (error) {
item.json.prompt_tokens = 0;
item.json.completion_tokens = 0;
item.json.total_tokens = 0;
}
}
return $input.all();

Describe the problem/error/question

Mon chatmodel s’appelle Gemini2. Je vois bien dans l’exécution qu’il comptabilise les tokens consommés. En revanche, comme c’est un model de mon noeud agent, je n’arrive pas à les récupérer pour les historiser en base. Ni Geminin ni ChatGPT n’ont été capable de me donner la solution, quelqu’un a une idée ?

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Salut @Arnaud_Latourrette,

oui c’est possible, mais il faut suivre quelques étapes pour que ça fonctionne :

  1. Récupère l’ID d’exécution avec {{$execution.id}} dans un nœud juste après ton AI Agent, puis utilise cet ID pour interroger l’API des exécutions n8n.
  2. Dans les paramètres du workflow, assure-toi que Save Execution Progress est bien réglé sur Save (souvent c’est sur “Do not save” par défaut). Sans ça, n8n ne conserve pas les données internes/sous-nœuds dont tu as besoin (dont les tokens).
  3. Le workflow doit être Actif, en général ça ne fonctionne pas de la même façon en mode test/manual, car les données d’exécution ne sont pas persistées pareil.

Voici un schéma qui marche pour récupérer les détails du modèle / des tokens :

2 Likes

J’ai un peu ramé pour tout comprendre mais t’es un génie :slight_smile: je peux donc mettre en base postgres tous mes tokens par question réponse, c’est génial, un immense merci à toi :slight_smile:

Donc le chatmodel est bien en output data always
Le workflow est paramétré sur execution save

Je l’ai organisé comme ça :slight_smile:

et dans ma base j’ai enfin ça :slight_smile:

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.