向Chroma向量库添加文档时遭遇认证错误求助
解决向Chroma向量库添加文档时的OpenAI认证错误
按照教程使用renumics-spotlight工具做RAG数据可视化,已通过%env OPENAI_API_KEY="sk-proj-*****"步骤设置OpenAI API密钥,但运行以下向Chroma向量库添加文档的代码时,持续出现认证错误:
import hashlib import json from langchain_core.documents import Document def stable_hash(doc: Document) -> str: """ Stable hash document based on its metadata. """ return hashlib.sha1(json.dumps(doc.metadata, sort_keys=True).encode()).hexdigest() split_ids = list(map(stable_hash, splits)) docs_vectorstore.add_documents(splits, ids=split_ids) docs_vectorstore.persist()
错误信息翻译
认证错误:提供的API密钥无效。你可在OpenAI平台的API密钥页面获取有效密钥。请求返回401状态码,表明服务器无法识别你的身份凭证,验证失败。
解决方案
- 修正API密钥设置方式:Jupyter中使用
%env命令时,无需给密钥加引号,改为%env OPENAI_API_KEY=sk-proj-*****,避免引号被当作密钥的一部分导致验证失败。 - 验证密钥有效性:登录OpenAI平台,确认该API密钥未被禁用、额度未耗尽,且拥有调用Embeddings模型的权限(Chroma生成向量依赖OpenAI Embeddings)。
- 检查环境变量加载情况:在代码开头添加以下代码,确认环境变量已正确加载:
输出应与你设置的密钥完全一致,无截断、空格或多余字符。import os print(os.getenv("OPENAI_API_KEY")) - 确认Embeddings模型配置:如果使用LangChain的
OpenAIEmbeddings类,确保初始化时未手动传入错误密钥,该类默认会读取OPENAI_API_KEY环境变量,示例正确初始化代码:from langchain_openai import OpenAIEmbeddings embeddings = OpenAIEmbeddings() - 排查网络与代理问题:若在国内环境,需配置可访问OpenAI API的代理,在代码中添加代理环境变量:
import os os.environ["HTTP_PROXY"] = "http://你的代理地址:端口" os.environ["HTTPS_PROXY"] = "http://你的代理地址:端口"
内容的提问来源于stack exchange,提问作者demouser123
相关产品推荐
相关产品推荐

