使用Langchain FAISS向量库时遇AttributeError:'function'无'embed_query'属性
问题:调用FAISS embedding_function的embed_query时触发AttributeError
我在跟着AWS Bedrock workshop做QA with RAG的练习,前面步骤都正常,但执行以下代码时:
from langchain.chains.question_answering import load_qa_chain from langchain.vectorstores import FAISS from langchain.indexes import VectorstoreIndexCreator from langchain.indexes.vectorstore import VectorStoreIndexWrapper vectorstore_faiss = FAISS.from_documents( docs, bedrock_embeddings, ) wrapper_store_faiss = VectorStoreIndexWrapper(vectorstore=vectorstore_faiss)
query = """Is it possible that I get sentenced to jail due to failure in filings?""" query_embedding = vectorstore_faiss.embedding_function.embed_query(query)
执行到最后一行时触发错误:
AttributeError: 'function' object has no attribute 'embed_query'
解决方案
- 检查
bedrock_embeddings的类型:LangChain的BedrockEmbeddings实例自带embed_query方法,若你传入的是原始函数而非实例,就会出现该错误。 - 正确初始化BedrockEmbeddings(示例):
from langchain.embeddings import BedrockEmbeddings bedrock_embeddings = BedrockEmbeddings( credentials_profile_name="你的AWS配置文件名称", region_name="你的AWS区域" )
- 修复调用方式:
- 若
vectorstore_faiss.embedding_function是普通函数,直接调用即可,无需.embed_query:query_embedding = vectorstore_faiss.embedding_function(query) - 若已正确传入BedrockEmbeddings实例,确保代码中没有误将实例替换为函数,此时即可正常使用
.embed_query方法。
- 若
内容的提问来源于stack exchange,提问作者user23613391
相关产品推荐
相关产品推荐

