首页/新闻资讯/正文详情

91-Prompt的Token效率实战:冗余词清理、压缩技术与缓存公共前缀配置

发布时间:2026/9/26 4:01:42 来源:云帆数科 栏目:资讯中心
91-Prompt的Token效率实战:冗余词清理、压缩技术与缓存公共前缀配置
1. 为什么你的 Prompt 越写越长账单却越来越贵如果你正在用大模型 API 做应用大概率遇到过这个场景功能没加几个月底账单却翻了一倍。打开调用日志一看用户真正问的问题可能就几十个字但每次请求的输入 Token 动辄两三千。这些 Token 花在哪了答案是 System Prompt、Few-Shot 示例、历史对话这些固定开支上。Prompt 的 Token 效率优化说白了就是三件事把废话删掉、把表达压缩、把重复的部分缓存起来。它适合所有通过 API 调用大模型的开发者尤其是那些 System Prompt 超过 500 Token、Few-Shot 示例超过 3 条、每天调用量上千次的项目。我试过在一个情感分类任务上做优化输入 Token 从 112 降到 41准确率没有下降单次调用成本直接砍掉六成。这篇文章会交付三样可以直接复制的东西一套冗余词清理规则、一套 Prompt 压缩模板、一套缓存公共前缀的配置骨架。每一步都有具体的操作和验证方法你可以跟着做一遍然后用自己的账单数据对比效果。2. TaoToken 前置准备拿到 API Key 和接入地址在开始优化之前你需要一个可以调用大模型的 API 入口。TaoToken 提供了统一的 API 接入层支持多种主流模型方便你在同一个平台上做 Token 消耗对比。首先访问官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册账号。注册完成后进入控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在API Keys页面点击创建复制生成的 Key 保存好。API 的基础地址是 https://taotoken.net/api 这个地址不加任何 UTM 参数直接用于代码中的 base_url 配置。如果你需要查看详细的接入文档可以访问 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各语言的调用示例。拿到 Key 之后建议先通过模型对话页面测试一下连通性https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。在页面上输入一段测试文本确认能正常返回结果再进入下一步的代码配置。3. 可复制配置冗余词清理规则与压缩模板3.1 三类必删的冗余词第一类是礼貌用语。请你务必麻烦你希望你能非常感谢你的配合——这些词对模型输出没有任何影响删掉零损失。第二类是空洞的自我标榜。作为一个非常专业且经验丰富的资深助手——不如直接说清楚角色和任务。第三类是同义反复的强调。非常重要的一点是你必须注意千万不要忽略——说一遍就够了重复强调不涨权重只涨账单。下面是一个 Before/After 对照你可以直接套用到自己的 Prompt 上# 优化前112 Token prompt_before 你好作为一名非常专业的电商平台情感分析专家 请你务必认真阅读下面这段用户评论然后仔细判断 它的情感倾向。请注意你只能从正面负面中性 这三个类别中选择千万不要输出其他内容。非常感 谢你的配合 # 优化后41 Token prompt_after 你是电商评论情感分类器。将评论分类为正面/负面/中性。 只输出类别标签。 瘦身 63%实测准确率不降。原因很简单模型的注意力是稀缺资源废话越多关键指令被稀释得越厉害。3.2 三种工程化压缩技术指令瘦身的原则是动词开头、一条一行。把我想让你帮我把用户发过来的内容里面涉及个人隐私的信息都找出来并且删掉改成任务脱敏。1. 识别姓名/手机号/身份证/地址。2. 替换为 [已脱敏]。3. 其余内容原样保留。结构化排版是用格式代替解释比如把输出的时候请先输出商品的名称然后换行再输出价格改成输出格式品名名称 价格数字元。符号化表达是用数学符号替代自然语言请从以下四个选项中选择改成分类∈{物流, 质量, 售后, 其他}置信度必须介于0和1之间改成置信度∈[0,1]。3.3 缓存公共前缀的 settings.json 配置骨架缓存公共前缀的核心纪律只有两条固定内容放前面变量内容放最后前缀保持稳定别做无意义的动态拼接。下面是一个配置骨架你可以根据自己的项目调整{ prompt_cache: { enabled: true, prefix_blocks: [ { type: system, content: 你是电商评论情感分类器。将评论分类为正面/负面/中性。只输出类别标签。, cache: true }, { type: few_shot, examples: [ {input: 质量很好物流很快, output: 正面}, {input: 用了三天就坏了, output: 负面}, {input: 还行吧一般般, output: 中性} ], cache: true } ], variable_block: { type: user_input, position: last, cache: false } } }这个配置的关键在于system 和 few_shot 块标记为 cache: true它们会被缓存user_input 块放在最后不参与缓存。这样每次调用时前缀部分命中缓存按折扣价计费只有用户输入部分按原价计算。4. 验证请求与成功结果配置完成后你需要验证缓存是否生效、Token 消耗是否下降。下面是一个 Python 验证脚本使用 OpenAI SDK 调用 TaoToken 的 APIfrom openai import OpenAI client OpenAI( api_key你的API Key, base_urlhttps://taotoken.net/api ) # 第一次调用缓存未命中 response1 client.chat.completions.create( modelgpt-4o-mini, messages[ {role: system, content: 你是电商评论情感分类器。将评论分类为正面/负面/中性。只输出类别标签。}, {role: user, content: 质量很好物流很快} ] ) print(第一次调用 Token 使用, response1.usage) # 第二次调用相同前缀缓存应命中 response2 client.chat.completions.create( modelgpt-4o-mini, messages[ {role: system, content: 你是电商评论情感分类器。将评论分类为正面/负面/中性。只输出类别标签。}, {role: user, content: 用了三天就坏了} ] ) print(第二次调用 Token 使用, response2.usage)运行后观察两次调用的 usage 字段。如果缓存生效第二次调用的 prompt_tokens 中会有一部分标记为 cached_tokens计费按折扣价计算。实测下来在相同前缀长度超过 500 Token 的情况下第二次调用的输入成本可以降到原来的 10% 到 50%。你还可以通过模型对话页面手动测试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。在页面上连续发送两条只有用户输入不同的消息观察返回的 Token 统计。5. 本篇常见错误排查第一个常见错误是把变量插在了 System Prompt 中间。比如在 System Prompt 里写了当前用户ID是 {user_id}这会导致前缀从插入点开始全部失效缓存完全白给。正确的做法是把所有变量内容挪到最后或者干脆删掉。第二个错误是 Few-Shot 示例每次都在变。如果你从数据库里动态检索示例每次调用的示例顺序或内容不同前缀就不稳定缓存无法命中。解决方案是固定示例集或者把动态示例放在用户输入之后。第三个错误是忽略了中英文 Token 成本差异。同一段指令中文 Prompt 的 Token 数通常比英文少 20% 到 50%因为汉字信息密度更高。对国产模型和中文业务默认用中文写 Prompt 更划算。只有在某个模型英文指令效果显著更好、且效果收益大过 Token 成本时才考虑用英文。第四个错误是只优化了 Prompt 但没做评测回归。删冗余词、改压缩模板之后一定要用评测集跑一遍确认准确率没有下降。凭感觉删字是赌博带数据删字才是工程。如果你在接入过程中遇到 API Key 配置问题可以查看接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果需要管理多个 Key 或查看用量去控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。6. 长期编码与 Agent 场景的 Token 优化建议如果你是在做长期编码助手或者 Agent 应用Prompt 的 Token 效率优化会更加关键因为这类场景的 System Prompt 通常更长、历史对话更多、调用频率更高。除了上面讲的冗余词清理和缓存前缀你还可以考虑使用 Coding Plan 来获得更稳定的调用配额和更低的单位成本https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。对于 Claude Code 这类编码工具TaoToken 也提供了对应的接入方式具体可以参考https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeutm_campaignrewrite 。在 Agent 场景中建议把工具描述、系统指令这些固定内容全部前置并开启缓存把用户输入和工具返回结果放在最后这样每次调用的固定开支可以降到最低。最后提醒一点Token 优化不是一次性的工作而是一个持续的过程。建议每月导出一次调用账单拆解 Token 构成定位最大的开销区然后针对性地做优化。删掉一句废话、挪对一个变量、命中一次缓存聚沙成塔就是账单上看得见的下降。

