阅读时长:5分钟 | 适合刚接触API的小白
先说我经历了什么。
上周充了10块钱的DeepSeek API额度,想着试试水。
第一句:“今天天气怎么样” —— 扣了钱。
第二句:“帮我写个爬虫” —— 又扣了钱。
第三句:“详细说说” —— 好家伙,直接去了快一毛。
我寻思我也没让它写论文啊,怎么就没了?
去翻官方文档,满屏的Token、Prompt Tokens、Completion Tokens,越看越晕。
后来我琢磨明白了。其实就是个菜市场的事。你听我讲完,比看文档管用。
Token是啥?你就当成菜市场的"克重"
你去菜市场买西红柿。
老板不按"个"卖,因为大的小的不一样。也不按"堆"卖,因为堆多堆少说不清。老板怎么卖?上秤称,按克重算钱。
大模型也是这样。
你输入的任何文字——中文、英文、数字、标点——都会被AI切成一小块一小块。每一小块,就是1个Token。
| 你说的话 | 大概几个Token |
|---|---|
| “你好” | 2个左右 |
| “今天天气不错” | 6个左右 |
| “请帮我写一份关于人工智能的调研报告” | 15个左右 |
所以你看,Token不是字数。中文里一个字大概1~2个Token,英文一个单词可能1个Token,也可能被切成几个字母。说中文比说英文费钱,因为汉字信息密度大,切得碎。
记住一句话:你说的每句话,AI都在心里给你称重。
一个很多新手都不知道的"坑"
很多人以为:我提问花了Token,AI回答的部分应该免费吧?
想多了。
AI回答问题的时候,它内部也在疯狂运算、组织语言、输出文字。这部分算力不是凭空来的,一样要收费。
官方账单里分两项:
- Prompt Tokens:你提问消耗的
- Completion Tokens:AI回答消耗的
两个加起来,才是你这次调用的总花费。
你调用API后会返回这么一串东西:
{"usage":{"prompt_tokens":16,"completion_tokens":19,"total_tokens":35}}看不懂没关系,下面代码跑一遍你就全明白了。
跑个代码看看,到底花了多少钱
下面的Python代码,能让你每次调用都清清楚楚看到扣费明细。复制就能用,把API Key换成你自己的。
importosfromopenaiimportOpenAI# 去 https://platform.deepseek.com/api_keys 复制你的KeyDEEPSEEK_API_KEY="请替换为你的DeepSeek API Key"defmain():try:client=OpenAI(api_key=DEEPSEEK_API_KEY,base_url="https://api.deepseek.com/v1")print("正在调用 DeepSeek API,稍等...\n")response=client.chat.completions.create(model="deepseek-chat",messages=[{"role":"system","content":"你是一个说话简洁的助手"},{"role":"user","content":"请用一句话介绍什么是人工智能"}],max_tokens=50# 限制它别写太长,省钱的关键)print("AI回答:",response.choices[0].message.content)print("\n"+"-"*30)print("本次账单明细")print("-"*30)prompt_tokens=response.usage.prompt_tokens completion_tokens=response.usage.completion_tokens total_tokens=response.usage.total_tokensprint(f"提问消耗:{prompt_tokens}个Token")print(f"回答消耗:{completion_tokens}个Token")print(f"总计消耗:{total_tokens}个Token")# 按DeepSeek官方价格算:输入0.5元/1M Tokens,输出2元/1M Tokensinput_cost=(prompt_tokens/1_000_000)*0.5output_cost=(completion_tokens/1_000_000)*2total_cost=input_cost+output_costprint("\n"+"-"*30)print("费用估算")print("-"*30)print(f"本次总花费:{total_cost:.8f}元")iftotal_cost<0.001:print("\n不到1厘钱,基本等于白嫖")exceptExceptionase:print(f"报错了:{e}")print("检查三件事:Key对不对、网络通不通、余额够不够")if__name__=="__main__":main()我跑的结果长这样:
(图1:实际调用返回的Token消耗明细)
看到了吧,问一句"什么是人工智能",回答也就一句话,总共35个Token,花了不到1厘钱。
但你要是让它写个500字的小作文,那可就奔着好几分钱去了。积少成多,10块钱问几百次也就没了。
三个帮你省钱的小习惯
我试出来的,照做能省不少。
1. 系统提示词别写废话
❌ 错误示范:“请你务必以极其专业、详细、全面的语气,非常认真地回答我的问题…”
✅ 正确写法:“专业回答”
少一个字,省一分钱。没骗你。
2. 一定要设置 max_tokens
我代码里写了 max_tokens=50,这玩意儿是保命符。如果你不设上限,AI能给你写800字,余额直接腰斩。
每次调用前想一下:我要它回答多长?然后设个合理上限。
3. 多轮对话记得清历史
如果你在做一个连续对话的机器人,每次调用都把全部聊天记录传进去,Token会指数级暴涨。
解决方案:定时总结历史,或者只保留最近几轮。别一股脑全塞进去。
说点实在的
大模型API这东西,听着高深,说白了就是花钱买算力。把Token理解成"称重计费",以后再去看任何大模型的价目表,一眼就能看明白。
我刚接触的时候也踩过不少坑,后面会陆续写《DeepSeek踩坑日记》系列,把遇到的问题和解决方案都记下来。有兴趣的可以点个关注。
如果你也在调接口遇到问题,评论区贴代码,我看到就回。
觉得有用的话,点个赞和收藏,下一篇写Spring Boot接入DeepSeek的三个大坑。