You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22下用LangChain的ChatOpenAI对接LM Studio遇401认证错误

解决LangChain-OpenAI对接本地LM Studio的401认证错误

可能的原因及解决方案

1. 未指定本地模型名称

ChatOpenAI默认调用OpenAI官方模型(如gpt-3.5-turbo),但本地LM Studio服务器需要明确指定已加载的模型名称。未指定模型可能导致服务器返回混淆的认证类错误信息。

修正代码:

from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
import os  # 补充缺失的os模块导入

load_dotenv()

llm = ChatOpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    base_url=os.getenv("OPENAI_API_BASE_URL"),
    temperature=0.5,
    model="你的LM Studio加载模型名称",  # 替换为实际模型名,比如mistral-7b-instruct-v0.3
)

2. LM Studio服务器配置问题

  • 确认LM Studio本地服务器已启动,端口为1234,且在服务器设置中未开启API Key强制验证(默认关闭)。若开启了验证,需确保代码中的api_key与LM Studio设置的密钥完全一致。
  • 检查LM Studio的CORS设置,确保允许本地请求访问。

3. 环境变量加载异常

  • 确保.env文件与脚本在同一目录,或使用绝对路径加载:load_dotenv("/absolute/path/to/.env")。
  • 可暂时跳过环境变量,直接硬编码参数测试,排除加载问题:
llm = ChatOpenAI(
    api_key="lm-studio",
    base_url="http://localhost:1234/v1",
    temperature=0.5,
    model="你的模型名称",
)

4. 验证基础连接(绕过LangChain)

用原生OpenAI SDK测试连接,确认问题是否出在LangChain层:

from openai import OpenAI

client = OpenAI(
    api_key="lm-studio",
    base_url="http://localhost:1234/v1"
)

# 替换为你的模型名称
response = client.chat.completions.create(
    model="mistral-7b-instruct-v0.3",
    messages=[{"role": "user", "content": "测试请求"}]
)

print(response.choices[0].message.content)

若此请求成功,说明LangChain的配置仍有问题;若失败,检查LM Studio服务器状态或端口是否正确。

5. 版本兼容调整

部分新版本的openai SDK对本地服务器的认证逻辑有变化,可尝试将api_key设为任意非空字符串(如"not-needed"),或降级openai版本至1.30.0左右测试。


内容的提问来源于stack exchange,提问作者Karol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:57:10