相关推荐

Bert、LLaMA、ChatGLM 到底咋选?TaoToken 统一 Key 接入前的模型选型清单
Bert、LLaMA、ChatGLM 到底咋选?TaoToken 统一 Key 接入前的模型选型清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:01:42

Comsol完美吸收器仿真:从PML到超材料结构设计
Comsol完美吸收器仿真:从PML到超材料结构设计

最近总有人在社群里问我,为什么单拿一个"吸收器"就能折腾出那么多名堂。其实我入坑Comsol电磁仿真这几年,最常被朋友拿来讨论的案例,除了激光焊接、变压器振动噪声、等离子体放电这些工程向的,就是"完美吸收器&quo… · 2026/9/26 4:01:36

ESP32上运行WASM的真正门槛:WAMR运行时与硬件绑定实战
ESP32上运行WASM的真正门槛:WAMR运行时与硬件绑定实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:01:36

LMDeploy 大模型压缩、部署与服务工具箱全解析:双引擎推理、量化与 OpenAI 兼容服务实战
LMDeploy 大模型压缩、部署与服务工具箱全解析:双引擎推理、量化与 OpenAI 兼容服务实战

人工智能大模型模型推理服务推理引擎本地部署模型量化 【免费下载链接】lmdeploy LMDeploy is a toolkit for compressing, deploying, and serving LLMs. 项目地址: https://gitcode.com/gh_mirrors/lm/lmdeploy 点击查看 免费下载 LMDeploy 是面向大型语言模型&a… · 2026/9/26 7:26:53

