chromadb使用hugging face模型时利用镜像网站下载注意事项

chromadb默认使用sentence-transformers/all-MiniLM-L6-v2的词嵌入(词向量)模型,如果在程序首次运行时,collection的add或query操作时如果没有指定embeddings或query_embeddings,程序会自动下载相关嵌入向量模型,但是由于默认hugging face后端网络下载速度常常非常慢,所以需要指定镜像网站以加快模型下载速度。

windows系统下具体操作步骤如下:

1、安装huggingface_hub:

bash 复制代码
pip install huggingface_hub

2、设置huggingface后端镜像网址系统变量:

bash 复制代码
set HF_ENDPOINT=https://hf-mirror.com

3、检查系统变量是否设置成功:

bash 复制代码
hf env

4、x下载指定模型(如all-MiniLM-L6-v2模型)到本地指定文件夹中:

bash 复制代码
huggingface-cli download sentence-transformers/all-MiniLM-L6-v2 --local-dir ./models/all-MiniLM-L6-v2 --resume-download --local-dir-use-symlinks False

5、在程序中使用本地模型(如all-MiniLM-L6-v2模型)示例:

python 复制代码
from sentence_transformers import SentenceTransformer

# 指定本地模型路径(注意替换为实际路径)
model_path = r".\models\all-MiniLM-L6-v2"  # Windows路径建议用r""避免转义问题
model = SentenceTransformer(model_path)  # 从本地加载模型

# 输入句子列表
sentences = ["This is an example sentence.", "Each sentence is converted."]
embeddings = model.encode(sentences)  # 生成384维向量

# 打印结果(示例)
print("向量维度:", embeddings.shape)
for i, emb in enumerate(embeddings):
    print(f"句子 '{sentences[i]}' 的前5维向量: {emb[:5]}")

6、在chromadb中使用本地词嵌入向量模型示例:

python 复制代码
import chromadb
from sentence_transformers import SentenceTransformer

# 指定本地模型路径(注意替换为实际路径)
model_path = r".\models\all-MiniLM-L6-v2"  # Windows路径建议用r""避免转义问题
model = SentenceTransformer(model_path)  # 从本地加载模型

chroma_client = chromadb.Client()

collection = chroma_client.create_collection(
    name="my_collection"
)

#文本
documents=[
    "This is a document about pineapple",
    "This is an island of the USA",
    "This is a location where there are many tourists",
    "This is a document about oranges"
    
]

#文本通过模型转换为向量
embeddings = model.encode(documents) 

#像集合中添加记录
collection.add(
    embeddings=embeddings,
    ids=["id1", "id2","id3","id4"],
    documents=documents
)

#查询语句
query_texts=["This is a query document about hawaii"]
#查询语句通过模型转换为向量
query_embeddings = model.encode(query_texts)

#查询数据
results = collection.query(
    query_embeddings=query_embeddings,
    query_texts=query_texts, # Chroma will embed this for you
    n_results=2 # how many results to return
)

print(results)
相关推荐
泡海椒10 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
hqyjzsb10 小时前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
sanjiaomao33311 小时前
从论文公式到Python实现:用单元测试校验滑动平均算法
python·算法·单元测试
linweidong13 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
小玮看世界13 小时前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
萧鼎13 小时前
2026实战:用 tomlkit 优雅读写 TOML 配置,告别手写解析器
python·开源·教程·python库
小刘在重生~14 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
2601_9620994614 小时前
Python xlwt设置excel单元格字体及格式
python·excel·xlwt·样式设置·单元格格式
奇牙coding12314 小时前
GPT-6-Astra API 接入教程:OpenRouter 路由配置 + Python/curl 示例 + 静默降级踩坑
开发语言·python·gpt·ai
2601_9622982715 小时前
Python与Selenium结合的Web自动化测试全流程实践教程
自动化测试·python·selenium·web测试·pageobjectmodel