>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
TypeScript

如何将海量代码以图片形式喂给神经网络,节省60%的Token配额

我最近意识到,我们已经习惯于将语言模型的上下文窗口仅视为文本。你发送一个50,000字符的文件,需要支付12–15,000个文本Token。如果你连续数小时运行Claude Code或Cursor,上下文会不断被系统指令、工具文档和命令执行日志填充。月底的API账单开始变成一个令人不快的意外。

pxpipe项目的开发者发现了一个有趣的多模态模型定价漏洞。图像Token的成本仅取决于像素分辨率,而非其承载的文本量。如果将密集文本压缩为小字体的紧凑截图,一张图像Token可以容纳约3–5倍于标准文本Token的字符数。

pxpipe渲染示例:系统提示和工具文档被压缩到单个页面

就这样,一个本地代理服务器的想法诞生了——它会在将请求发送给Anthropic或OpenAI之前,实时将请求中的重内容重新绘制为单色PNG页面。

这个技巧如何运作

以文本格式传输时,JSON、数据库转储或代码等密集数据大约按每个Token一个字符的速率消耗。与此同时,Claude 3.5 Sonnet、Claude Opus或Gemini等现代模型通过内置视觉模块能出色地识别光栅图像。

pxpipe工具拦截你机器上的传出API请求,并使用自定义等宽字体(例如Spleen 5×8或JetBrains Mono)将笨重的上下文切片为密集图像。

图表显示通过图像传输时上下文窗口容量(字符数)的增长

模型收到的不是25,000个Token的系统提示和工具描述原始文本,而是仅重2,700个Token的几张图片。对于100万个Token的上下文窗口,这使实际字符容量增加了近5倍:从400万字符增加到1900–2100万字符。

什么被压缩,什么保持为文本

如果将整个对话转换为图片,模型不可避免地会在精确标识符上开始出错。pxpipe开发者考虑到了这一点,因此压缩是有选择性地进行的:

  1. 大型工具执行结果。如果控制台命令输出、测试日志或读取的文件超过6,000个字符,就会被转换为PNG。
  2. 旧消息历史。长对话中的早期步骤被打包到存档页面中。
  3. 繁重的系统提示和MCP工具规范。它们被缓存并作为图形页面发送。

用户的最新回复、新鲜的模型响应和短文本片段以原始文本形式不变地传输。模型逐字节地看到最近的编辑。

快速入门和连接代理

你可以通不永久安装即可运行该工具。它在端口47821上启动一个本地服务器:

之后,只需将Claude Code指向本地地址:

如果你不想处理环境变量,仓库包含一个包装命令。它为特定进程代理网络调用:

与代理一起,Web仪表板在启动。它实时显示节省的美元、修剪的Token数量,以及每个生成页面的预览以及原始文本。

无需启动服务器即可导出

如果你不需要代理,但想将大量代码库或git diff输入到支持图像的聊天Web界面中,可以使用导出模式:

该命令创建一个包含现成可用文件的文件夹、一个关键实体的简要文件,以及一个可粘贴到对话窗口中的提示。

硬币的另一面和诚实的局限性

这种方法看起来像作弊,但它有不可避免的物理限制。开发者在文档中直接列出了这些限制:

  • 哈希和ID的准确性损失。LLM视觉模块通过嵌入补丁工作,而不是具有逐字符概率的经典OCR。当每个字母的像素不足时,语言模型会简单地编造一个看似合理的字符。在作者的测试中,Fable 5上12字符十六进制字符串的精确匹配为15个中的13个,在某些模型上下降到零。关键标识符最好保留在文本中。
  • 渲染延迟。在发送大请求之前,处理器会花费数百毫秒在内存中生成PNG缓冲区。
  • 收益取决于内容密度。在代码、堆栈跟踪和JSON结构上节省最多。在常规的自然语言对话文本上,收益微乎其微或完全不存在,因为在常规文本中一个Token已经大约容纳3–4个字符。

这个项目现在对谁有用

如果你定期使用自主编码代理、运行基准测试或向模型输入多兆字节的构建日志,pxpipe从第一天起就物有所值。在漫长的调试会话中,每日账单从40美元降至6–7美元,同时保留了代理操作的总体逻辑。

你可以在几分钟内试用该工具,第一次测试甚至不需要从源代码构建。所有Token统计信息都由该工具整齐地存储在本地日志中,这样你就可以轻松地用该工具验证你的任务上的实际收益。

相关项目