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

使用LangChain FAISS时遇AttributeError:SentenceTransformer无embed_documents属性

问题解决:AttributeError: 'SentenceTransformer' object has no attribute 'embed_documents'

错误原因很直接:LangChain的FAISS.from_documents方法要求传入的嵌入模型必须实现LangChain的Embeddings接口,也就是必须包含embed_documents和embed_query这两个方法。但你直接用的原生SentenceTransformer对象并没有这些方法,所以触发了属性错误。

解决方法是用LangChain专门封装的SentenceTransformerEmbeddings类来包装原生模型,让它符合LangChain的接口要求:

修改后的代码示例

# 替换原来的embed_model初始化代码
from langchain.embeddings import SentenceTransformerEmbeddings

# 用LangChain封装的类创建符合接口要求的嵌入模型
embed_model = SentenceTransformerEmbeddings(model_name='all-MiniLM-L6-v2/')

# 文档分割代码保持不变
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size = 1000,
    chunk_overlap = 100,
    length_function = len,
)
combined_documents = text_splitter.transform_documents(test_data)

# 现在可以正常构建FAISS向量库
vector_store = FAISS.from_documents(combined_documents, embed_model)

这样修改后,embed_model就具备了LangChain要求的embed_documents方法,能顺利和FAISS完成集成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:57:07