13个版本 (5个破坏性版本)
0.7.3 | 2024年8月10日 |
---|---|
0.7.2 | 2024年7月28日 |
0.6.1 | 2024年7月28日 |
0.5.0 | 2024年7月27日 |
0.2.1 | 2024年4月14日 |
#78 in 文件系统
每月 788 次下载
11KB
154 行
mkcontext
mkcontext
是一个命令行工具,可以从文件和命令输出生成上下文,适用于大型语言模型。
功能
- 使用glob模式处理多个文件
- 执行shell命令并包含其输出
- 使用OpenAI的tiktoken对内容进行标记化
- 将生成的上下文复制到剪贴板
- 限制令牌总数
- 根据glob模式包含或排除文件
安装
要安装 mkcontext
,您需要在系统上安装Rust和Cargo。然后,可以使用以下命令安装:
cargo install mkcontext
用法
mkcontext [OPTIONS]
选项
-t, --token-limit <TOKEN_LIMIT>
: 可选令牌限制(默认:200000)-c, --command <COMMAND>
: 要执行并包含在输出中的命令(可以多次使用)-g, --glob <GLOB>
: 包含或排除文件的glob模式(可以多次使用)-h, --help
: 打印帮助信息-V, --version
: 打印版本信息
示例
-
处理当前目录中的所有Rust文件
mkcontext -g "*.rs"
-
处理
src
目录及其子目录中的所有JavaScript文件,令牌限制为16000mkcontext -t 16000 -g "src/**/*.js"
-
将
git status
命令的输出包含在上下文中mkcontext -g "*.rs" -c "git status"
-
处理Python文件,并包含多个命令的输出
mkcontext -g "*.py" -c "pip list" -c "python --version"
-
结合文件处理和命令执行
mkcontext -g "src/**/*.rs" -g "tests/**/*.rs" -c "cargo test" -c "rustc --version"
-
排除特定的目录或文件模式
mkcontext -g "src/**/*.js" -g "!node_modules/**" -g "!*.log"
工作原理
mkcontext
处理匹配包含模式的指定文件,排除任何由排除模式指定的路径或模式。- 执行任何指定的命令并捕获它们的输出。
- 使用cl100k_base分词器对文件内容和命令输出进行分词。
- 如果总标记数超过指定限制,则返回错误。
- 生成的上下文将复制到剪贴板。
全局模式
-g
或--glob
选项允许您在处理过程中指定包含或排除文件的模式。这对于选择特定文件类型或排除某些目录或文件非常有用。
- 要包含文件,使用正则表达式全局模式:
-g "src/**/*.rs"
- 要排除文件或目录,在全局模式前加前缀
!
:-g "!node_modules/**"
您可以使用多个-g
选项来指定多个包含和排除模式
mkcontext -g "src/**/*.js" -g "!node_modules/**" -g "!*.log" -g "!build/**"
这将处理src
目录及其子目录中的所有JavaScript文件,同时忽略node_modules
目录、任何.log
文件和build/
目录。
注意
该工具使用系统剪贴板,所以请确保您的操作系统已安装适当的剪贴板驱动程序。
许可协议
本项目采用MIT许可协议。
依赖项
~14–24MB
~180K SLoC