如何用干净输入将 AI Token 成本降低 65%
如何用干净输入将 AI Token 成本降低 65%
如果你在用 ChatGPT 或 Claude 的 API 处理网页内容,几乎可以肯定你在为不必要的 Token 买单。导航栏、广告脚本、追踪代码、内联 CSS、不可见的元数据——这些全部会被计入 Token 并产生费用,但它们对 AI 理解页面内容毫无帮助。
本文详细拆解 Token 浪费是如何产生的,以及你可以做什么来消除它。
什么是 Token?为什么它要收费?
Token 是大语言模型处理文本的最小单位。英文中,一个 Token 大约是 4 个字符或 0.75 个单词。中文里,一个汉字通常是 1-2 个 Token。每次 API 调用都按照输入和输出的 Token 数量计费。
主流模型的定价参考(2026 年初):
- GPT-4o: 输入 $2.50/百万 Token,输出 $10/百万 Token(参见 OpenAI API 定价)
- Claude Sonnet: 输入 $3/百万 Token,输出 $15/百万 Token(参见 Anthropic Claude 定价)
- GPT-4 Turbo: 输入 $10/百万 Token,输出 $30/百万 Token
当你的输入被 HTML 垃圾撑大时,每一个多余的 Token 都在花你的钱。规模一大,这笔账会非常惊人。
原始 HTML 是怎样浪费 Token 的
以一篇典型的新闻文章为例。实际内容可能只有 800 字,大约 1,500 个 Token。但如果你把整个页面的 HTML 发送过去,实际被 Token 化的内容是这样的:
原始 HTML 源码: ~19,000 tokens
├── 导航栏/页头: 2,100 tokens
├── CSS/样式标签: 3,800 tokens
├── JavaScript 脚本: 4,200 tokens
├── 广告容器: 1,900 tokens
├── 页脚/侧边栏: 1,600 tokens
├── Schema/meta 标签: 1,200 tokens
├── 追踪脚本: 900 tokens
├── 实际内容: 1,500 tokens
└── 其他标记: 1,800 tokens
也就是说,你付费的 Token 中只有大约 8% 是有用的信息,剩下 92% 全是噪声。
真实对比:清理前后的差异
我们用一篇 1,500 字的技术博客做了测试,以下是实际 Token 数据:
| 输入方式 | Token 数量 | 费用 (GPT-4o) | 有效内容占比 | |---|---|---|---| | 原始 HTML | 17,200 | $0.0430 | ~8% | | 浏览器复制粘贴 | 4,100 | $0.0103 | ~32% | | 清洁 Markdown (Web2MD) | 1,950 | $0.0049 | ~90% |
清洁的 Markdown 版本比原始 HTML 减少了 89% 的 Token,比直接复制粘贴减少了 52%。即使是浏览器复制粘贴,也会带入隐藏的格式字符、多余空白和断裂的结构。
降低 Token 浪费的五个策略
1. 发送前剥离 HTML
永远不要直接把原始 HTML 发送给语言模型。至少在处理前移除所有 <script>、<style>、<nav> 和 <footer> 标签。一个基础的 Python 方案:
from bs4 import BeautifulSoup
def clean_html(raw_html):
soup = BeautifulSoup(raw_html, 'html.parser')
for tag in soup(['script', 'style', 'nav', 'footer', 'header']):
tag.decompose()
return soup.get_text(separator='\n', strip=True)
这能帮上忙,但输出的是缺乏结构的纯文本,丢失了标题、列表等对 AI 有价值的上下文信息。
2. 转换为 Markdown 兼顾结构与精简
Markdown 是原始文本和 HTML 之间的最佳平衡点。它遵循 CommonMark 规范定义的轻量语法,保留了文档结构(标题、列表、表格、代码块),同时极其节省 Token。语言模型天然理解 Markdown,因为训练数据中有大量这种格式的内容。
3. 使用 Web2MD 实现自动化清洁
与其自己搭建爬虫管道,不如用 Web2MD 一步到位。这个浏览器扩展从任意网页中提取主要内容,去除所有噪声,输出干净的 Markdown。它还会在粘贴前显示预估的 Token 数量,帮你提前把控成本。
4. 裁剪冗余部分
即使清理后,你可能也不需要整个页面。如果只关心论文的方法论部分,就只发送那个部分。定向提取可以在清理基础上再减少 50-80% 的 Token。
5. 批量处理与去重
处理同一网站的多个页面时,去掉重复的作者简介、相关文章列表和样板声明。合并唯一内容,必要时先做摘要。
规模化带来的成本节省
假设你的工作流每天通过 GPT-4o API 处理 500 个网页:
| 场景 | 每页 Token | 每日 Token | 月度费用 | 年度费用 | |---|---|---|---|---| | 原始 HTML | 16,000 | 8,000,000 | $600 | $7,200 | | 基础清理 | 6,000 | 3,000,000 | $225 | $2,700 | | Markdown (Web2MD) | 2,000 | 1,000,000 | $75 | $900 |
从原始 HTML 切换到清洁 Markdown,单个工作流每年可节省 $6,300,降幅达 87.5%。
即使是较小规模,每天处理 50 个页面,每年也能节省超过 $600。
API 高级用户的实用技巧
如果你在构建消费网页内容的 AI 应用,这些做法能帮你持续省钱:
- 缓存转换结果。 同一页面被多次分析时,只转换一次 Markdown 然后复用。
- 设置最大 Token 限制。 使用
max_tokens参数限制输出长度,防止费用失控。 - 发送前预估 Token。 使用 OpenAI 开源的
tiktoken库或 Web2MD 的内置计数器提前预览费用。 - 渐进式提取。 先发送摘要,AI 需要更多上下文时再发送完整内容。
- 选对模型。 不是每个任务都需要 GPT-4。简单提取任务用 GPT-4o-mini 或 Claude Haiku,成本只有几分之一。可以在 OpenAI 定价页面和 Anthropic 定价页面对比完整的模型列表,为每项任务选择最合适的模型。
你可以使用 OpenAI 开源的 tiktoken 库在调用 API 前精确计算 Token 数量:
import tiktoken
def estimate_cost(text, model="gpt-4o"):
enc = tiktoken.encoding_for_model(model)
tokens = len(enc.encode(text))
cost = tokens * 2.50 / 1_000_000
return tokens, cost
# 对比原始 vs 清洁
raw_tokens, raw_cost = estimate_cost(raw_html)
clean_tokens, clean_cost = estimate_cost(markdown_text)
print(f"节省: {(1 - clean_cost/raw_cost)*100:.0f}%")
批量优化研究工作流
对多个页面进行研究时,Token 节省会倍增。推荐的批处理工作流:
- 收集 URL — 列出所有目标页面
- 逐页转换 — 用 Web2MD 或编程方式转为 Markdown
- 去重 — 去掉同域名页面间的重复样板内容
- 智能分块 — 按章节而非任意字符数切分
- 先摘要后深入 — 减少整个会话的总 Token 消耗
这种方法通常能把每页的实际费用降低到大多数团队当前支出的 20-35%。
总结
Token 费用是 AI 工作流中最可控的成本之一。你能做出的最高影响力改变就是在输入到达 API 之前先清理它。将原始 HTML 转换为结构化 Markdown,通常能减少 65-90% 的 Token 消耗,同时不损失任何有价值的信息。
道理很简单:更干净的输入意味着更少的 Token、更低的成本,而且往往还能获得更好的 AI 输出——因为模型可以专注于实际内容,而不是在噪声中挣扎。
别再为 AI Token 多花冤枉钱了。试试 Web2MD — 将杂乱网页转为干净 Markdown,Token 成本最多降低 65%。