TypeScript与ES6实战笔记:从深拷贝、Map到类型系统与工程化避坑
TypeScript与ES6实战笔记:从深拷贝、Map到类型系统与工程化避坑

1. 从“自用”到“贴出来”:这本笔记记录的起点先说个实话:我电脑里躺着十几份命名格式是“XX学习笔记(自用)”的文档,有的写着写着就烂尾了,有的纯粹变成了一个收藏夹搬运工,真正派上用场的少。… · 2026/9/26 7:26:53

SpringBoot+Vue学生干部管理系统毕设完整设计与实现解析
SpringBoot+Vue学生干部管理系统毕设完整设计与实现解析

每到毕业季,总有一批人被毕设项目搞得焦头烂额,尤其是 Java Web 方向的学生干部管理系统这类题目,看起来平平无奇,真动手写代码才发现,从需求到数据库、从后端接口到前端页面,每一层都有坑。这套 SpringBoo… · 2026/9/26 7:26:53

STM32F407 启动文件:从上电复位到 main()
STM32F407 启动文件:从上电复位到 main()

平时编写 STM32 程序,通常从 main() 开始。但芯片上电后,需要先设置栈指针、找到程序入口、配置系统时钟,并准备好 C 程序的运行环境,才能执行 main()。本文以 STM32F407、Keil MDK 和标准外设库工程为例,整理启动文件… · 2026/9/26 7:26:53

SpringBoot+Vue智能无人仓库管理系统:从业务设计到部署实战
SpringBoot+Vue智能无人仓库管理系统:从业务设计到部署实战

做无人仓库管理系统这个项目的人,这几年越来越多了。SpringBoot加Vue这套组合在Java后端圈子里几乎成了标配,MySQL和MyBatis又是持久层最务实的搭配,所以像"基于SpringBootVue的智能无人仓库管理系统"这种题目,不管是课… · 2026/9/26 7:26:53

PCA+BP+PNN工业故障诊断落地实践
PCA+BP+PNN工业故障诊断落地实践

简介:本资源是一套面向机器学习初学者与算法实践者的PNN、PCA及BP神经网络综合实现代码包,聚焦于模式识别、特征降维与非线性分类任务,适用于课程设计、算法原理验证及小型数据建模项目。压缩包共49个文件,以35个MATLAB数据文件&a… · 2026/9/26 7:26:46

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码