jia-gao/leanctx
Drop-in prompt compression for production LLM apps. Cut your token bill 40-60% without changing your code. Python SDK, LLMLingua-2, MIT.
解决的问题
leanctx 是一个即插即用的提示压缩库,旨在在不显著牺牲准确性的前提下,将 LLM 输入令牌成本降低 10–40%。它特别针对动态查询内容——如聊天历史、RAG 中的检索文档和工具输出——这些内容无法通过提供商端的提示缓存处理。
工作原理
该项目使用「损失容忍路由」机制,根据提示段落能承受的失真程度进行分类,然后根据内容类型应用不同的压缩策略:
- 零容忍(逐字保留): 代码、堆栈跟踪和工具调用元数据以字节为单位完全保留,确保结构完整性。
- 高容忍(Lingua): 文档、日志和检索段落使用本地 LLMLingua-2 模型进行压缩(约 50% 减少)。
- 条件性(Self-LLM): 低置信度的散文或过大的上下文将被路由到廉价 LLM 进行摘要(可选启用)。
为确保可靠性,该库在压缩后会检查「不变量」(例如消息顺序、工具 ID)。如果检查失败或过程超时,将「开放失败」,向提供商发送原始未压缩请求。
适用人群
- 面临高额令牌费用的生产级 LLM 应用开发者。
- 具有大检索上下文的 RAG 应用构建者。
- 使用 LangChain 或 CrewAI 等框架构建长期对话代理的开发者。
- 处理大量工具调用历史和源代码的编码代理开发者。
亮点
- 即插即用集成: 通过简单配置即可封装现有的 OpenAI、Anthropic 和 Gemini SDK。
- 本地执行: 压缩模型在本地运行(MIT 许可证),默认情况下用户数据不会离开基础设施。
- 与缓存互补: 可与提供商提示缓存配合使用,压缩请求的可变后缀部分。
- 可观测性: 内置 OpenTelemetry 支持,用于追踪令牌节省、成本和延迟。
- HTTP 侧车: 提供基于 FastAPI 的服务器,供非 Python 堆栈通过 API 访问压缩功能。
相关
- 项目
- 项目
- 项目