使用Pinecone与Python执行向量嵌入失败,求助解决AttributeError问题
问题原因
from_documents 不是Pinecone官方SDK的方法,它是LangChain框架中用于批量处理文档并写入向量库的封装方法。你直接调用Pinecone客户端对象的该方法,自然会触发属性不存在的错误。
解决方案
1. 安装必要依赖
确保已安装LangChain及Pinecone集成包:
pip install langchain langchain-pinecone pinecone-client sentence-transformers
2. 正确的代码写法
先初始化Pinecone客户端,再通过LangChain的Pinecone类调用from_documents:
import pinecone from langchain_pinecone import Pinecone from langchain.embeddings import SentenceTransformerEmbeddings from langchain_core.documents import Document # 1. 初始化Pinecone客户端 pinecone.init(api_key="你的API密钥", environment="你的环境名称") # 2. 加载嵌入模型(可替换为你使用的模型) embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2") # 3. 确保文本块是LangChain Document对象(如果当前是纯文本则转换) if not isinstance(text_chunks[0], Document): text_chunks = [Document(page_content=t.page_content) for t in text_chunks] # 4. 调用LangChain的批量写入方法 docsearch = Pinecone.from_documents(text_chunks, embeddings, index_name='mcahtbot')
关键注意点
- 若使用旧版LangChain(v0.1之前),导入路径为
from langchain.vectorstores import Pinecone,而非langchain_pinecone - 需确保Pinecone索引已提前创建,且索引维度与嵌入模型的输出维度完全匹配
text_chunks必须是LangChain的Document对象列表,纯文本或自定义分块对象需先转换
内容的提问来源于stack exchange,提问作者megalod don
相关产品推荐
相关产品推荐

