split_markdown4gpt
ist ein Python-Tool, mit dem große Markdown-Dateien basierend auf einem angegebenen Token-Limit in kleinere Abschnitte aufgeteilt werden können. Dies ist besonders nützlich für die Verarbeitung großer Markdown-Dateien mit GPT-Modellen, da die Modelle so die Daten in überschaubaren Blöcken verarbeiten können.
Version 1.0.9 (19.06.2023)
Sie können split_markdown4gpt
über pip installieren:
pip install split_markdown4gpt
Nach der Installation können Sie den Befehl mdsplit4gpt
verwenden, um eine Markdown-Datei zu teilen. Hier ist die grundlegende Syntax:
mdsplit4gpt path_to_your_file.md --model gpt-3.5-turbo --limit 4096 --separator " === SPLIT === "
Dieser Befehl teilt die Markdown-Datei unter path_to_your_file.md
in Abschnitte auf, von denen jeder nicht mehr als 4096 Token enthält (wie vom gpt-3.5-turbo
-Modell gezählt). Die Abschnitte werden durch === SPLIT ===
getrennt.
Alle CLI-Optionen:
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 ===".
Sie können split_markdown4gpt
auch in Ihrem Python-Code verwenden. Hier ist ein einfaches Beispiel:
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 )
Dieser Code macht dasselbe wie der obige CLI-Befehl, jedoch in Python.
split_markdown4gpt
funktioniert durch die Tokenisierung der eingegebenen Markdown-Datei mithilfe des Tokenizers des angegebenen GPT-Modells (Standard ist gpt-3.5-turbo
). Anschließend wird die Datei in Abschnitte aufgeteilt, die jeweils nicht mehr als das angegebene Token-Limit enthalten.
Der Aufteilungsprozess berücksichtigt die Struktur der Markdown-Datei. Ein Abschnitt (wie durch Markdown-Überschriften definiert) wird nicht auf mehrere Ausgabeabschnitte aufgeteilt, es sei denn, der Abschnitt ist länger als das Token-Limit. In diesem Fall ist es
teilt den Abschnitt auf Satzebene auf.
Um dies zu erreichen, nutzt das Tool mehrere Bibliotheken:
tiktoken
zur Tokenisierung des Textes gemäß den Regeln des GPT-Modells.fire
für die Erstellung der CLI.frontmatter
zum Parsen des Titels der Markdown-Datei (Metadaten am Anfang der Datei).mistletoe
zum Parsen der Markdown-Datei in einen Syntaxbaum.syntok
zum Aufteilen des Textes in Sätze.regex
und PyYAML
für verschiedene Hilfsfunktionen. split_markdown4gpt
ist besonders nützlich in Szenarien, in denen Sie große Markdown-Dateien mit GPT-Modellen verarbeiten müssen. Zum Beispiel:
Textgenerierung : Wenn Sie ein GPT-Modell verwenden, um Text basierend auf einer großen Markdown-Datei zu generieren, können Sie split_markdown4gpt
verwenden, um die Datei in überschaubare Abschnitte aufzuteilen. Dadurch kann das GPT-Modell die Datei in Blöcken verarbeiten und so Tokenüberlauffehler verhindern.
Datenvorverarbeitung : In maschinellen Lernprojekten müssen Sie Ihre Daten häufig vorverarbeiten, bevor Sie sie in Ihr Modell einspeisen. Wenn Ihre Daten in Form großer Markdown-Dateien vorliegen, kann Ihnen split_markdown4gpt
dabei helfen, diese Dateien basierend auf dem Token-Limit Ihres Modells in kleinere Abschnitte aufzuteilen.
Dokumentanalyse : Wenn Sie große Markdown-Dokumente analysieren (z. B. Schlüsselwörter extrahieren, Inhalte zusammenfassen), können Sie split_markdown4gpt
verwenden, um die Dokumente in kleinere Abschnitte zu unterteilen. Dadurch wird die Analyse übersichtlicher und effizienter.
Beiträge zu split_markdown4gpt
sind willkommen! Bitte öffnen Sie ein Problem oder senden Sie eine Pull-Anfrage im GitHub-Repository.