装完 bl 我对着一百多个模型发呆,后来靠五条命令把家底摸清了
最近在装阿里云百炼的命令行工具。CLI 就是命令行工具的意思:不开网页,在终端里敲一行字让平台干活,百炼那个叫 bl。
装本身没什么可说的,一条 npm 命令的事(安装页在这)。装完我卡住了:Key 领了,--help 翻了两页,模型目录里一百多个家族,不知道从哪个下手,也不知道自己那个 Key 到底通没通。就这么对着终端发了一会儿呆。
后来我把这一小时拆成四个问题:我的凭证配对了没有、我要的模型叫什么名字、能直接跑的代码长什么样、这么多模型我该选哪个。四个问题各有一条命令能回答,其中三条连 Key 都不用。下面按我当时问的顺序记,顺带把踩到的坑写清楚。输出都是 2026-10-12 我在自己电脑上敲出来的,bl 2.1.0;会变的读数我都带了日期,别抄我的快照。

一、我配的 Key,可能不在生效的那一档上
第一条命令不花钱、也不联网鉴权,纯看本地配置:
bl auth status
我的输出(Key 自带掩码,可以直接截图贴给别人,不用手工打码):
Config: image
Config file: /Users/chenxiaoru/.bailian/config.json
Authentication Status:
API key (model): env sk-4...8c10
Console gateway: config 1d1b...32e1 (cn-beijing, domestic)
OpenAPI (AK/SK): not configured (run bl auth login --open-api)
第一行 Config: image 我一开始没在意,后来发现它才是关键:这是当前生效的配置档名字。配置档(profile)就是多套配置并存,我这边有 default、image、token-plan 三个,bl config list 能看清单,带星号的是当前生效的那个。
新手最容易踩的坑就是"我明明配了 Key 怎么不生效"。我第一反应总是去怀疑 Key 本身,方向就错了:多半是生效档不是你配的那档。
每条凭证后面还跟着来源:env 表示读自环境变量,config 表示读自配置文件,not configured 表示没配。三种凭证可以共存,这条命令逐条报,不混在一起,看一眼就知道该去哪儿改。
调模型用的是 API key (model) 那一条,也就是程序调用平台时用的那串密钥,在密钥管理页签领,领完设进环境变量或写进配置文件都行。
再看一眼生效配置的全貌:
bl config show
它把当前档摊平成一张表:base_url(请求发往哪个地址)、timeout、output,甚至还有 watermark: true 这种"我以为没设、其实有默认值"的项。我特意把 base_url 抄了下来,因为下一节的坑跟它有关。
二、搜索返回 0 条,不是我没配好
模型目录靠翻是翻不动的,用搜索:
bl model search --keyword 图像 --limit 10
关键词会去匹配模型 ID、中文名、能力码和描述,按相关度排序返回。还能加过滤器缩小范围,比如"输入是文字、输出也是文字、能做文本生成":
bl model search --keyword 客服 --input-modality Text --output-modality Text --capability TG --limit 5
我在这里白折腾了几分钟。当时想先看看全量长什么样,就把关键词留空敲了一次:
bl model search --keyword ""
返回 total: 0。我以为是自己哪里没配好,把上面那些过滤器全加上,还是 0。后来才明白这条命令是"搜",不是"浏览",必须给一个非空关键词。第一次敲的人看到空结果很容易怀疑人生,其实只是没给词。
想翻全量目录是另一条命令 bl model list 的活,这篇不展开。两条分工不同,别混用。
还有一次空结果真不是我的问题:已经下线并从目录移除的模型,搜索也搜不到。我拿 10 月 10 号那批下线的 qwen3-max 试,加不加"包含已下线"开关都是 0 条,它已经从目录里拿掉了。所以"搜不到"有时候是模型不在了。

