给 AI 应用装一个“Token 电表“:用聚合 API 做成本可观测

结论先行

Token 是 AI 应用的"电费"——不计量,成本就会悄悄失控。很多团队上线 AI 功能后才发现账单看不懂:到底是哪条业务线、哪个模型、哪类请求在烧钱?聚合 API 的好处是:所有模型走同一个网关,usage 返回格式统一,你只需包装一次,就能给全公司装上一个"Token 电表"。

一、为什么要"计量"

  • 不计量:只知道月账单总额,定位不到大头
  • 计量后:能按 模型 / 业务线 / 用户 / 日期 分摊成本,异常一眼可见

每次 chat 调用,返回里都带着 usageprompt_tokenscompletion_tokenstotal_tokens。这就是你的"电表读数"。

二、最小计量方案

思路:写一个包装函数,每次调用后把 usage + 元数据落库(SQLite 即可),再写个聚合查询出报表。

三、代码

1)包装调用 + 落库

import sqlite3, time
from openai import OpenAI

client = OpenAI(
    base_url="https://api.tokenportal.ai/v1",  # 控制台获取的网关地址
    api_key="YOUR_TOKENPORTAL_KEY")            # 控制台获取的 Key
con = sqlite3.connect("token_meter.db")
con.execute("""CREATE TABLE IF NOT EXISTS usage(
  ts REAL, model TEXT, biz TEXT,
  prompt INTEGER, completion INTEGER, total INTEGER)""")

def chat(model, messages, biz="default"):
    r = client.chat.completions.create(model=model, messages=messages)
    u = r.usage
    con.execute("INSERT INTO usage VALUES(?,?,?,?,?,?)",
                (time.time(), model, biz,
                 u.prompt_tokens, u.completion_tokens, u.total_tokens))
    con.commit()
    return r.choices[0].message.content

2)出报表(按模型汇总)

def report():
    for row in con.execute(
        "SELECT model, SUM(prompt), SUM(completion), SUM(total) "
        "FROM usage GROUP BY model"):
        print(row)

跑几天,你就能看到哪个模型吃掉了最多 Token。

四、把 Token 换算成钱

不同模型单价不同。以 TokenPortal 公开的 DeepSeek 价格(每百万 tokens)为例:

  • DeepSeek V4 Flash:输入 $0.22 / 输出 $0.66 / 缓存 $0.007
  • DeepSeek V4 Pro 高性价比档:输入 $0.66 / 输出 $1.98

(价格随官方调整,最终以控制台价格表为准)把单价表配进报表,就能直接算出"这条业务线昨天花了多少美元"。

五、进阶

  • 异常告警:某模型单日 Token 突增 N 倍就报警
  • 业务线分摊biz 字段按接口 / 客户打标,月底分摊到部门
  • 提示词瘦身:监控平均 prompt_tokens,过长就优化系统提示

把这些接上,你的 AI 成本就从"黑盒"变成"可读的账单"。

想用一个 Key 拿到统一 usage、跨模型统一计量,来我主页查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值