Chapitre 15: Comprendre les Tokens et les Limites d'Utilisation

15.1 Introduction

Les tokens jouent un rôle crucial dans le fonctionnement de l'API Chat GPT d'OpenAI. Ils influencent la longueur des réponses générées, les coûts associés à l'utilisation de l'API et la manière dont les messages sont traités. Ce chapitre explore ce que sont les tokens, comment ils sont utilisés, et les limites d'utilisation imposées par OpenAI.

15.2 Qu'est-ce qu'un Token?

Un token est une unité de texte qui peut être aussi petite qu'un caractère ou aussi grande qu'un mot. Les modèles GPT traitent et génèrent du texte en utilisant des tokens. Par exemple, le mot "chat" est un token, mais "chatbot" pourrait être deux tokens : "chat" et "bot".

15.3 Compter les Tokens

La longueur des requêtes et des réponses est mesurée en tokens. Il est important de savoir comment compter les tokens pour optimiser les requêtes et gérer les coûts.

15.3.1 Exemple de Compteur de Tokens en JavaScript

Pour compter les tokens dans un texte, vous pouvez utiliser des bibliothèques spécialisées. Voici un exemple en utilisant la bibliothèque gpt-3-encoder :

const GPT3Tokenizer = require('gpt-3-encoder');

function countTokens(text) {
  const encoded = GPT3Tokenizer.encode(text);
  return encoded.length;
}

const text = "Bonjour, comment allez-vous?";
console.log(`Nombre de tokens : ${countTokens(text)}`);

15.4 Limites d'Utilisation des Tokens

Les modèles GPT ont des limites sur le nombre de tokens qui peuvent être utilisés dans une seule requête. Ces limites incluent les tokens du prompt (entrée de l'utilisateur) et les tokens de la réponse générée.

15.4.1 Limites par Modèle

Voici les limites de tokens pour quelques modèles couramment utilisés :

  • gpt-3.5-turbo : 4096 tokens
  • gpt-4 : 8192 tokens

15.5 Gestion des Limites de Tokens

Pour éviter de dépasser les limites de tokens, vous devez gérer la longueur de vos messages et réponses.

15.5.1 Troncature des Messages

Lorsque l'historique de la conversation devient trop long, vous pouvez tronquer les anciens messages pour rester dans les limites autorisées.

function truncateMessages(messages, maxTokens) {
  let totalTokens = 0;
  const truncated = [];

  for (let i = messages.length - 1; i >= 0; i--) {
    const messageTokens = countTokens(messages[i].content);
    if (totalTokens + messageTokens > maxTokens) {
      break;
    }
    totalTokens += messageTokens;
    truncated.unshift(messages[i]);
  }

  return truncated;
}

// Exemple d'utilisation
const maxTokens = 8192;
const truncatedMessages = truncateMessages(conversationHistory, maxTokens);

15.5.2 Optimisation des Prompts

Vous pouvez optimiser vos prompts pour utiliser moins de tokens en étant plus concis et en supprimant les informations redondantes.

15.6 Coûts et Facturation

L'utilisation de l'API Chat GPT est facturée en fonction du nombre de tokens utilisés. Comprendre les coûts associés est essentiel pour gérer votre budget.

15.6.1 Calcul des Coûts

Les coûts sont généralement basés sur le nombre de tokens utilisés par requête. OpenAI fournit une tarification détaillée sur leur site web.

const tokenPrice = 0.00008; // Exemple de prix par token
const tokensUsed = countTokens(text) + response.data.usage.completion_tokens;
const cost = tokensUsed * tokenPrice;

console.log(`Coût estimé : $${cost.toFixed(5)}`);

15.7 Surveillance de l'Utilisation des Tokens

Surveiller l'utilisation des tokens peut vous aider à éviter les dépassements de coûts et à optimiser l'utilisation de l'API.

async function sendMessageWithCostEstimation(message) {
  conversationHistory.push({ role: "user", content: message });

  const maxTokens = 8192;
  conversationHistory = truncateMessages(conversationHistory, maxTokens);

  try {
    const response = await openai.createChatCompletion({
      model: "gpt-4",
      messages: conversationHistory,
      max_tokens: 150,
      temperature: 0.7,
    });

    const assistantMessage = response.data.choices[0].message.content.trim();
    conversationHistory.push({ role: "assistant", content: assistantMessage });

    const promptTokens = response.data.usage.prompt_tokens;
    const completionTokens = response.data.usage.completion_tokens;
    const totalTokens = promptTokens + completionTokens;
    const cost = totalTokens * tokenPrice;

    console.log("Assistant :", assistantMessage);
    console.log(`Tokens utilisés : ${totalTokens}`);
    console.log(`Coût estimé : $${cost.toFixed(5)}`);
  } catch (error) {
    console.error("Erreur lors de la communication avec l'API :", error);
  }
}

// Exemple d'utilisation
sendMessageWithCostEstimation("Peux-tu me parler de l'importance de la biodiversité?");

Conclusion

Comprendre les tokens et les limites d'utilisation est essentiel pour utiliser efficacement l'API Chat GPT d'OpenAI. En comptant les tokens, en gérant les limites de tokens et en surveillant les coûts, vous pouvez optimiser vos requêtes et contrôler les dépenses. Ce chapitre vous a fourni les outils et les techniques nécessaires pour gérer les tokens et les coûts associés à l'utilisation de l'API.

Modifié le: lundi 1 juillet 2024, 06:28