三、样例代码里的地址是个占位符
知道模型名字之后,别去网上抄代码,bl 自己会给你一份:
bl model code --model qwen3.8-flash
默认给的是 Python + OpenAI 兼容写法(一种通用的接口约定,多数语言的客户端库都认)的完整样例,连流式读取的循环都写好了。深度思考模型还会自动带上开启思考的参数。这条命令也不用 Key,我觉得是这一小时里最省事的一条。
坑在样例里的地址上:
https://[workspace-id].cn-beijing.maas.aliyuncs.com/compatible-mode/v1
方括号那一截是要你自己替换的模板,不是上一节在 config show 里看到的真实地址。我当时整段抄进去,报了个连接错误,回头对照才发现两处地址根本不是一回事。要么把占位符换成你自己的端点,要么干脆删掉 base_url 这一行,让 SDK(平台官方给的调用库)走环境变量里的配置。
想要别的语言或别的接口风格,加参数:--sdk dashscope 换官方库写法,--api responses 换 Responses 接口。不知道支持哪些语言?我用了个笨办法,故意传错一次:
bl model code --model qwen3.8-flash --lang rust
报错信息会把整张语言矩阵打印给你:openai 写法支持 node、curl、python,dashscope 写法支持 curl、python、java。比翻文档快。
四、选模型那条,同一段话问两次不一样
最后一个问题最主观:一百多个模型,我这个需求该用哪个。bl 有一条"用大白话问"的命令:
bl advisor recommend --message "我想做一个中文客服机器人,要能读用户传来的截图,回复要快、成本要低"
这条要 Key(它背后真的在调模型做意图分析),但只调一次、量很小。它返回两块:一块是它对你那句话的理解,一块是排名候选。
我用同一段话问了两次,结果不一样:
| 第一次 | 第二次 | |
|---|---|---|
| 它理解成的能力需求 | 看图 + 文本生成 | 只写了文本生成 |
| 它理解成的预算档 | 低预算、成本优先 | 中等预算、均衡 |
| 排名第一 | 一个 OCR 专精模型(读图转文字) | 一个机器翻译模型 |
OCR 是读图转文字的意思。第一次它把"读截图"解析成了看图能力,第一名给了一个读图转文字的模型;第二次看图能力从需求里消失了,第一名变成一个翻译模型。两次的第一名都不是"能读图的中文对话模型"。
所以我现在的习惯是别闭眼抄第一名。真正稳定、值得读的是返回里的理解块:它把你那句大白话翻译成四样东西,输入模态(文字还是图片)、输出模态、能力码、预算档。拿这四样回到第二节的搜索命令当过滤条件,比直接信排名可靠得多。排名是参考,理解块是需求说明书。
还有一条我提前说:它给的推荐理由原文里带单价数字。这篇按惯例不转录任何单价,价格会变,抄进文章就是错的。你自己跑的时候看到理由里的金额,以控制台价格页为准。

五、记下来的清单,和两件今天查不了的事
把上面串起来,装完之后的第一小时可以这么过:
bl auth status看三条凭证各自从哪来、生效档是哪个bl config list确认带星号的档是你配了 Key 的那个bl config show记下真实的base_urlbl model search --keyword <你的场景词>找模型名;记住不带词会返回空bl model code --model <名字>拿样例;把占位符地址换掉- 拿不准选型就
bl advisor recommend --message <大白话>,读理解块不读第一名
两件如实说的事。用量和额度今天在我这台机器上查不了,那几条命令走控制台会话,我的会话过期了,跑出来是登录提示。想知道自己剩多少额度,直接去控制台的额度页看,别信任何文章里的数字,包括这篇。另一件是跑通第一句不在这篇里,拿到样例代码之后怎么设环境变量、怎么发出第一次调用,是另一篇《第一次调用大模型,卡住我的不是代码》的事。这篇解决的是"跑通之前先搞清楚家底"。
想自己试一遍
六条里前五条都不用 Key,装完就能敲。往下走的话,API Key 在密钥管理页签创建;想先看看平台长什么样,百炼首页在这。
会变的三样:模型目录、选型命令的排名(同一段话问两次就不同)、控制台额度。前两样重跑一遍就有当天读数,额度去控制台看。

浙公网安备 33010602011771号