解决离线服务器无法加载HuggingFaceEmbeddings向量化模型的问题

由于服务器是离线的,因此我先在本地到huggingface官网下载模型text2vec,然后上传到服务器上运行,报错:

(MaxRetryError('HTTPSConnectionPool(host=\'huggingface.co\', port=443): Max retries exceeded with url: /api/models/sentence-transformers/text2vec-base-chinese/revision/main (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f12ebf56350>: Failed to resolve \'huggingface.co\' (Errno -3 Temporary failure in name resolution)"))'), '(Request ID: d787098f-eabd-4f11-8150-623bd99a55e2)')

An error happened while trying to locate the files on the Hub and we cannot find the appropriate snapshot folder for the specified revision on the local disk. Please check your internet connection and try again.

huggingface_hub.utils._errors.LocalEntryNotFoundError: Cannot find an appropriate cached snapshot folder for the specified revision on the local disk and outgoing traffic has been disabled. To enable repo look-ups and downloads online, pass 'local_files_only=False' as input.

HuggingFaceEmbeddings它识别不了这个路径下的文件,因此我将cache_folder的值换成'shibing624/text2vec-base-chinese'依然报相同的错误。

然后我去官网看如何调用这个模型,选择了下面这种方式:

再次报错:

db = store_chroma(documents,embeddings)

AttributeError: 'BertModel' object has no attribute 'embed_documents'

也就是说加载完向量化模型后,我初始化了Chroma向量数据库,然后对传入的doc文档数据进行向量化,它会提示找不到embed_documents这个属性。本身BertModel是没有这个属性的,但是Chroma却需要调用这个属性来实现文档向量化(通过HuggingFaceEmbeddings来加载模型就不会报错,但是离线服务器上用不了)。因此,自己写一个embed_documents来实现就好啦,如下所示:

先在load_embedding_mode里面添加一个方法embedding_function,然后再建立一个类:

最后再调用这个类,就能正常对文档进行向量化和本地持久化了。

复制代码
embedding_function = EmbeddingFunction(load_embedding_mode())
db = Chroma(embedding_function=embedding_function, persist_directory='VectorStore')
相关推荐
iNeuOS工业互联网1 天前
iNeuOS工业互联网操作系统,重要更新:性能优化、安全漏洞与BUG修复,远程控制响应效率大幅提升
性能优化·bug
嵌入式学习菌3 天前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
缘友一世3 天前
dsh(0.1.5-rc.1)接入官方模型deepseek-flash图像输入不支持修复
bug·图片输入·deepseek-flash·dsh 0.1.5-rc.1
lovingsoft3 天前
AI测试中的对抗测试:从“找Bug”到“预演战争”
人工智能·bug
golang学习记4 天前
VS Code 新UI被曝重大bug:菜单栏消失了
vscode·bug
j7~4 天前
【软件测试】(概念篇)《需求的概念,测试用例(case),软件错误(bug),开发模型以及测试模型》---详解
软件测试·bug·敏捷模型·开发模型·测试模型·测试中需求的定义·软件的生命周期
冰水不凉5 天前
CodeX 在 Ubuntu 下 vscode 插件的 bug 问题
vscode·ubuntu·bug
flower_drop6 天前
基于 WebUSB 与 CDP:在浏览器端实现 Android 设备通信与无证书抓包实践
android·chrome·测试工具·adb·bug·edge浏览器
lytao1236 天前
90% 覆盖率不等于没 Bug:用风险配置测试组合
前端·javascript·bug·软件工程