使用llama_index的VectorStoreIndex遇OpenAI密钥缺失异常,为何需该密钥?
解决LlamaIndex无需OpenAI API构建索引的问题
默认情况下LlamaIndex的VectorStoreIndex会调用OpenAI的Embedding模型生成文本向量,所以会要求你提供OpenAI的API密钥。如果不想用付费的OpenAI服务,可以切换到开源的本地Embedding模型,完全免费且不需要联网。
解决步骤:
安装依赖库
先安装sentence-transformers,它提供了多种开源的Embedding模型:pip install sentence-transformers修改代码使用本地Embedding模型
替换默认的Embedding配置,使用开源模型构建索引:from llama_index import ( SimpleDirectoryReader, VectorStoreIndex, ServiceContext ) from llama_index.embeddings import SentenceTransformerEmbedding # 加载本地文档 documents = SimpleDirectoryReader("docs").load_data() # 初始化开源Embedding模型(这里用all-MiniLM-L6-v2,轻量且效果不错) embed_model = SentenceTransformerEmbedding(model_name="all-MiniLM-L6-v2") service_context = ServiceContext.from_defaults(embed_model=embed_model) # 使用本地模型构建索引 index = VectorStoreIndex.from_documents(documents, service_context=service_context)
这样修改后,代码就会使用本地的开源Embedding模型,不再依赖OpenAI的API,也就不会再要求你提供API密钥了。
内容的提问来源于stack exchange,提问作者mce
相关产品推荐
相关产品推荐

