AI RunnablePassThrough的问题

举报
人工智能-张晨光 发表于 2026/07/23 13:55:02 2026/07/23
【摘要】 HuggingFacePipelineEmbeddings 不存在于正式稳定版 langchain-huggingface!之前给你的名称错误,这就是导入失败根源,非常抱歉!在官方稳定版本 langchain-huggingface 里只有 2 个本地 Embedding 类:HuggingFaceEmbeddings(唯一本地嵌入类,强制依赖sentence-transformers)Hu...
HuggingFacePipelineEmbeddings 不存在于正式稳定版 langchain-huggingface!之前给你的名称错误,这就是导入失败根源,非常抱歉!
在官方稳定版本 langchain-huggingface 里只有 2 个本地 Embedding 类:
  1. HuggingFaceEmbeddings(唯一本地嵌入类,强制依赖sentence-transformers)
  2. HuggingFaceEndpointEmbeddings(调用远程推理接口,不能本地跑 BGE)

当前局面总结

  • 想用 langchain_huggingface 本地加载 BGE:只能用 HuggingFaceEmbeddings
  • HuggingFaceEmbeddings 必须依赖 sentence-transformers
  • 新版 sentence-transformers + transformers>=4.51 存在官方兼容 Bug

两条【纯 LangChain 生态、不手写原生 transformers】可行方案

方案 A|锁定兼容版本组合(继续使用 HuggingFaceEmbeddings,推荐授课)

激活你的 rag_env,执行下面锁定版本命令:
powershell



pip install transformers==4.46.3 sentence-transformers==3.2.1 --force-reinstall

安装完成,你原始代码直接正常运行:
python

运行


import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["HF_HOME"] = r"D:\huggingface_cache"

from langchain_huggingface import HuggingFaceEmbeddings

embedding_model = HuggingFaceEmbeddings(
    model_name="BAAI/bge-small-zh-v1.5",
    model_kwargs={"device": "cpu"},
    encode_kwargs={"normalize_embeddings": True},
)

text = "订单未发货时,用户可以直接申请退款。"
vector = embedding_model.embed_query(text)

print(type(vector))
print(f"向量维度:{len(vector)}")
print(vector[:10])

原理:transformers==4.46.3 还保留 is_datasets_available,不会触发导入崩溃。

方案 B|更换 LangChain 官方替代包 FastEmbedEmbeddings(彻底绕开 sentence-transformers)

不使用 langchain_huggingface,使用社区支持的 FastEmbed,同样属于 LangChain 标准组件,不需要 sentence-transformers、不受 transformers 版本影响
powershell



# rag_env内执行安装
pip install fastembed langchain-community

完整代码:
python

运行


import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["HF_HOME"] = r"D:\huggingface_cache"

from langchain_community.embeddings import FastEmbedEmbeddings

embedding_model = FastEmbedEmbeddings(
    model_name="BAAI/bge-small-zh-v1.5"
)

text = "订单未发货时,用户可以直接申请退款。"
vector = embedding_model.embed_query(text)

print(type(vector))
print(f"向量维度:{len(vector)}")
print(vector[:10])

✅ 接口完全一致,后续接入 Chroma 向量库代码不用改动。

建议选择

如果你课程演示要求严格使用 langchain_huggingface → 执行方案 A 锁定版本

如果只是需要 LangChain 规范 Embedding、不限定包名称 → 方案 B FastEmbed 稳定性最强,一劳永逸
❌ 不要再尝试 HuggingFacePipelineEmbeddings,官方稳定包不存在这个类,名称是之前错误信息。
优先执行方案 A 的 pip 锁定版本命令!
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。