split_markdown4gpt
es una herramienta de Python diseñada para dividir archivos Markdown grandes en secciones más pequeñas según un límite de token específico. Esto es particularmente útil para procesar archivos Markdown grandes con modelos GPT, ya que permite que los modelos manejen los datos en fragmentos manejables.
Versión 1.0.9 (2023-06-19)
Puedes instalar split_markdown4gpt
mediante pip:
pip install split_markdown4gpt
Después de la instalación, puede utilizar el comando mdsplit4gpt
para dividir un archivo Markdown. Aquí está la sintaxis básica:
mdsplit4gpt path_to_your_file.md --model gpt-3.5-turbo --limit 4096 --separator " === SPLIT === "
Este comando dividirá el archivo Markdown en path_to_your_file.md
en secciones, cada una de las cuales contendrá no más de 4096 tokens (contados por el modelo gpt-3.5-turbo
). Las secciones estarán separadas por === SPLIT ===
.
Todas las opciones de 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 ===".
También puedes usar split_markdown4gpt
en tu código Python. Aquí hay un ejemplo básico:
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 )
Este código hace lo mismo que el comando CLI anterior, pero en Python.
split_markdown4gpt
funciona tokenizando el archivo Markdown de entrada utilizando el tokenizador del modelo GPT especificado (el valor predeterminado es gpt-3.5-turbo
). Luego divide el archivo en secciones, cada una de las cuales no contiene más que el límite de token especificado.
El proceso de división respeta la estructura del archivo Markdown. No dividirá una sección (según lo definido por los encabezados de Markdown) en varias secciones de salida a menos que la sección sea más larga que el límite del token. En ese caso,
dividirá la sección a nivel de oración.
La herramienta utiliza varias bibliotecas para lograr esto:
tiktoken
para tokenizar el texto según las reglas del modelo GPT.fire
para crear la CLI.frontmatter
para analizar el front-matter del archivo Markdown (metadatos al inicio del archivo).mistletoe
para analizar el archivo Markdown en un árbol de sintaxis.syntok
para dividir el texto en oraciones.regex
y PyYAML
para varias funciones de utilidad. split_markdown4gpt
es particularmente útil en escenarios donde necesita procesar archivos Markdown grandes con modelos GPT. Por ejemplo:
Generación de texto : si está utilizando un modelo GPT para generar texto basado en un archivo Markdown grande, puede usar split_markdown4gpt
para dividir el archivo en secciones manejables. Esto permite que el modelo GPT procese el archivo en fragmentos, evitando errores de desbordamiento de token.
Preprocesamiento de datos : en proyectos de aprendizaje automático, a menudo es necesario preprocesar los datos antes de introducirlos en el modelo. Si sus datos están en forma de archivos Markdown grandes, split_markdown4gpt
puede ayudarlo a dividir estos archivos en secciones más pequeñas según el límite de token de su modelo.
Análisis de documentos : si está analizando documentos Markdown grandes (por ejemplo, extrayendo palabras clave, resumiendo contenido), puede usar split_markdown4gpt
para dividir los documentos en secciones más pequeñas. Esto hace que el análisis sea más manejable y eficiente.
¡Las contribuciones a split_markdown4gpt
son bienvenidas! Abra una incidencia o envíe una solicitud de extracción en el repositorio de GitHub.