这是一个Python工具,用于根据指定的标记限制将大型的Markdown文件拆分成更小的部分。这对于使用GPT模型处理大型Markdown文件特别有用,因为它允许模型以可管理的块处理数据。
项目描述
split_markdown4gpt
split_markdown4gpt
是一个Python工具,设计用来根据指定的标记限制将大型Markdown文件拆分成更小的部分。这对于使用GPT模型处理大型Markdown文件特别有用,因为它允许模型以可管理的块处理数据。
版本 1.0.9 (2023-06-19)
安装
您可以通过pip安装 split_markdown4gpt
pip install split_markdown4gpt
CLI使用
安装后,您可以使用 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 ===".
Python用法
您也可以在Python代码中使用split_markdown4gpt
。以下是一个基本示例
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实现。
- 查看API文档以了解更高级的使用方法
工作原理
split_markdown4gpt
通过使用指定GPT模型的分词器(默认为gpt-3.5-turbo
)对输入Markdown文件进行分词,然后将文件分割成部分,每个部分包含不超过指定的标记限制。
分割过程尊重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
将文档分解成更小的部分。这使得分析更易于管理和高效。
变更日志
- v1.0.7:将每个部分的模型从namedtuple更改为dict
- v1.0.6:修复
- v1.0.0:初始版本
贡献
欢迎对split_markdown4gpt
做出贡献!请在GitHub仓库上打开问题或提交pull request。
许可证
- 版权(c)2023 Adam Twardoch
- 在ChatGPT的帮助下编写
- 许可协议下:Apache License 2.0
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建版本
split_markdown4gpt-1.0.9.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1afaaac5526d1faca5554718882a7828166e3439c45df49726ec750243ade5e0 |
|
MD5 | 9d8938372c21648871a8ccdc52fbaa1d |
|
BLAKE2b-256 | 3312ce086a0ffd78b4a8cb688458bcbf6b38ce16055db2ee892cc31d961fead2 |
split_markdown4gpt-1.0.9-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c0bbf724f4f3feddc3dcb6c065d4c0c175676ed45c85e00477a912b6b349c36 |
|
MD5 | e8cfd40e33bec8cffdd5a36d2fd50044 |
|
BLAKE2b-256 | a19095e21c877d2939de37d9775c4d12461f74f652464e53b5b5f94a7f4841e1 |