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 存取壓縮功能。

相關

  • 專案
  • 專案
  • 專案