掌握 TOON CLI
如果您一直在使用大型语言模型 (LLM),您就会知道 JSON 是数据交换的通用语言。 然而,您也知道 JSON 是出了名的“健谈”。 所有这些大括号、引号和重复的键都会占用您的上下文窗口、增加延迟并增加 API 成本。
这就是 TOON(面向对象表示法)的闪光点。 虽然 TypeScript 库非常适合应用程序代码,但有时您只需要在终端中快速完成工作。 无论您是在调试提示、准备数据集,还是只是想知道在代币上可以节省多少钱,“@toon-format/toon” CLI 都是您最好的新朋友。
在本指南中,我们将了解如何利用 TOON 命令行界面将数据优化直接集成到您的 shell 工作流程中。
设置
现代 JavaScript 工具的优点之一是您通常不需要“安装”任何东西就可以开始使用。 如果您只想在单个文件上尝试 TOON,您可以使用 npx 直接运行二进制文件:
npx @toon-format/cli input.json -o output.toon
但是,如果您计划经常使用此功能(并且一旦看到代币节省,您很可能会这样做),那么全局安装就是最佳选择。 它使您可以在系统中的任何位置访问简洁的“toon”命令。
npm install -g @toon-format/cli
# 或
pnpm 添加-g @toon-format/cli
安装完成后,您就可以开始缩减数据了。
自动检测的魔力
TOON CLI 旨在智能地了解您正在尝试执行的操作。 您很少需要明确告诉它进行编码或解码; 它会根据您的文件扩展名来决定。
如果您向其提供“.json”文件,它会假设您要将其编码为 TOON。 如果您提供“.toon”文件,它会切换到解码模式以返回 JSON。
# 自动编码为TOON
香椿 data.json -o 压缩.toon
# 自动解码为JSON
香椿压缩.toon -o 恢复.json
但 CLI 真正证明其价值的地方在于“Unix 哲学”——松散连接的小工具。 由于 TOON CLI 从标准输入 (stdin) 读取并写入标准输出 (stdout),因此您可以直接通过它传输数据。
# 将 JSON 直接传输到 TOON
猫大数据集.json | 卡通 > 数据.toon
# 回显一个快速对象以查看它在 TOON 中的外观
echo '{"名称": "Ada", "角色": "管理员"}' | 香椿
当您通过 stdin 传输数据时,CLI 默认为 encode 模式。 如果您需要解码来自另一个进程的 TOON 数据流,只需添加“--decode”(或“-d”)标志即可。
分析代币节省
优化数据格式通常是猜谜游戏。 “如果我删除空格,我可以节省多少钱?” “如果我改用 YAML 会怎样?”
TOON CLI 通过“--stats”标志消除了猜测。 编码时,此选项会计算估计的令牌计数并立即向您显示节省的费用。 当您为大量 LLM 通话制定预算时,这是非常宝贵的。
香椿 context.json --stats
您可能会看到输出表明大小减少了 30% 或 40%。 这不仅仅是磁盘空间; 延迟减少了 40%,输入令牌成本降低了 40%。
高级调整:分隔符和格式
默认情况下,TOON 使用逗号分隔数组项,类似于 JSON。 然而,不同的 LLM 分词器对于标点符号的表现有所不同。 有时,制表符或竖线 (|) 比逗号更有效。
CLI 允许您即时交换分隔符。 如果您正在处理表格数据,切换到制表符分隔符可以使输出看起来更干净并且处理更有效。
对于产品列表,这会将输出从逗号分隔的列表转换为干净的、制表符分隔的结构,看起来几乎像电子表格,许多模型都可以很好地解析电子表格。
# 对数组项使用制表符
toon items.json --分隔符 "\t" -o items.toon
::: 小费 专业提示: 制表符分隔符通常会减少转义引号的需要,并且可以更好地对数字数据进行标记。 如果您正在处理海量数据集,请尝试“--delimiter "\t"”来榨取每一点效率。 :::
带密钥折叠的压缩结构
CLI 中提供的较新功能之一(在规范 v1.5 中引入)是 密钥折叠。 JSON 数据通常是深度嵌套的,带有像“data.response.items”这样的包装器键,它们增加了结构深度,但没有增加意义。
CLI 允许您将这些嵌套键“折叠”到单个点符号路径中,从而展平层次结构并节省缩进和大括号上的标记。
香椿 deep-struct.json --key-folding safe -o flat.toon
这会转换嵌套对象:
{ “用户”:{ “个人资料”:{ “id”:1 } } }
转化为简洁的 TOON 表示形式:
用户.个人资料.id: 1
如果稍后需要将其转换回完整的 JSON,则可以在解码过程中使用“--expand-paths safe”标志来完美重建深层对象结构。
集成到管道中
当您将 TOON CLI 与“curl”和“jq”等其他工具链接起来时,TOON CLI 的真正威力就会显现出来。 您可以从 API 获取数据,将其过滤到必需的内容,然后在一行中将其转换为 TOON - 准备好粘贴到提示中或发送到推理端点。
在此工作流程中,您获取数据,仅提取活动用户,将其转换为管道分隔的 TOON 格式,并获取有关您刚刚保存的令牌数量的统计报告。
卷曲-s https://api.example.com/users \
| jq '.data.active_users' \
| 香椿 --stats --分隔符“|”
## 概括
@toon-format/cli 不仅仅是一个文件转换器; 它是LLM时代的实用腰带。 通过将数据处理转移到命令行,您可以更快地迭代、立即可视化优化,并将令牌高效格式集成到现有的工程工作流程中。
无论您是准备 RAG(检索增强生成)文档,还是只是尝试将大量 JSON blob 放入小型上下文窗口中,都可以尝试一下 CLI。 您的代币预算将会感谢您。