第一次调大模型踩的三个坑:地域、只显示一次的 Key、互相打架的教程
起因
前阵子组里来了个实习生,接到一个要用大模型的小需求。我本来以为这事半天就能起来,结果他折腾了一下午,过来找我时还停在鉴权报错上。
我让他把看过的教程都翻出来给我看,问题一下就清楚了:不是他笨,是三篇教程互相打架。他不知道该信哪一篇。
后来我把自己的路子整理给他,他从领 Key 到第一次调用成功用了 11 分钟。趁着记忆还新,把这一路上的三个坑记下来,给同样第一次上手的人省点时间。文中命令都在我本机 bl 1.27.0 上实跑过,输出是原样贴的。

坑一:地域选错,不报错,直接开始计费
这是三个坑里唯一真金白银的一个,也是我当年自己踩过的。
阿里云百炼的新账号有免费额度,但这份额度只在华北2(北京)地域发放,而 API Key 是与地域绑定的。你在别的地域创建了一把 Key,拿它去调用,服务端不会拦你,也不会给你任何提示——它只是不认这份免费额度,然后按量计费。
静默计费是最难自查的一种支出。你的命令跑得欢,输出一切正常,直到某天对账才看到一笔不明支出。我当年的反应是怀疑工具在偷偷重试,翻了半天日志,其实根本不是。
所以领 Key 这一步我现在的习惯是:直接从带地域上下文的入口进,控制台密钥管理页这个链接里就带着 cn-beijing,不用自己在页面上找地域切换的地方。
顺带把免费额度的规则抄一遍,省得别人再去翻文档:
- 有效期 90 天,从开通百炼或模型发布之日(取较晚者)起算
- 每个模型独立一份(通常 100 万 Token),模型之间不互通
- 只有华北2(北京)地域有
- 过期不补发,不用也在倒计时
- 用完之后:已实名认证的账号自动转按量付费,未实名认证的账号用完即停
- 控制台有个"免费额度用完即停"开关,打开之后额度耗尽会停止响应并返回 HTTP 403
那个开关我挺建议新号打开的。反正练手阶段也不指望它跑生产,用 403 兜住比盯着账单靠谱。至于自己账号还剩多少、哪天到期,以控制台额度页显示为准——命令行侧的 bl usage free --all 要控制台登录态,我本机这次登录态是过期的,它直接报错退出而不是给我一份旧数据,这个行为我反而觉得挺好。
坑二:Key 只在创建时完整显示一次
这个坑很朴素,但踩中的人非常多,我实习生就踩了。
创建 API Key 之后,明文只在那一次完整展示。页面一关、一刷新,就再也拿不到了。很多人的操作顺序是:创建 → 关掉页面去装工具 → 回来发现要填 Key → 页面上只剩个打了码的列表 → 懵。
然后就开始各种奇怪的操作:凭记忆补几位、去翻浏览器历史、去翻剪贴板记录。都不如直接重建一把。
我现在的做法是创建完之后先粘到一个稳妥的地方再去干别的——密码管理器,或者团队的密钥设施。别贴进 IM 群,别 commit 进仓库,别写在 README 里。这条对团队来说应该写进规范,新人第一次接触云凭据,是没有"泄露了会怎样"这个概念的。
坑三:三篇教程的命令互相打架
回到实习生卡了一下午的那个真正原因。
他看的教程 A 让他把 Key 填进某个环境变量;教程 B 让他改一个配置文件,字段名和 A 完全对不上;教程 C 给的命令在他机器上根本不存在——那篇写的是另一个工具的命令行。三篇都是"保姆级教程",三篇都写得很自信,没有一篇告诉你它对应的是哪个工具、哪个版本。
命令行工具这东西,命令签名是跟版本走的。不同工具之间更是毫无关系。看教程不核对版本和工具名,等于把三张不同城市的地铁图叠在一起找路。
我给他的是这条,一共四步,每步都能自己验证:
第一步:装 CLI
npm install -g bailian-cli
装完自己核一下版本,别信教程里写的数字:
bl --version
我本机今天是 bl 1.27.0。版本号跟本文不一样没关系,下面几条命令的参数签名是一致的。如果提示找不到 npm,说明机器上没有 Node.js,去装个 LTS 版本再回来,两分钟的事。
第二步:第一条命令
bl text chat --message "用一句话介绍你自己"
跑的时候会提示输入 API Key。想省事可以先 bl auth login --api-key sk-你的key 存起来,后面就不用每次都贴了。
我的实测输出:
我是通义千问,由阿里巴巴集团自主研发的大语言模型,能陪你聊天、解答问题、写文案、编代码,还能帮你分析和处理各种复杂任务。

到这儿"调用大模型"这件事就已经完成了。没有 SDK,没有几十行样板代码,一条命令。我实习生当时"哦"了一声,那个反应挺有意思——他之前以为这事至少要写个 Python 脚本。
第三步:换个便宜档再问一次
bl text chat --model qwen3.8-flash --message "北京今天适合出门吗?用两句话回答"
实测回答:
我无法获取北京今天的实时天气或空气质量,不能准确判断是否适合出门。
若晴暖且空气良好就适合外出,若遇到大风、降水或雾霾,则建议减少户外停留或做好防护。
我挺喜欢这个回答的。它手里没有实时天气数据,就直说没有,然后给了个条件式的建议。这是我用来快速判断一个模型老不老实的土办法:问一个它明显不可能知道的事。会瞎编的模型在这种问题上会直接告诉你"今天晴,适合出门",这种模型放进正经业务里是要出事的。
日常问答、草稿、摘要这类活交给 flash 档,复杂推理和代码再切回默认档。同一个 Key、同一条命令,只换个参数,切档成本基本为零。
第四步:看看这一次花了多少
新手对成本没概念,是因为默认输出里压根没这个信息。加个参数就有了:
bl text chat --message "用一句话回答:1+1等于几?" --output json
输出里有一段 usage,我本机原样:
{
"prompt_tokens": 71,
"completion_tokens": 49,
"total_tokens": 120
}
prompt_tokens 是你问的话折成的 token,completion_tokens 是模型回答折成的 token。一次一句话的问答大约一百多个 token,对照模型详情页的单价自己就能乘出来——我这次问 1+1,成本在小数点后四位。
这一步是我特意加进路线里的。第一次调用就把成本口径建立起来,后面做选型、做预算都有基准;等跑了一周再回头看账单,就是一笔糊涂账了。
几句感受
三个坑里,地域那个是花钱的,Key 那个是费时间的,教程打架那个是最磨人的——因为它会让人怀疑自己是不是不适合干这行。我实习生那一下午的心理状态我见过太多次了。
所以这篇的意义不在于四步命令有多难,而在于每一步都能自己验证:版本用 bl --version 验,鉴权用一条最短的 bl text chat 验,成本用 --output json 的 usage 验。凡是能自己验的事,就不用去信教程。
跑通之后想玩图像、语音、视频,都是同一个 CLI 里的其它命令组,路子一模一样:看 --help、跑一条、看输出。
工具的安装说明和命令文档在阿里云百炼 CLI(bl),Key 和额度的管理入口在控制台密钥管理页。
第一次调用跑通的那一刻,大模型就从新闻里的一个词,变成了你终端里的一条命令。

浙公网安备 33010602011771号