本地部署的deepseek 的 api key

模型与算力

讲清本地跑的 DeepSeek 到底有没有 API key:默认为什么不需要、什么时候要自己加一层、以及调用时该拿什么当凭证。

很多人把模型下载到本机、用 Ollama 或 vLLM 起好服务,卡在第一个请求上:文档里到处写 API key,本地这套却没人给过一个。这篇不解释模型原理,只解决鉴权这一环——先判断你的部署到底处在哪种鉴权模式,再决定是直接裸调、还是自己在前端加一层令牌;最后给一份能照着做的验证顺序,避免调通之前先把时间花在找「官方 key」上。

很多人把模型下载到本机,用 Ollama 或 vLLM 把服务起好,以为万事俱备,结果卡在第一个请求上:翻遍文档到处都是 API key 的说法,本地这一套却没有任何人给过你一个。这篇不聊模型原理,只解决鉴权这一环——先判断你的部署到底处在哪种鉴权模式,再决定是直接裸调还是自己在前端加一层令牌,最后给一份能照着走的验证顺序,别在找「官方 key」这件事上白白耗掉一个下午。

核心结论先摆出来:本地跑的 DeepSeek 默认没有、也不需要 API key,你在找的那个东西不存在。会看到「要 key」,一定是你在模型前面自己加了一层东西。下面按这个逻辑往下拆。

本地没有「官方 key」,你在找的东西其实不存在

官方 key 本质是云端服务用来识别账号、扣费和限流的凭证。本地跑的时候根本没有这个账号体系,服务发不出也没必要发一个 key 出来。绝大多数本地推理服务的默认状态就是「谁连上谁能用」,这是设计取舍,不是你哪里配错了。

云端 key
绑定账号、用量与计费的凭证,离开服务商的账号体系就没有意义
本地服务
通常只监听一个端口,谁能连通这个端口谁就能调,校验的是网络可达性而不是身份
多层部署
只在你额外加了代理、网关或聚合层之后,才会出现「要凭证」的要求

判断标准很简单:看你的请求最后打到了哪。如果直连本机某个端口,基本不会有校验;如果中间隔了一个带账号或令牌概念的组件,那凭证就是那个组件自己定的,跟 DeepSeek 本身没关系。

先分清鉴权发生在哪一层,别把两件事混一起

本地部署的「连不上」和「连上了被拒绝」,往往发生在完全不同的层。把层分清楚,排查才不会乱改配置。多数人一遇到报错就去动模型参数,其实问题常常在更外层。

层做什么是否校验凭证
模型层推理框架本体,只负责算多数不校验,端口通就能调
应用层WebUI、知识库、工作流这类前端可能有自己的登录或访问口令,和模型无关
网关层反向代理、聚合服务、统一入口真正的 key 校验通常发生在这里
客户端你发请求的脚本或软件只是把凭证填进某个字段,本身不校验
  • 先确认是前端连不上,还是模型根本没起来,这两类报错长得像但原因完全不同
  • 再确认报错信息来自哪一层,网关的拒绝和模型的报错提示措辞通常不一样
  • 如果是容器部署,优先怀疑地址和端口,而不是鉴权
  • 改配置时一次只动一层,改完立刻复测,别几处一起改

必须填一个 key 时,通用的填法是什么

很多客户端沿用了 OpenAI 风格的请求格式,配置里那个 key 字段是必填的,但服务端压根不校验。这时候填一个非空的占位字符串就过去了。「必填」和「有效」是两码事,前者是客户端的表单约束,后者才是服务的校验逻辑。

  • 填非空、无空格、无特殊符号的普通字符串,部分客户端会做格式预校验,带奇怪字符会被直接拦下
  • 别填空字符串,有些库会把空值当成「未配置」再抛一次错
  • 如果客户端要求以特定前缀开头,按它的提示加前缀即可,服务端大概率不看内容
  • 真正需要确认的是字段名和取值口径,以你所连那套服务的说明为准
  • 不确定的时候,去站内的接入说明类页面核对字段写法,别照着别的工具的示例硬套

想让本机服务也有 key,自己加一层怎么做

思路是在模型服务和调用方中间放一个网关,由网关来校验令牌、记录调用方,模型服务只对网关开放,不直接对外。这样加进来的凭证是你自己定的,跟模型厂商无关。需要注意的是,这层是给「多人共用」或「暴露到局域网」准备的,一个人本地玩加它收益很低,运维成本反而更高。

  1. 先想清楚防谁是防止同事误调、还是服务要暴露给别的机器。目标不同,网关的严格程度差很多;只是自己用就别加
  2. 绑定监听地址把模型服务限制在内网或回环地址,只让网关能访问,确认从外部机器直接打模型端口打不通
  3. 给网关配令牌生成一个足够长的随机串,不要用可猜的词。配好后用同一个客户端分别请求网关地址和直连地址,验证只有前者需要带凭证
  4. 加频率限制给单来源设一个调用上限,防止某一个客户端把资源占满,具体阈值按机器性能来定,量不准就去站内的测速页面跑个基线

调不通时的排查顺序(照这个顺序走一遍)

本地部署的报错信息往往很笼统,乱试只会越改越乱。按下面的顺序从里到外走一遍,大多数问题在第二步之前就能定位。

  1. 服务是否在监听用本机命令行直接发一次请求,绕开所有客户端和前端。这一步通不了,后面全是白搭
  2. 地址和端口对不对容器部署时,本机回环地址和宿主地址经常是两回事,确认你请求的地址确实映射到了服务端口
  3. 再看鉴权确认你填凭证的那个位置是不是真正的校验方,如果服务端不校验,随便一个非空值就能过
  4. 最后才看参数模型名、上下文长度这类参数,放在最后调。前面没通之前动这些,基本是浪费时间

如果分不清「慢」和「连不上」,先去站内的实测页面量一个基线,把两类问题区分开,再决定往哪个方向查。具体数字以你当时测到的为准,别照搬别人环境里的结论。

下一步把本地部署常见的接入写法、字段口径和各层鉴权的区别整理在一起,照着核对一遍比到处搜关键词快得多。

常见问题

本地部署的 DeepSeek 必须配 API key 才能调用吗?

多数情况下不需要。你在本机起的推理服务默认不做身份校验,能连上端口就能调用。只有当你前面加了网关、代理或带账号体系的应用层时,才会出现需要凭证的环节,这时候要填的也是那一层的口令,而不是模型自带的。

客户端提示缺 API key 填不进去,随便写一个行不行?

大概率可以。不少客户端沿用了通用字段名,只校验非空,不校验内容,填一个不含空格和特殊符号的短串通常就能过。但如果你的请求最终发往的是需要付费的公网接口,占位值一定过不了,必须换成真实凭证,这点要提前分清楚。

本地服务要不要自己加 key 做保护?

看暴露范围。只在本机或纯内网自用,加的收益很小;一旦端口映射到公网或给多人共用,就建议在模型前面放一层网关做校验和限流。加之前先确认绑定的是内网地址,光加 key 而端口对外,保护效果有限。

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