split_markdown4gpt
— это инструмент Python, предназначенный для разделения больших файлов Markdown на более мелкие разделы на основе указанного лимита токенов. Это особенно полезно для обработки больших файлов Markdown с помощью моделей GPT, поскольку позволяет моделям обрабатывать данные управляемыми фрагментами.
Версия 1.0.9 (19.06.2023)
Вы можете установить split_markdown4gpt
через pip:
pip install split_markdown4gpt
После установки вы можете использовать команду mdsplit4gpt
, чтобы разделить файл Markdown. Вот основной синтаксис:
mdsplit4gpt path_to_your_file.md --model gpt-3.5-turbo --limit 4096 --separator " === SPLIT === "
Эта команда разделит файл Markdown по адресу path_to_your_file.md
на разделы, каждый из которых содержит не более 4096 токенов (по подсчетам модели gpt-3.5-turbo
). Разделы будут разделены === SPLIT ===
.
Все параметры 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 ===".
Вы также можете использовать split_markdown4gpt
в своем коде Python. Вот базовый пример:
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 )
Этот код делает то же самое, что и приведенная выше команда CLI, но на Python.
split_markdown4gpt
работает путем токенизации входного файла Markdown с использованием токенизатора указанной модели GPT (по умолчанию — gpt-3.5-turbo
). Затем он разбивает файл на разделы, каждый из которых содержит не более указанного лимита токенов.
Процесс разделения учитывает структуру файла Markdown. Он не будет разбивать раздел (как определено заголовками Markdown) на несколько выходных разделов, если только длина раздела не превышает лимит токена. В таком случае это
разделит раздел на уровне предложения.
Для этого инструмент использует несколько библиотек:
tiktoken
для токенизации текста по правилам модели GPT.fire
для создания CLI.frontmatter
для анализа вступительной части файла Markdown (метаданные в начале файла).mistletoe
для анализа файла Markdown в синтаксическое дерево.syntok
для разделения текста на предложения.regex
и PyYAML
для различных служебных функций. split_markdown4gpt
особенно полезен в сценариях, где вам необходимо обрабатывать большие файлы Markdown с помощью моделей GPT. Например:
Генерация текста . Если вы используете модель GPT для генерации текста на основе большого файла Markdown, вы можете использовать split_markdown4gpt
, чтобы разделить файл на управляемые разделы. Это позволяет модели GPT обрабатывать файл частями, предотвращая ошибки переполнения токена.
Предварительная обработка данных . В проектах машинного обучения вам часто необходимо предварительно обработать данные перед их подачей в модель. Если ваши данные представлены в виде больших файлов Markdown, split_markdown4gpt
может помочь вам разделить эти файлы на более мелкие разделы в зависимости от лимита токенов вашей модели.
Анализ документа . Если вы анализируете большие документы Markdown (например, извлекаете ключевые слова, обобщаете содержимое), вы можете использовать split_markdown4gpt
, чтобы разбить документы на более мелкие разделы. Это делает анализ более управляемым и эффективным.
Вклад в split_markdown4gpt
приветствуется! Откройте проблему или отправьте запрос на включение в репозиторий GitHub.