91-Prompt的Token效率-冗余词清理-压缩技术-缓存公共前缀
文章目录【91.PythonAI】Prompt的Token效率怎么写才能又省钱效果又好导入语1 ~ 先搞懂钱花在哪一次调用的Token构成2 ~ 冗余词清理删字不掉效果2.1 三类必删的废话2.2 Before / After 对照3 ~ 中英文Prompt的成本真相4.2 结构化排版用格式代替解释4.3 符号化表达一个符号顶一句话5 ~ 缓存公共前缀重复的部分只付一次费5.1 原理一句话5.2 落地的两条纪律5.3 优化上线流水线思考 总结结尾【91.PythonAI】Prompt的Token效率怎么写才能又省钱效果又好文章简介本文系统讲解Prompt的Token效率优化解决效果差不多、账单差几倍的成本失控问题。文章从一次API调用的Token构成切入定位System Prompt、Few-Shot示例、用户输入、模型输出四大开销区的浪费点给出冗余词清理的Before/After实操对照删掉礼貌用语与空洞修饰效果不掉反升厘清中英文Prompt的Token成本差异与选型决策什么时候用英文写反而更亏详解三种工程化压缩技术——指令瘦身、结构化排版、符号化表达最后讲透缓存公共前缀Prompt Caching的原理与落地姿势让每次调用重复的部分只付一次费。配以Mermaid流程图展示从账单分析到优化上线的完整流水线适合Prompt越写越长、Token费用逐月攀升的AI应用开发者阅读参考。 个人主页源码骑士❄专栏传送门《Android开发基础》《python基础课程》⭐️热衷从源码视角拆解技术底层原理将复杂架构讲得通俗易懂 源码骑士的简介5年Android Framework系统开发经验曾主导多项系统级性能优化专项技术栈覆盖Android系统全链路Binder/Handler/AMS/WMS/启动流程及Java后端全家桶Spring MyBatis Redis Oracle累计产出原创技术文章100篇文章以流程图为特色被读者评价为看一篇胜过啃一周源码导入语月底翻API账单你会发现一个扎心的事实用户真正问的内容可能就一两百个Token但你的System Prompt加Few-Shot示例洋洋洒洒三千Token——每一次调用用户还没开口你就已经先把三千Token的固定开支付掉了。一万次调用就是三千万Token烧的全是重复的钱。更憋屈的是这三千Token里起码有三分之一是废话“请你务必认真对待”“作为一个专业的助手”“希望你能够”——这些话不会让模型表现更好只会让账单更厚。这篇文章就干一件事把Prompt里每一类浪费指认出来并给出对应的瘦身方案。原则是绝不动摇效果——我们砍的是赘肉不是肌肉。1 ~ 先搞懂钱花在哪一次调用的Token构成打开任何一次大模型调用输入侧的开销都能拆成四块开销区典型占比特点优化空间System Prompt30%~60%每次调用原样重发★★★ 最大Few-Shot 示例20%~40%示例越多越贵★★☆ 精简案例用户输入5%~15%用户给的动不了☆ 基本不动历史对话视轮次而定越聊越贵★★☆ 窗口截断看清楚这张表优化方向就明确了先砍System Prompt和Few-Shot里的水分再用缓存把每次重发的固定开支摊薄。用户输入是刚需别打它的主意——从用户嘴里省Token省的是钱丢的是体验。2 ~ 冗余词清理删字不掉效果2.1 三类必删的废话废话一礼貌用语请你务必...麻烦你...希望你能...非常感谢你的配合 → 模型不需要被哄删掉零影响 废话二空洞的自我标榜 作为一个非常专业且经验丰富的资深助手... → 不如直接说他是什么角色、干什么活角色设定见下一篇 废话三同义反复的强调 非常重要的一点是你必须注意千万不要忽略... → 一句话说一遍就够重复强调不涨权重只涨账单2.2 Before / After 对照【优化前 ·112Token】 你好作为一名非常专业的电商平台情感分析专家 请你务必认真阅读下面这段用户评论然后仔细判断 它的情感倾向。请注意你只能从正面负面中性 这三个类别中选择千万不要输出其他内容。非常感 谢你的配合 【优化后 ·41Token】 你是电商评论情感分类器。将评论分类为正面/负面/中性。 只输出类别标签。瘦身 63%准确率实测不降。原因很简单模型的注意力是稀缺资源废话越多关键指令被稀释得越厉害——删冗余不仅省钱很多时候效果反而更好。怎么验证删了不掉效果把优化前后的两版Prompt放进第90篇搭好的评测集里各跑一遍准确率差异在误差范围内就放心上线。凭感觉删字是赌博带数据删字才是工程。3 ~ 中英文Prompt的成本真相第41篇算过Token的精确账这里只给和成本相关的决策结论写法同一段指令的大致Token适用判断中文Prompt较少汉字信息密度高国内模型、中文业务默认选中文英文Prompt通常多20%~50%仅在英文指令效果显著更好时考虑网上流传用英文写Prompt更高级——别信这个玄学。对国产模型和中文业务中文指令又短又准真正要权衡英文的只有一种情况某个模型在英文指令下的任务表现确实压过中文且效果收益大过Token成本。用评测集说话别用信仰说话。--- ## 4 ~ 三种工程化压缩技术 ### 4.1 指令瘦身动词开头一条一行 bash 【口语版】我想让你帮我把用户发过来的内容里面涉及 个人隐私的信息都找出来并且删掉。 【指令版】 任务脱敏 1. 识别姓名/手机号/身份证/地址 2. 替换为 [已脱敏] 3. 其余内容原样保留动词开头、编号分条——既省Token又降低了模型的理解歧义。4.2 结构化排版用格式代替解释【啰嗦版】输出的时候请先输出商品的名称然后换行 再输出价格价格后面要加上单位元... 【结构版】输出格式 品名名称价格数字元4.3 符号化表达一个符号顶一句话请从以下四个选项中选择分别是物流问题、质量问题、 售后问题、其他→ 分类∈{物流, 质量, 售后, 其他}输出的置信度必须介于0和1之间→ 置信度∈[0,1]主流模型对数学符号和集合记号的理解非常好一行符号替代三行解释还能顺便消除自然语言的歧义。5 ~ 缓存公共前缀重复的部分只付一次费5.1 原理一句话主流厂商OpenAI、Anthropic、DeepSeek等都提供了Prompt Caching如果多次调用的Prompt开头部分完全相同服务端会复用前缀的KV Cache命中缓存的部分按折扣价计费通常是原价的1折~5折。5.2 落地的两条纪律纪律一固定内容放前面变量内容放最后 ✔[超长System Prompt][Few-Shot示例]...[用户问题]✘ 把用户ID、时间戳插在System Prompt中间 → 前缀从插入点开始全部失效缓存白给 纪律二前缀保持稳定别做无意义的动态拼接今天是2025年X月X日这类每次都在变的内容 要么删掉要么挪到最后——放在前缀里就是缓存杀手5.3 优化上线流水线System Prompt冗长Few-Shot太多前缀重复发送导出本月调用账单拆解Token构成定位最大开销区开销集中在哪里?冗余词清理指令瘦身/符号化精简示例改动态检索式示例启用Prompt Caching变量后移评测集回归准确率不降才放行灰度上线监控Token/调用量曲线下月账单复核形成优化闭环思考 总结先拆账再优化输入侧开销拆成System Prompt、Few-Shot、用户输入、历史对话四块先砍占比最大的别在用户输入上动脑筋。冗余词三类必删礼貌用语、空洞标榜、同义强调——删掉通常不掉效果有时反而更好但一切以评测集回归为准。中英文选型看实测中文信息密度高、国产模型默认中文英文只在效果收益 Token成本时考虑。压缩三板斧指令瘦身动词开头一条一行、结构化排版格式代替解释、符号化表达一行符号顶三句话。缓存公共前缀是杠杆最大的优化固定内容前置、变量内容后置命中缓存的部分最低按一折计费。省Token省的是钱但角色写不好浪费的是效果——下一篇聊角色扮演Prompt为什么你是资深医生这六个字远远不够以及怎样把角色写到能上场坐诊的程度。结尾各位小伙伴本文的内容到这里就全部结束了源码骑士在这里再次感谢您的阅读源码骑士 — Android Framework 全栈开发关注跟博主一起从源码视角深耕底层原理见证每一次成长❤️点赞让优质内容被更多人看见让知识传递更有力量⭐收藏把核心知识点存好在需要时随时查、随时用评论分享你的经验或疑问评论区一起交流避坑一键四连不要忘记给博主一键四连哦️寄语技术之路难免有困惑但同行的人会让前进更有方向结语Prompt的成本优化没有银弹只有一笔一笔算清楚的细账——删掉一句废话、挪对一个变量、命中一次缓存聚沙成塔就是账单上看得见的下降。不要忘记给博主一键四连哦