渔场经营模拟何时上线 公测时间预告
2026-07-24 3421458
2026-07-24 0
很多人装完 Python SDK 就不管了,要是你用的是共享电脑、或者把 LM Studio API 开放到局域网里还没开鉴权,那风险可就藏在这儿了。LM Studio 从 0.4.0 版本开始支持 API Token,不过默认是不强制校验令牌的。咱们今天的目标很明确:先在应用里打开令牌鉴权开关,再让 Python SDK 从 LM_API_TOKEN 这个环境变量里读密钥,保证源码、截图、代码版本库里都不会出现真实的令牌明文。
先给大家提个醒:要是你只是自己在本机用、只走回环地址,那默认不开鉴权确实能省点事;但只要你的服务要开放给同局域网的其他设备、多人共用,或者是长期运行的项目,一定要优先开令牌鉴权。动手之前先核对几个前提:LM Studio 版本得是 0.4.0 及以上、已经打开了 Developer 模式、Local Server 能正常跑起来,还要有一个已经装好了 lmstudio 包的 Python 环境。
怎么确认前提满足呢?你打开 Developer 页面,能看到 Server Settings、Require Authentication 和 Manage Tokens 这几个入口就行。要是找不到这些选项,先去 Settings > Developer 里把 Developer mode 打开,再核对下应用版本,别凭着旧版界面的印象瞎找按钮位置。
入口位置:打开 Developer 页面,点进 Server Settings。操作步骤:把 Require Authentication 这个开关拨到开启状态。开关旁边的 Manage Tokens 就是咱们后面管令牌要用的入口。

成功标志:Require Authentication 开关保持开着的状态,Server Settings 页面里同时能看到当前活动令牌的数量,还有 Manage Tokens 入口。踩坑提醒:要是你开了开关之后,发现 Python 不带令牌还能访问,先别急着把令牌写死在代码里凑合用——先确认你代码连的就是当前这个 LM Studio 实例,看看是不是连到别的主机或者别的服务上了,别用硬编码令牌掩盖了真实的连接问题。
入口位置:还是在 Server Settings 页面,点 Manage Tokens。操作步骤:在弹出来的 LM Studio API Tokens 窗口里先看看现有的令牌列表,再点右上角的 Create new token 新建一个。

成功标志:弹出来的窗口标题是 LM Studio API Tokens,能看到 Create new token 按钮;第一次用的话列表是空的,完全正常哈。踩坑提醒:要是点 Manage Tokens 没弹出窗口,先看看 Local Server 是不是在运行、应用版本够不够,再退出去重新进 Server Settings 试试。
入口位置:点了 Create new token 之后,会进入 Create new permission token 页面。操作步骤:先给令牌起个好认的名字,比如用项目名或者设备名都行,然后逐项选 Allow 或者 Deny。记住一个原则:只给当前 Python 项目真正需要的权限就行,看不懂的权限先选拒绝,等后面真的用到了再回来改。

成功标志:令牌名一看就知道是干啥用的,权限项和项目需求对得上,Create token 按钮能点。踩坑提醒:要是拿不准某权限要不要开,千万别图省事全选允许——先建一个最小权限的令牌,真遇到调用被拒的情况,再回令牌列表里加权限就行。
入口位置:点 Create token 之后会弹出创建成功的窗口。操作步骤:赶紧把完整的令牌存到安全的地方,比如系统密钥库、项目部署平台的 Secret 配置里,或者只在当前会话可见的环境变量里,存完就关窗口。这个完整令牌只会显示这一次,千万别截图、别往聊天框里发、更别提交到 Git 仓库里。

成功标志:回到令牌列表后,能看到你刚建的令牌名称、打了码的前缀,还有编辑和删除按钮。踩坑提醒:要是你还没存就不小心关了完整令牌的窗口,别想着从列表里能找回原令牌——直接新建一个,把项目里的配置换成新的,再把弄丢的旧令牌删掉就行。
入口位置:打开你待会儿要跑 Python 项目的那个终端会话,别开错了。macOS 或者 Linux 系统用下面这条命令:
export LM_API_TOKEN="paste-token-here"
Windows PowerShell 用这条:
$env:LM_API_TOKEN = "paste-token-here"
操作步骤:把命令里的占位内容换成你刚存的令牌,这个变量只会存在于当前终端会话,或者受保护的 Secret 配置里,不会泄露。你可以用下面这条命令检查变量有没有设置成功,它只会输出布尔值,不会把密钥打印出来:
python -c "import os; print(bool(os.getenv('LM_API_TOKEN')))"
成功标志:命令输出 True。踩坑提醒:要是输出 False,先看看你设置环境变量的终端,和跑 Python 的是不是同一个;要是你用 IDE 启动项目,得在启动 IDE 或者配置运行参数的时候就注入环境变量,绝对不能把令牌直接写进源码里。
入口位置:在项目里新建一个测试用的文件,别往里面写密钥。操作步骤:只要环境变量设置好了,SDK 会自动读取 LM_API_TOKEN,代码里完全不用出现令牌的明文:
import lmstudio as lms
model = lms.llm()
result = model.respond("Reply with OK")
print(result)
成功标志:已经加载的模型正常返回响应,代码和终端日志里都找不到令牌的影子。踩坑提醒:要是连接失败,先看看 Local Server 是不是在运行、代码连的是不是正确的实例;要是鉴权失败,就检查下环境变量里的令牌是不是有效、有没有被删掉、权限够不够;要是是模型相关的错误,就单独去查模型有没有装、能不能正常加载,别啥错都往令牌头上赖。
入口位置:只有当你同一个进程里需要用不同的客户端、或者要配不同权限的时候,才需要用显式的客户端配置。操作步骤:还是从环境变量里取令牌,再传给官方支持的 api_token 参数就行:
import os
import lmstudio as lms
lms.configure_default_client(
api_token=os.environ["LM_API_TOKEN"]
)
model = lms.llm()
print(model.respond("Reply with OK"))
要是需要隔离客户端的生命周期,也可以把同一个环境变量传给 lms.Client;异步项目就用 lms.AsyncClient,注意官方的异步鉴权示例要求 Python SDK 版本得是 1.5.0 及以上哦。
成功标志:指定的客户端能正常发请求拿到结果,退出作用域之后也不会影响其他客户端。踩坑提醒:要是默认客户端和作用域里的客户端表现不一样,就一项一项核对它们用的环境变量、连接目标和令牌权限,绝对不能为了排查问题把参数值打印到日志里,容易泄露密钥。
LM_API_TOKEN 的存在性检查返回 True,检查过程里没打印出令牌值。