背景
在做一个RAG任务时,执行下面代码遇到了错误
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="shibing624/text2vec-base-chinese")
报错信息如下
Traceback (most recent call last):
File "D:\File\PythonProject\IntelligentInsurance\AIBackend\1.py", line 22, in <module>
embeddings = HuggingFaceEmbeddings(model_name="shibing624/text2vec-base-chinese")
File "D:\Program\anaconda3\envs\AI\lib\site-packages\langchain_huggingface\embeddings\huggingface.py", line 53, in __init__
import sentence_transformers # type: ignore[import]
File "D:\Program\anaconda3\envs\AI\lib\site-packages\sentence_transformers\__init__.py", line 7, in <module>
from sentence_transformers.cross_encoder.CrossEncoder import CrossEncoder
File "D:\Program\anaconda3\envs\AI\lib\site-packages\sentence_transformers\cross_encoder\__init__.py", line 1, in <module>
from .CrossEncoder import CrossEncoder
File "D:\Program\anaconda3\envs\AI\lib\site-packages\sentence_transformers\cross_encoder\CrossEncoder.py", line 7, in <module>
import torch
File "D:\Program\anaconda3\envs\AI\lib\site-packages\torch\__init__.py", line 148, in <module>
raise err
OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\Program\anaconda3\envs\AI\lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
错误提示导入pytorh时确实dll文件。
在询问Kimi给出如下回答:
- 环境问题:Python环境可能没有正确设置或者存在问题。
- 依赖问题:torch库可能没有正确安装或者其依赖库缺失。
- 路径问题:系统可能无法找到fbgemm.dll文件,这可能是因为文件缺失或者路径没有正确设置。
后面我排查在目录下确实有这个文件没问题,我一开始以为torch的问题,为此还重新安装了几次conda环境和torch,都无法解决问题。
终于,搜索到一个帖子,说可能不是这个文件缺失,而是这个dll文件的依赖文件缺失。并给出了解决办法。
问题解决
1.安装DLL文件依赖分析工具
下载地址链接: https://github.com/lucasg/Dependencies/tree/v1.11.1
之后,下载工具
下载文件是个压缩包,解压文件。
2.打开分析工具
在解压的文件夹下打开DependenciesGui.exe工具,点击File,Open,选择有问题那个文件,之后弹出错误信息,表示缺失的dll文件。
现在我已经修复完了,当时是红框文件报错。
3.下载文件
后面我从网上搜索这个libomp140.x86_64.dll文件,找到了这个网站链接: https://www.dllme.com/,
这里可以搜索缺失的dll文件,并下载。
4.安装dll文件
下载的是一个压缩包,解压后就是那个文件
就直接丢到最开始报错那个目录,torch/lib下,和fbgemm.dll这个文件放一起,问题解决了。