首页
/ LangBot项目中使用Ollama部署本地模型报错"无效的api-key"问题解析

LangBot项目中使用Ollama部署本地模型报错"无效的api-key"问题解析

2025-05-22 00:36:36作者:余洋婵Anita

在使用LangBot项目对接本地Ollama服务时,部分开发者会遇到"无效的api-key"的错误提示,即使本地部署的模型并不需要API密钥。这个问题通常是由于配置不当引起的,下面将详细分析原因并提供解决方案。

问题现象

当开发者按照常规流程配置LangBot与本地Ollama服务对接时,系统会返回以下错误信息:

模型请求失败: 无效的api-key: Error code: 401
{
    'error': {
        'message': 'Authentication Fails (no such user)',
        'type': 'authentication_error',
        'param': None,
        'code': 'invalid_request_error'
    }
}

根本原因分析

这个问题的产生通常有两个主要原因:

  1. 模型名称配置错误:在provider.json文件中指定的模型名称与Ollama实际部署的模型名称不匹配,或者没有正确关联到ollama-chat请求器。

  2. 请求器类型不匹配:在llm-models.json配置文件中,对应模型的requester字段没有正确设置为"ollama-chat",导致系统尝试使用错误的API方式进行调用。

详细解决方案

第一步:验证Ollama服务

首先确保Ollama服务已正确启动并加载了目标模型。可以通过以下命令测试:

curl http://localhost:11434/api/generate -d '{
    "model": "deepseek-r1:70b",
    "prompt": "你好"
}'

如果服务正常,应该能收到模型的响应。

第二步:检查llm-models.json配置

在LangBot的配置目录中找到llm-models.json文件,确认对应模型的配置包含以下关键字段:

{
    "deepseek-chat": {
        "requester": "ollama-chat",
        "name": "DeepSeek Chat",
        "description": "DeepSeek模型通过Ollama部署"
    }
}

特别注意"requester"必须设置为"ollama-chat"。

第三步:核对provider.json设置

在provider.json中,确保模型名称与llm-models.json中的定义完全一致:

{
    "model": "deepseek-chat",
    "apikey": "",
    "params": {}
}

本地部署时apikey应保持为空。

第四步:验证Ollama连接参数

在LangBot的大模型请求器设置中,确认Ollama的API URL指向正确的本地地址:

API URL: http://127.0.0.1:11434
API请求超时: 600

补充说明

  1. 模型命名规范:Ollama部署的模型名称(如deepseek-r1:70b)与LangBot中定义的模型名称(如deepseek-chat)是两个概念,后者是在llm-models.json中定义的标识符。

  2. 请求器工作原理:ollama-chat请求器是专门为Ollama本地部署设计的,它会忽略apikey字段,直接通过HTTP与本地Ollama服务通信。

  3. 多模型管理:如果部署了多个模型,需要在llm-models.json中为每个模型创建单独的配置项,并确保requester均为"ollama-chat"。

通过以上步骤检查和修正配置后,LangBot应该能够正常与本地Ollama服务通信,不再出现"无效的api-key"错误提示。如果问题仍然存在,建议检查Ollama服务日志和LangBot的调试日志,获取更详细的错误信息。

登录后查看全文
热门项目推荐