split_markdown4gpt
est un outil Python conçu pour diviser les gros fichiers Markdown en sections plus petites en fonction d'une limite de jetons spécifiée. Ceci est particulièrement utile pour traiter des fichiers Markdown volumineux avec des modèles GPT, car cela permet aux modèles de gérer les données en morceaux gérables.
Version 1.0.9 (2023-06-19)
Vous pouvez installer split_markdown4gpt
via pip :
pip install split_markdown4gpt
Après l'installation, vous pouvez utiliser la commande mdsplit4gpt
pour diviser un fichier Markdown. Voici la syntaxe de base :
mdsplit4gpt path_to_your_file.md --model gpt-3.5-turbo --limit 4096 --separator " === SPLIT === "
Cette commande divisera le fichier Markdown sur path_to_your_file.md
en sections, chacune ne contenant pas plus de 4 096 jetons (tels que comptés par le modèle gpt-3.5-turbo
). Les sections seront séparées par === SPLIT ===
.
Toutes les options CLI :
NAME
mdsplit4gpt - Splits a Markdown file into sections according to GPT token size limits.
SYNOPSIS
mdsplit4gpt MD_PATH <flags>
DESCRIPTION
This tool loads a Markdown file, and splits its content into sections
that are within the specified token size limit using the desired GPT tokenizing model. The resulting
sections are then concatenated using the specified separator and returned as a single string.
POSITIONAL ARGUMENTS
MD_PATH
Type: Union
The path of the source Markdown file to be split.
FLAGS
-m, --model=MODEL
Type: str
Default: 'gpt-3.5-turbo'
The GPT tokenizer model to use for calculating token sizes. Defaults to "gpt-3.5-turbo".
-l, --limit=LIMIT
Type: Optional[int]
Default: None
The maximum number of GPT tokens allowed per section. Defaults to the model's maximum tokens.
-s, --separator=SEPARATOR
Type: str
Default: '=== SPLIT ==='
The string used to separate sections in the output. Defaults to "=== SPLIT ===".
Vous pouvez également utiliser split_markdown4gpt
dans votre code Python. Voici un exemple de base :
from split_markdown4gpt import split
sections = split ( "path_to_your_file.md" , model = "gpt-3.5-turbo" , limit = 4096 )
for section in sections :
print ( section )
Ce code fait la même chose que la commande CLI ci-dessus, mais en Python.
split_markdown4gpt
fonctionne en tokenisant le fichier Markdown d'entrée à l'aide du tokenizer du modèle GPT spécifié (la valeur par défaut est gpt-3.5-turbo
). Il divise ensuite le fichier en sections, chacune ne contenant pas plus que la limite de jetons spécifiée.
Le processus de fractionnement respecte la structure du fichier Markdown. Il ne divisera pas une section (telle que définie par les en-têtes Markdown) en plusieurs sections de sortie, sauf si la section est plus longue que la limite de jetons. Dans ce cas, il
divisera la section au niveau de la phrase.
L'outil utilise plusieurs bibliothèques pour accomplir cela :
tiktoken
pour tokeniser le texte selon les règles du modèle GPT.fire
pour créer la CLI.frontmatter
pour analyser les éléments préliminaires du fichier Markdown (métadonnées au début du fichier).mistletoe
pour analyser le fichier Markdown dans une arborescence syntaxique.syntok
pour diviser le texte en phrases.regex
et PyYAML
pour diverses fonctions utilitaires. split_markdown4gpt
est particulièrement utile dans les scénarios où vous devez traiter des fichiers Markdown volumineux avec des modèles GPT. Par exemple:
Génération de texte : si vous utilisez un modèle GPT pour générer du texte basé sur un gros fichier Markdown, vous pouvez utiliser split_markdown4gpt
pour diviser le fichier en sections gérables. Cela permet au modèle GPT de traiter le fichier par morceaux, évitant ainsi les erreurs de dépassement de jeton.
Prétraitement des données : dans les projets d'apprentissage automatique, vous devez souvent prétraiter vos données avant de les intégrer dans votre modèle. Si vos données se présentent sous la forme de gros fichiers Markdown, split_markdown4gpt
peut vous aider à diviser ces fichiers en sections plus petites en fonction de la limite de jetons de votre modèle.
Analyse de document : si vous analysez des documents Markdown volumineux (par exemple, extraire des mots-clés, résumer le contenu), vous pouvez utiliser split_markdown4gpt
pour diviser les documents en sections plus petites. Cela rend l’analyse plus gérable et efficace.
Les contributions à split_markdown4gpt
sont les bienvenues ! Veuillez ouvrir un ticket ou soumettre une pull request sur le référentiel GitHub.