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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:50:27