Comment gérer le problème de limite de jetons OpenAI
Table of Contents
Introduction
Dans cette vidéo, je vais vous montrer une autre façon de gérer le problème de la limite de jetons d'OpenAI. Commençons par comprendre ce qu'est ce problème.
Understanding the OpenAI Token Limit Issue
Lorsque vous traitez des données qui contiennent plus de 4097 jetons, vous recevrez une erreur. Dans mon cas, j'ai Essayé de traiter un fichier texte énorme qui contenait un nombre de jetons supérieur à cette limite, ce qui provoque cette erreur. Dans votre cas, la même chose pourrait se produire si vous utilisez trop de données, c'est-à-dire si votre taille de requête plus les réponses dépasse 4097. Dans cette vidéo, je vais vous montrer comment utiliser le jeton "tick" pour encoder et décoder nos morceaux.
Handling the Token Limit Issue
Pour résoudre ce problème, nous allons utiliser le jeton "tick" pour diviser notre texte en morceaux plus petits. Je vais vous montrer comment installer les packages nécessaires, comment diviser le texte en morceaux et comment encoder et décoder ces morceaux à l'Aide de Tick Token. Nous utiliserons également l'API OpenAI pour appeler le point d'achèvement de complétion et obtenir des réponses résumées. En fin de compte, nous consoliderons ces résumés pour obtenir un résumé unique de l'ensemble du texte. Commençons par installer les packages requis.
Installing the Required Packages
Avant de commencer, vous devez vous assurer d'avoir installé les packages nécessaires. Vous devez installer les packages OpenAI et Tick Token. Si vous ne les avez pas déjà installés, vous pouvez les installer via la commande pip install openai
et pip install ticktoken
. Dans mon cas, j'ai déjà ces packages installés, donc je ne vais pas répéter ce processus.
Breaking Text into Chunks
Maintenant, nous allons créer une fonction qui va diviser notre texte en morceaux avec la condition de chevauchement que nous spécifions. Cette fonction prendra un chemin de fichier et une taille de morceau en paramètres. La taille du morceau détermine le nombre de jetons que nous voulons prendre pour chaque morceau, tandis que le chevauchement détermine le nombre de caractères qui se chevauchent entre chaque morceau. Si vous souhaitez éviter de perdre des informations en raison de la division en morceaux, vous pouvez spécifier une valeur de chevauchement supérieure à zéro. Si vous êtes prêt à perdre certaines informations, vous pouvez spécifier une valeur de chevauchement de zéro.
Encoding and Decoding Chunks Using Tick Token