硅基流动API密钥怎么申请

接入与开发

讲清硅基流动 API 密钥的申请与配置流程,并给出调用 DeepSeek 失败、特别是 401 报错时的排查顺序。

很多人卡在两步:一是密钥到底从哪儿建、建完该填到哪;二是明明密钥复制对了,调 DeepSeek 却直接甩一个 401。这篇不讲协议原理,只按顺序带你走一遍申请和验证流程,再给一份从密钥到请求体的排查清单,让你能自己定位问题出在哪一层。

很多人卡在两步:一是密钥到底从哪儿建、建完该填到哪;二是明明密钥复制对了,调 DeepSeek 却直接甩一个 401。这篇不讲协议原理,只按顺序带你走一遍申请和验证流程,再给一份从密钥到请求体的排查清单,让你能自己定位问题出在哪一层。

先说结论:401 几乎永远不是模型的问题,而是「身份没被认出来」。所以排查的重点不在 DeepSeek 有多强、参数怎么调,而在密钥本身、密钥放的位置、以及请求到底发去了哪个地址。把这三件事按顺序过一遍,绝大多数 401 都能自己收掉。

密钥申请:从注册到拿到可用 Key 的完整动作

  1. 注册并完成账号校验先在平台完成注册,按提示做手机或实名类的必要校验。没走完这一步,控制台里有些入口是灰的,后面容易误以为「找不到建密钥的地方」。
  2. 进控制台新建一条密钥找到 API 密钥或访问令牌入口,点新建。新建后立刻复制保存,大多数平台只在创建那一下完整显示,你关掉弹窗就只剩掩码,想再拿回来只能重建一条。
  3. 按用途命名,别共用一条本地调试、测试环境、线上服务各建一条,名字里带上用途。好处是某条泄漏或要下线时,只删那一条,不至于让所有项目一起换密钥。
  4. 确认账户处于可用状态建完先看账户是否完成必要校验、是否有可用余额或赠送额度。这一步没做,后面遇到的可能根本不是 401 而是别的报错,排查方向会被带偏。

把 Key 放对位置:环境变量、请求头与常见写错点

密钥建好了,接下来是「放哪儿」。放错位置导致的 401,比密钥本身失效还常见,而且它不会在控制台里留下任何痕迹。建议按下面的顺序落位。

环境变量
推荐做法。本地用 .env、线上用平台的密钥管理功能,代码里读取变量,别把明文提交进 Git。
Authorization 请求头
格式是 Bearer 加一个空格再接密钥。漏掉 Bearer、多一个引号、复制时带换行或首尾空格,服务端都认不出来。
base_url 与 Key 配套
换平台或换渠道时两者要一起改。只改一半,是最典型的「改完就报错」。
重启进程
很多框架在启动时只读一次环境变量,改完文件不重启不会生效。
写错的样子表现怎么修
漏了 Bearer 前缀401补上前缀和一个空格
密钥前后有空格或换行401重新粘贴或做长度校验
Key 与 base_url 不配套401 或直接连不上两者确认属于同一个来源
改了 .env 没重启还是旧报错重启客户端或服务进程
密钥被删或被重置持续 401回控制台看这条密钥是否还在

DeepSeek 调不通时,按这个顺序查 401

先把报错原文看清楚:401 表示身份没通过,也就是密钥无效、缺失、格式错或被停用;403 才偏向权限或地区限制。这两者混在一起想,排查会走偏。确认是 401 之后,按下面的顺序走。

  1. 用最小请求绕开自己的代码用 curl 或平台自带的调试面板,发一条最简单的请求。最小请求都过不了,问题在密钥或账号;最小请求能过,问题就在你的封装层。
  2. 核对密钥归属与请求地址确认这条 Key 是当前这个平台发的,并且请求确实发往该平台。拿一个来源的 Key 去请求另一个来源的地址,必然 401。
  3. 回控制台看密钥状态是否被删除、被重置,账户是否欠费或触发风控导致密钥被暂时禁用。这个信息只在控制台里,不会写进报错信息。
  4. 排除隐藏字符从网页复制密钥常带空格或换行。重新粘一遍,或比对长度,把这类低级问题先排掉。
# 最小验证:换成你自己的地址与密钥,只发一条最短请求\ncurl -s -X POST <你的接口地址> \\\n  -H \"Authorization: Bearer $API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"<模型名>\",\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}],\"max_tokens\":8}'

这条命令的作用是砍掉框架和封装,直接看服务端认不认你的密钥。它过了,就去查你自己代码里读变量的那一层;它没过,就回到控制台查密钥和账户。具体支持哪些模型名、当前有哪些可用渠道,去站内模型与价格资料页核对当时的数字,别照抄旧例子。

什么情况下这套排查不适用

  • 报错码是 429、502、504 或超时类:说明身份已经过了,问题在限流、并发或网关,按限流和超时那两条线查,别回头翻密钥。
  • 走的是别人搭的中转:密钥由中转站发,申请流程和排查归属都以中转站为准,别拿官方控制台的状态去解释。
  • 项目里有密钥轮换或网关转发:401 可能来自网关而不是模型侧,要看网关日志里最终带出去的请求头,而不是只看应用侧配置。
  • 密钥是多人共享或用脚本自动生成的:先确认实际发出去的到底是哪一条,共享场景下很容易用到已被替换的旧值。

如果你不确定自己用的中转站靠不靠谱、密钥是不是它自己发的,可以先去站内的中转站可信度检测页做一次体检,再决定要不要把生产流量切过去。工具目录里也有对连通性和响应速度的辅助检测,适合在换渠道前后各跑一次做对照。

下一步把连通性和渠道状态一起验一遍,比只看报错码更快定位问题;顺手核对当时的模型与渠道数字,避免照抄过期信息。

常见问题

密钥申请完就能直接调 DeepSeek 吗?

通常还要确认账户有可用额度、密钥状态正常,并且你请求的地址和 Key 属于同一个平台。建议先用一条最小请求验证通过,再接进项目,否则出错时分不清是密钥问题还是代码问题。

密钥看起来完全正确,为什么还是 401?

优先排除复制时的隐藏空格和换行,然后检查请求头是不是 Bearer 加空格再加密钥。再确认密钥没被删除或重置、账户没欠费,以及 base_url 没有被改成另一个平台。多数 401 落在这几项里。

401 和 403 我要分开查吗?

要。401 是身份没通过,属于密钥本身或格式的问题;403 是身份通过了但没权限,偏向权限范围、地区或策略限制。两者排查方向不同,混着查容易绕远。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。