《每次 API 调用前扔掉 43% Token,我开源了一个 AI 提示词瘦身工具》

第一篇:每次 API 调用前扔掉 43% Token,我开源了一个 AI 提示词瘦身工具

一个用 Python 写的 Prompt 精简库,40+ 条冗余规则 + LLM 智能压缩,每次调用前自动剃掉无效 Token。

为什么需要这个工具?

每次调 GPT-4o、Claude、DeepSeek,你是不是也这样:

  • "嗯那个我想说的是..." → 5 个 Token 纯浪费
  • "Basically, I just wanted to mention that..." → 8 个 Token 毫无意义
  • "求求了、帮帮忙、拜托拜托" → 对模型没用,但花钱是真的

我统计了自己一个月的 API 调用,平均 38% 的 Token 是冗余的 。按 GPT-4o 的 2.50/1Minput算,每个月白白烧掉 2.50/1M input 算,每个月白白烧掉 ~ 2.50/1Minput算,每个月白白烧掉 4。看着不多,但如果你每天调 1000 次,一年就是 $180+。

更要命的是,提示词越长,响应也越慢。那能不能在发请求之前,自动把这些废话过滤掉?

于是 PromptSlim 诞生了。

核心思路

在 client.chat.completions.create() 之前,插入一个轻量级的文本分析层:

复制代码
用户输入 → 冗余检测(40+ 规则)→ 代码保护 → LLM 二次压缩 → 发送 API

三个关键设计:

  1. 规则引擎前置:先跑 40+ 条正则,0 Token 消耗剃掉常规冗余
  2. 代码块保护:检测到 Python/JS/Go 代码自动跳过,绝不乱改
  3. LLM 语义压缩:规则处理后,按需调用轻量模型做精细压缩

5 分钟上手

bash 复制代码
pip install promptslim

命令行

bash 复制代码
# 直接精简
echo "嗯那个我想说的是这个功能非常非常好用对吧" | promptslim slim

# 统计 Token 数
promptslim count -i prompt.txt

# 智能压缩(LLM 二次处理)
promptslim smart -i long_prompt.txt --api-key YOUR_KEY

# 对比精简效果
promptslim compare -i before.txt -o after.txt

Python API

python 复制代码
from promptslim import quick_slim

# 一行搞定
report = quick_slim("嗯那个我想说的是这个功能非常非常好用对吧")
print(f"节省 {report.savings_pct}% Token")

# 批量处理
from promptslim import slim_batch
results = slim_batch(["prompt1", "prompt2", "prompt3"])
for r in results:
    print(f"节省 {r.savings_pct}%")

效果实测

场景 原始 Token 精简后 节省
中文口语化提示词 48 27 43.8%
英文冗余(basically/just/very) 27 24 11.1%
带代码块的技术问题 118 118 0%(代码被保护)
混合中英文长文 350 210 40.0%
礼貌用语堆砌 85 38 55.3%

代码块保护是最重要的安全机制。你绝不希望 AI 精简工具把你的 def quick_sort(arr) 变成 def sort(arr)。

技术架构

python 复制代码
# 核心流程(简化版)
def slim(prompt: str) -> SlimReport:
    # 1. 提取并保护代码块
    code_blocks, placeholder = extract_code_blocks(prompt)
    
    # 2. 应用 40+ 条冗余规则
    for rule in REDUNDANCY_RULES:
        prompt = rule.apply(prompt)
    
    # 3. 可选:LLM 语义压缩
    if use_llm:
        prompt = llm_compress(prompt)
    
    # 4. 还原代码块
    prompt = restore_code_blocks(prompt, code_blocks)
    
    return SlimReport(original_tokens, slimmed_tokens, savings_pct)

每条规则是一个简单的正则替换:

python 复制代码
# 中文冗余
("(嗯|那个|就是说|我想说的是)", ""),
("(非常|特别|十分)非常", "非常"),
("(可以|能)(够|以)", r"\1"),
("(帮助|帮)(你|我|我们)", r"\1助"),

# 英文冗余  
("basically,?\s*", ""),
("I just wanted to mention that\s*", ""),
("in my opinion,?\s*", ""),
("very very", "very"),

适用场景

✅ 适用 ❌ 不适用
日常聊天式提示词 精确的 few-shot 示例
多轮对话上下文累积 System prompt(需保持完整)
用户填写的长表单内容 法律/医疗等精确措辞
批量处理大量 Prompt 已精心优化的提示词

和竞品对比

工具 规则引擎 LLM 压缩 代码保护 离线
PromptSlim ✅ 40+ 规则 ✅ 可选 ✅ ✅
手动删减 ❌ ❌ --- ---
用 GPT 精简 ❌ ✅ ❌ ❌

下一步

PromptSlim 在 GitHub 开源,MIT 协议:

👉 github.com/JING04-PROD...

如果你每天调 API 超过 100 次,用它能直观感受到 Token 消耗下降。有问题或建议直接提 Issue。

相关推荐
十方空烬5 小时前
命中不等于支持:一个离线证据检索器只保证引文位置
开源
miofly6 小时前
百度开源ERNIE 5.5 Flash Base,总参数280B仅激活14B
开源·github
unconditional12 小时前
我拆了 sdkm 的回滚设计:每个写操作,都提前写好了翻车预案
rust·开源
熟的生菜12 小时前
从零造一个腱绳驱动灵巧手——仿真器篇4:Qt 界面实战——属性面板、树控件与姿势系统
开源
用户1179104883312 小时前
鸿蒙签名失败不是玄学:5 个证据点把 hapsigntool 一次排通 GitHub:swsgbl/hmharness
开源·ai编程·harmonyos
用户29914221968012 小时前
GitHub 热榜项目:日榜(2026-11-07)
人工智能·开源·github
Flynt13 小时前
内存省16倍的Lightpanda实测:数字是真的,但并发代码要重写
性能优化·开源·agent
分布式存储与RustFS15 小时前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
miofly16 小时前
GitHub 日榜趋势速报 | 2026-11-07
开源·github
冬奇Lab1 天前
一天一个开源项目(第255篇):Mika —— 装在安卓手机里的 AI 代理,在后台虚拟屏上替你操作 App 和网页
人工智能·开源·资讯