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

本地Weaviate连接添加OpenAI密钥触发KeyError问题求助

本地Weaviate连接添加OpenAI密钥触发KeyError问题求助

看起来你这是踩了环境变量使用的小坑啦,我来帮你拆解问题和解决办法:

首先,你看到的KeyError: 'sk-...'是核心问题——os.environ["xxx"]是用来读取系统环境变量名的,你直接把密钥开头的sk-...填进去,系统里根本没有叫这个名字的环境变量,自然会报错。

正确的两种解决方式:

方式一:用环境变量(推荐,安全不暴露密钥)

  1. 先在Ubuntu系统里设置环境变量:

    • 临时生效(仅当前终端窗口):在终端里输入这条命令,把sk-你的真实密钥换成你自己的OpenAI密钥:
      export OPENAI_API_KEY="sk-你的真实密钥"
      
    • 永久生效(重启终端也能用):编辑~/.bashrc文件(如果你用zsh就编辑~/.zshrc),在末尾添加一行上面的export命令,保存后执行source ~/.bashrc让设置立刻生效。
  2. 修改Python代码读取环境变量:

    import weaviate.classes as wvc
    import os
    
    client = weaviate.connect_to_local(
        headers={"X-OpenAI-Api-Key": os.environ["OPENAI_API_KEY"]}
    )
    

方式二:直接在代码里填密钥(仅测试用,不推荐)

如果只是临时测试不想折腾环境变量,可以直接把密钥写到代码里,但注意不要把这个代码上传到公共仓库:

import weaviate.classes as wvc

client = weaviate.connect_to_local(
    headers={"X-OpenAI-Api-Key": "sk-你的真实密钥"}
)

额外排查点:

  • 确认Weaviate容器是否正常运行,并且开启了text2vec-openai模块——如果docker-compose.yml里没配置这个模块,即使密钥对了后续也会有功能报错,你可以检查下compose文件里的ENABLE_MODULES参数有没有包含这个模块。
  • 尽量保持Weaviate服务端和Python客户端版本匹配,最新的v4客户端用weaviate.classes是正确的,如果你之前试v3的旧语法肯定会出错,建议以官方最新文档为准。

备注:内容来源于stack exchange,提问作者Jonny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 07:19:28