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

SentenceTransformer无default_prompt_name属性报错排查求助

问题

更换新运行时后,执行检索文档的代码出现报错,此前运行正常。已尝试重启会话、升级SentenceTransformer,问题仍未解决。

代码如下:

import joblib
loaded_db = joblib.load('/content/drive/MyDrive/Skripsi/Db/db_1000_100.joblib')
retriever = loaded_db.as_retriever()
query = "Apa saja jenis intervensi gizi?"
retriever = loaded_db.as_retriever()
retrieved_docs = retriever.get_relevant_documents(query)
retrieved_docs

报错信息:

AttributeError                            Traceback (most recent call last)
<ipython-input-11-efcb9fa990f2> in <cell line: 3>()
      1 query = "Apa saja jenis intervensi gizi?"
      2 retriever = loaded_db.as_retriever()
----> 3 retrieved_docs = retriever.get_relevant_documents(query)
      4 retrieved_docs

9 frames
/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py in __getattr__(self, name)
   1693             if name in modules:
   1694                 return modules[name]
-> 1695         raise AttributeError(f"'{type(self).__name__}' object has no attribute '{name}'")
   1696 
   1697     def __setattr__(self, name: str, value: Union[Tensor, 'Module']) -> None:

AttributeError: 'SentenceTransformer' object has no attribute 'default_prompt_name'
解决方案

这个错误核心是SentenceTransformer与LangChain版本不兼容:新运行时默认安装的LangChain版本较高,而旧版本的SentenceTransformer没有default_prompt_name属性,两者交互时触发报错。

具体解决步骤:

  1. 固定依赖版本,匹配之前正常运行的环境
    • 找到之前环境的依赖版本记录(比如pip freeze导出的列表),锁定langchain和sentence-transformers的版本:
      pip install langchain==<历史兼容版本号> sentence-transformers==<历史兼容版本号>
      
  2. 重构向量数据库(若可行)
    • 如果能重新生成向量数据,用当前兼容的依赖版本重新构建并保存向量存储对象,替代旧的db_1000_100.joblib文件
  3. 优化冗余代码
    • 代码中重复执行了retriever = loaded_db.as_retriever(),可删除其中一行,不影响功能且更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:32:40