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

使用llama-index时遇OpenAI API Key缺失的ValueError如何解决?

问题

使用llama-index编写了从S3存储桶获取PDF文件并构建向量索引的代码,代码如下:

import boto3
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex

def retrieve_pdf_files_from_s3(bucket_name):
    s3 = boto3.client('s3',aws_access_key_id='****',aws_secret_access_key='****',region_name="****")
    response = s3.list_objects_v2(Bucket=bucket_name)
    pdf_files = []
    if 'Contents' in response:
        for obj in response['Contents']:
            if obj['Key'].endswith('.pdf'):
                pdf_files.append(obj['Key'])
    return pdf_files


bucket_name = "****"
pdf_files = retrieve_pdf_files_from_s3(bucket_name)
"""
for pdf_data in pdf_files:
    s3 = boto3.client('s3',aws_access_key_id='****',aws_secret_access_key='****',region_name="****")
    s3.download_file(bucket_name, pdf_data, './tmp/' + pdf_data)
"""

reader = SimpleDirectoryReader(input_dir="./tmp")
documents = reader.load_data()
index = VectorStoreIndex.from_documents(documents)
print(index)

执行时出现以下错误:

Traceback (most recent call last):
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\core\embeddings\utils.py", line 59, in resolve_embed_model
    validate_openai_api_key(embed_model.api_key)
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\embeddings\openai\utils.py", line 104, in validate_openai_api_key   
    raise ValueError(MISSING_API_KEY_ERROR_MESSAGE)
ValueError: 未找到OpenAI的API密钥。
请在初始化前设置OPENAI_API_KEY环境变量或配置openai.api_key。
API密钥可在https://platform.openai.com/account/api-keys获取或创建。

处理上述异常时触发二次异常:

Traceback (most recent call last):
  File "D:\NusreGrowth\RAG for Own Data\venv\app.py", line 25, in <module>
    index = VectorStoreIndex.from_documents(documents)
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\core\indices\base.py", line 145, in from_documents
    return cls(
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\core\indices\vector_store\base.py", line 71, in __init__
    else embed_model_from_settings_or_context(Settings, service_context)
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\core\settings.py", line 274, in embed_model_from_settings_or_context
    return settings.embed_model
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\core\settings.py", line 67, in embed_model
    self._embed_model = resolve_embed_model("default")
  File "D:\NusreGrowth\RAG for Own Data\venv\lib\site-packages\llama_index\core\embeddings\utils.py", line 66, in resolve_embed_model
    raise ValueError(
ValueError:
******
无法加载OpenAI嵌入模型。如果您打算使用OpenAI,请检查您的OPENAI_API_KEY。
原始错误:
未找到OpenAI的API密钥。
请在初始化前设置OPENAI_API_KEY环境变量或配置openai.api_key。
API密钥可在https://platform.openai.com/account/api-keys获取或创建。

请考虑使用embed_model='local'。
如需更多嵌入选项,请查阅文档:https://docs.llamaindex.ai/en/stable/module_guides/models/embeddings.html#modules
******

需解决“未找到OpenAI的API密钥”的问题。

解决方案

方案一:配置OpenAI API密钥

llama-index默认使用OpenAI的嵌入模型,需配置API密钥,有两种方式:

  • 通过环境变量设置
    在代码开头添加以下代码,替换为你的API密钥:

    import os
    os.environ["OPENAI_API_KEY"] = "你的OpenAI API密钥"
    

    也可以在系统环境变量中添加OPENAI_API_KEY,设置后重启运行环境即可生效。

  • 直接在llama-index中配置
    通过Settings模块指定嵌入模型的API密钥:

    from llama_index.core import Settings
    from llama_index.embeddings.openai import OpenAIEmbedding
    
    Settings.embed_model = OpenAIEmbedding(api_key="你的OpenAI API密钥")
    

方案二:使用本地嵌入模型(无需API密钥)

若不想依赖OpenAI服务,可切换到本地开源嵌入模型,有两种实现方式:

  • 快速启用本地模型
    修改构建索引的代码,添加embed_model="local"参数:

    index = VectorStoreIndex.from_documents(documents, embed_model="local")
    

    该方式会自动使用默认的本地嵌入模型。

  • 指定具体本地模型
    以BAAI/bge-small-zh为例,先安装依赖:

    pip install llama-index-embeddings-huggingface
    

    然后在代码中配置:

    from llama_index.core import Settings
    from llama_index.embeddings.huggingface import HuggingFaceEmbedding
    
    Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-zh")
    

    可根据需求替换为其他兼容的开源嵌入模型。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:04:59