split_markdown4gpt
é uma ferramenta Python projetada para dividir grandes arquivos Markdown em seções menores com base em um limite de token especificado. Isso é particularmente útil para processar arquivos Markdown grandes com modelos GPT, pois permite que os modelos manipulem os dados em partes gerenciáveis.
Versão 1.0.9 (19/06/2023)
Você pode instalar split_markdown4gpt
via pip:
pip install split_markdown4gpt
Após a instalação, você pode usar o comando mdsplit4gpt
para dividir um arquivo Markdown. Aqui está a sintaxe básica:
mdsplit4gpt path_to_your_file.md --model gpt-3.5-turbo --limit 4096 --separator " === SPLIT === "
Este comando dividirá o arquivo Markdown em path_to_your_file.md
em seções, cada uma contendo no máximo 4.096 tokens (conforme contados pelo modelo gpt-3.5-turbo
). As seções serão separadas por === SPLIT ===
.
Todas as opções 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 ===".
Você também pode usar split_markdown4gpt
em seu código Python. Aqui está um exemplo 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 faz a mesma coisa que o comando CLI acima, mas em Python.
split_markdown4gpt
funciona tokenizando o arquivo Markdown de entrada usando o tokenizer do modelo GPT especificado (o padrão é gpt-3.5-turbo
). Em seguida, ele divide o arquivo em seções, cada uma contendo no máximo o limite de token especificado.
O processo de divisão respeita a estrutura do arquivo Markdown. Ele não dividirá uma seção (conforme definido pelos títulos Markdown) em várias seções de saída, a menos que a seção seja maior que o limite do token. Nesse caso,
dividirá a seção no nível da frase.
A ferramenta usa várias bibliotecas para fazer isso:
tiktoken
para tokenizar o texto de acordo com as regras do modelo GPT.fire
para criar a CLI.frontmatter
para analisar o front mater do arquivo Markdown (metadados no início do arquivo).mistletoe
para analisar o arquivo Markdown em uma árvore de sintaxe.syntok
para dividir o texto em frases.regex
e PyYAML
para várias funções utilitárias. split_markdown4gpt
é particularmente útil em cenários onde você precisa processar grandes arquivos Markdown com modelos GPT. Por exemplo:
Geração de texto : se estiver usando um modelo GPT para gerar texto com base em um arquivo Markdown grande, você pode usar split_markdown4gpt
para dividir o arquivo em seções gerenciáveis. Isso permite que o modelo GPT processe o arquivo em partes, evitando erros de estouro de token.
Pré-processamento de dados : em projetos de aprendizado de máquina, muitas vezes você precisa pré-processar seus dados antes de alimentá-los em seu modelo. Se seus dados estiverem na forma de arquivos Markdown grandes, split_markdown4gpt
pode ajudá-lo a dividir esses arquivos em seções menores com base no limite de token do seu modelo.
Análise de documentos : se você estiver analisando grandes documentos Markdown (por exemplo, extraindo palavras-chave, resumindo conteúdo), poderá usar split_markdown4gpt
para dividir os documentos em seções menores. Isso torna a análise mais gerenciável e eficiente.
Contribuições para split_markdown4gpt
são bem-vindas! Abra um problema ou envie uma solicitação pull no repositório GitHub.