如果你经常使用ChatGPT、Claude、Gemini或通过API使用AI模型,那么Token这个词肯定会经常出现。
Token本质上是由AI处理的文本片段。对话、提示、文档和生成的响应越长,使用的Token就越多。
如果你只是偶尔使用AI,可能不会太在意。但如果AI用于应用程序、自动化、聊天机器人、翻译或大量生成文章,不受控制的Token使用量可能会导致成本急剧上升。
以下是一些在不牺牲太多输出质量的情况下节省AI Token的简单方法。
1. 不要让提示词过长
一个相当常见的错误是在提示词中放入太多指令。
例如:
请写一篇关于巴厘岛的文章。
文章必须易于阅读。
使用英语。
不要太正式。
让它听起来像人类。
不要使用太难的语言。
确保游客容易理解。
使用简单的句子。
有些指令实际上可以合并。
例如:
为国际游客写一篇关于巴厘岛的轻松易读的英语旅行文章。
请求的结果保持清晰,但发送的Token数量要少得多。
简单的原则是:
提示词应该清晰,而不是冗长。
2. 限制AI回复长度
如果你只需要一个简短的答案,不要让AI生成过长的文本。
你可以添加这样的指令:
最多用150个单词回答。
或者:
只给出最终答案,不要解释。
如果AI通过API使用,这非常有用,因为AI的输出通常也计入Token。
输出越长,成本越高。
3. 不需要时不要发送整个对话
在聊天机器人应用中,Token使用量高的一个原因是将整个聊天历史始终发送回AI。
例如,对话已达到50条消息。
如果每个请求都发送全部50条消息,AI每次有新问题时都必须重新阅读所有消息。
但AI可能只需要最后5到10条消息。
解决方案是只发送:
系统指令
+
最后5条消息
+
最新的用户消息
对于更复杂的应用程序,也可以先对较早的对话进行总结。
4. 对长对话使用总结
如果AI仍然需要之前对话的上下文,你不必完整发送所有内容。
例如,之前的对话有10,000个Token。
与其重新发送所有内容,不如创建一个如下的总结:
用户正在使用Next.js和Laravel构建一个别墅预订应用程序。
当前进度:
- 身份验证已完成
- 预订API已完成
- 日历集成仍在开发中
- 用户更喜欢JavaScript而不是TypeScript
这个总结可能只使用几百个Token,但仍然为AI提供足够的上下文。
这种方法对于长对话的聊天机器人非常有效。
5. 根据任务选择模型
并非所有任务都需要最先进的AI模型。
对于简单的任务,如:
- 翻译
- 分类
- 创建元描述
- 清理文本
- 提取数据
- 确定类别
- 创建标签
- 情感分析
较小的模型通常就足够了。
更强大的模型更适合以下任务:
- 复杂分析
- 编码
- 规划
- 推理
- 阅读复杂文档
- 基于大量数据做出决策
一个好的策略是在一个应用程序中使用多个模型。
例如:
翻译 → 小模型
分类 → 小模型
文章生成 → 中模型
复杂推理 → 大模型
这样,AI成本就可以得到更好的控制。
6. 不要发送不必要的数据
例如,你希望AI创建产品描述。
不要像这样发送整个产品数据:
{
"id": 8293,
"created_at": "...",
"updated_at": "...",
"internal_code": "...",
"database_id": "...",
"name": "Villa Bumi",
"bedroom": 4,
"location": "Kerobokan",
"description": "...",
"internal_notes": "...",
"staff_id": "...",
"supplier_id": "..."
}
如果AI只需要:
{
"name": "Villa Bumi",
"bedroom": 4,
"location": "Kerobokan",
"description": "..."
}
只发送那一部分。
发送给AI的数据越干净,浪费的Token就越少。
7. 避免过大的JSON
JSON确实是应用程序与AI之间通信的便捷方式。
问题是JSON格式可能会消耗相当多的Token,因为字段名会重复。
例如:
{
"villa_name": "Villa A",
"villa_location": "Seminyak",
"villa_bedroom": 4
}
如果数据有数千行,仅字段名就会消耗大量Token。
对于大量数据,有时更简单的格式会更高效。
例如:
Villa A | Seminyak | 4BR
Villa B | Umalas | 3BR
Villa C | Canggu | 5BR
只要确保格式易于AI和你的应用程序理解即可。
8. 对大型文档使用RAG
如果你有数百篇文章或文档,请不要在用户每次提问时都发送全部内容。
使用**RAG(检索增强生成)**系统。
基本概念:
用户提问
↓
搜索相关文档
↓
提取几个重要部分
↓
将这些部分发送给AI
↓
AI生成答案
例如,你的数据库中有1,000篇文章。
用户问:
机场接送费用是多少?
系统只提取讨论机场接送的文档。
AI不需要阅读全部1,000篇文章。
除了节省Token外,这种方法通常还能让答案更相关。
9. 限制来自数据库的数据量
当AI从数据库获取数据时,同样适用。
例如,你有50,000条预订记录。
不要直接发送:
SELECT * FROM bookings;
如果问题是:
八月份有多少预订?
最好让数据库先进行筛选。
例如:
SELECT *
FROM bookings
WHERE check_in >= '2026-08-01'
AND check_in < '2026-09-01';
即使AI只需要预订数量,数据库也可以直接进行:
SELECT COUNT(*)
FROM bookings
WHERE check_in >= '2026-08-01'
AND check_in < '2026-09-01';
让数据库完成确实更适合数据库的工作。
不要把所有东西都扔给AI。
10. 不要要求AI生成已经存在的数据
例如,应用程序已经知道:
入住日期:8月10日
退房日期:8月15日
如果你只想知道住宿晚数,实际上不需要AI。
像这样的计算:
8月15日 - 8月10日 = 5晚
最好直接用代码完成。
AI应该用于真正需要语言或推理能力的任务。
简单的事情,如:
- 计算
- 筛选
- 排序
- 日期格式化
- 数据转换
- 简单验证
通常直接在应用程序中完成更便宜、更快。
11. 缓存常用的AI结果
如果经常出现相同的问题,可以考虑使用缓存。
例如,用户经常问:
入住时间是几点?
如果信息总是一样的,就没有必要每次都调用AI。
可以存储之前的结果。
概念:
用户请求
↓
检查缓存
↓
结果可用?
├── 是 → 使用旧结果
└── 否 → 请求AI → 保存到缓存
对于高流量的应用程序,缓存非常有用。
12. 不要提供太多示例
提示词中的示例确实有助于AI理解所需的格式。
但示例太多也会增加Token使用量。
例如,你有20篇文章示例。
不一定需要全部发送。
通常提供以下内容就足够了:
1到3个最佳示例
选择最能代表你期望输出风格的示例。
13. 区分必选和可选提示词
如果你有一个很大的系统提示词,请尝试重新审查每条指令。
问自己:
AI真的需要每次请求都使用这条指令吗?
如果答案是否定的,那么这条指令或许可以删除,或者只在需要时发送。
最初为3,000个Token的系统提示词,有时可以缩减到800到1,500个Token,而输出不会有重大变化。
如果应用程序处理数千个请求,这样的节省可能相当可观。
14. 监控Token使用量
不要只在月底看AI总账单。
最好记录每个请求的Token使用量。
例如:
功能:文章生成器
输入Token:1,240
输出Token:1,850
总Token:3,090
然后与其他功能进行比较:
翻译器
平均:850个Token
文章生成器
平均:3,500个Token
客户支持
平均:6,200个Token
从中你可以看出哪个功能使用的Token最多。
15. 计算每次请求的成本
对于商业应用程序,一个重要的数字是每次请求的成本。
例如:
1个请求 = 20印尼盾
如果有:
每天100个请求
那就意味着大约:
每天2,000印尼盾
但如果有:
每天100,000个请求
成本就变成:
每天2,000,000印尼盾
这就是为什么当应用程序开始拥有大量用户时,小的优化也能产生巨大的影响。
最有效的策略组合
如果你想更有效地使用Token,可以使用这样的流程:
用户请求
↓
能否不使用AI完成?
↓
能 → 用应用程序处理
↓
不能
↓
只取相关数据
↓
使用能完成任务的最便宜模型
↓
限制输出长度
↓
如果可能,将结果保存到缓存
有了这样的系统,AI只在真正需要时才会被使用。
结论
节省Token并不意味着让AI变笨,也不意味着让提示词尽可能短。
需要做的是删除对最终结果没有价值的信息。
一些最有效的优化包括:
- 让提示词更简洁
- 限制输出长度
- 不发送整个聊天历史
- 总结旧对话
- 根据任务选择模型
- 只发送必要的数据
- 对大型文档使用RAG
- 在数据库中进行筛选
- 对简单任务使用代码
- 使用缓存
- 监控每次请求的成本
如果大规模使用AI,每个请求只节省几百个Token也能带来可观的节省。
底线是:不要用AI去处理AI实际上不需要阅读的数据。
作者
Wilan
巴厘岛Tekno的常驻撰稿人,积极分享技术、编程和软件工程领域的知识。