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

使用LangChain/OpenAI处理PDF嵌入时遇AttributeError问题求助

问题分析与解决

报错原因

你执行store.add_documents(embeddings)时,传入的是已生成的嵌入向量列表,但add_documents方法要求传入的是LangChain的Document对象列表(这类对象带有page_content属性),因此触发了AttributeError。

代码冗余问题

你的代码存在不必要的重复操作:

  • 既调用load_and_split()获取分割后的Document列表pages,又调用load()重新加载文档,属于重复操作。
  • 手动调用embedder.embed_documents(texts)生成嵌入完全多余,FAISS.from_documents会自动使用传入的Embeddings模型处理文档并生成嵌入。

修正后的代码

from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings

# 加载并分割PDF为带page_content的Document对象列表
loader = PyPDFLoader("FILENAME.pdf")
pages = loader.load_and_split()

# 直接创建FAISS向量库,内部自动完成嵌入生成
store = FAISS.from_documents(pages, OpenAIEmbeddings())

# 若后续需要添加新文档,传入新的Document对象列表即可
# new_docs = other_loader.load_and_split()
# store.add_documents(new_docs)

关键说明

  • FAISS.from_documents会自动处理文档的嵌入生成与存储,无需手动调用embed_documents。
  • add_documents方法仅用于添加新的Document对象,不能直接传入已生成的向量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:53:14