ChromaDB教程_2024最新版(下)

前言

Embeddings(嵌入)是表示任何类型数据的AI原生方式,它非常适用于各种AI驱动的工具和算法中。它们可以表示文本、图像,很快还可以表示音频和视频。有许多创建嵌入的选项,无论是在本地使用已安装的库,还是通过调用API。

Chroma为流行的嵌入提供商提供了轻量级的封装,使其易于在你的应用程序中使用。你可以在创建Chroma集合时设置一个嵌入函数,该函数将自动使用,也可以自己直接调用它们。
下面是提供嵌入函数的厂商,当然也包括国内厂商,可以自行了解,这里不再罗列。

在这里插入图片描述

下面博主通过Hugging Face提供的all-MiniLM-L6-v2模型创建嵌入,请各位紧随博主,以防迷路。

Q:如何通过langchain结合chroma完成检索

langchain提供了各种嵌入的接口,所以你根据它可以很容易完成数据的embedding。在试用前,必须安装相关模块:

序号模块名称模块用途
1langchain安装langchain框架,集成嵌入接口
2langchain-chroma集成chroma数据库
3sentence-transformershugging face模型库sdk,可以加载嵌入模型
4langchain_text_splitters集成文本切割器
5chromachroma数据库

1. 安装langchain

 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain
 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain-core
 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain-community

2. 安装langchain-chroma

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain-chroma

3. 安装langchain_text_splitters

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain_text_splitters

4. 安装sentence-transformers

sentence-transformers是一个python库,该库提供了一种简单的方法来计算句子、段落和图像的密集向量表示。这些模型基于BERT/RoBERTa/XLM RoBERTa等网络,在各种任务中实现了最先进的性能。同时也支持文本嵌入在向量空间中,使得相似的文本更接近,并且可以使用余弦相似度有效地找到。
在这里插入图片描述

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple sentence-transformers 

5. 安装chroma

请参考 ChromaDB教程_2024最新版(上)完成。

6. 下载all-MiniLM-L6-v2

hugging face官网,将该模型下载至本地后,保持原目录存储,如下所示:
在这里插入图片描述

7. 基于all-MiniLM-L6-v2嵌入并查询的示例

from langchain_community.document_loaders import UnstructuredHTMLLoader
from langchain_text_splitters import CharacterTextSplitter
from langchain_community.vectorstores import Chroma

# 加载txt/html文件为document
file_path = "html/云原生.txt"
# 数据存储位置
vector_dir = 'chromadb/col01'
# embedding模型
model_path = 'embedding/all-MiniLM-L6-v2'

loader = UnstructuredHTMLLoader(file_path)
mydata = loader.load()

# 创建文本分割器
text_splitter = CharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=0
)
# 创建文档
docs = text_splitter.split_documents(mydata)
# 集成embedding函数
my_embedding = SentenceTransformerEmbeddings(
   model_name=model_path
)
vectordb = Chroma.from_documents(
    documents=docs,
    embedding=my_embedding,
    persist_directory=vector_dir
)

query = '一叶飞舟在哪里'
retriever = vectordb.as_retriever(search_type="mmr")
s = retriever.get_relevant_documents(query)
print(f'相似的文档:{s}')

执行结果如下:
在这里插入图片描述
当然你可以通过sqlite工具,看看这个库长什么样:
在这里插入图片描述

all-MiniLM-L6-v2支持384维的向量存储(适合学习、研究),如果维度更大,相对的存储要求更高。


结语

本文通过langchain结合chromadb实现相似建设,并且基于自定义embedding函数(依赖all-MiniLM-L6-v2)完成embedding。在这个基础上,可以结合大模型,完成最佳实践。

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~

精彩回顾

ChromaDB教程_2024最新版(上)
基于LangChain的大模型学习手册之Embedding(保姆级)
基于DashScope+Streamlit构建你的机器学习助手(入门级)
基于LangChain的大模型学习手册(入门级)
基于Python的大模型学习手册(入门级)


在这里插入图片描述

<think>好的,我需要帮助用户查询ChromaDB的版本信息。首先,用户提到他们在安装chromadb时遇到了问题,比如缺少模块和构建错误。现在他们想知道如何查看已安装chromadb版本。 首先,我应该考虑用户可能的安装环境。用户之前遇到了安装问题,可能是在Python环境中安装的,所以使用pip检查版本是常见的方法。常用的命令是`pip show chromadb`或者`pip list | findstr chromadb`(Windows)和`pip3 list | grep chromadb`(Linux/macOS)。这些命令可以显示已安装的版本,但如果用户没有正确安装,可能无法获取信息。 另外,用户可能在代码中需要动态获取版本号,比如使用`import chromadb; print(chromadb.__version__)`。不过,如果安装不成功,这段代码可能会报错,提示没有安装chromadb。这时候需要提醒用户先正确安装,引用之前的解决方案,比如安装依赖或处理构建错误。 用户提供的引用中有提到安装chromadb的问题,特别是引用[3]提到构建失败,可能需要升级Python版本或安装依赖。所以在回答中需要建议用户先解决安装问题,然后再检查版本。如果用户已经安装成功,那么上述命令应该有效。 可能还需要考虑用户是否在虚拟环境中安装,或者是否使用了正确的Python版本。例如,用户可能安装Python 3.x,但命令行默认使用的是Python 2.x,这时候需要用pip3而不是pip。此外,如果用户的项目在虚拟环境中,需要激活虚拟环境后再运行命令。 总结步骤:首先确认chromadb已正确安装,使用pip命令检查版本;或者在Python代码中导入并打印版本号。如果遇到问题,引导用户参考之前的安装解决方案,如处理依赖或升级Python。</think>要查询ChromaDB的版本信息,可以通过以下两种方法实现: ### 方法一:使用pip命令 在命令行中执行以下命令查看已安装的版本: ```bash pip show chromadb # 显示完整包信息 # 或 pip list | findstr chromadb # Windows系统筛选结果 pip3 list | grep chromadb # Linux/macOS系统筛选结果 ``` 若未安装安装失败,会提示未找到包[^3]。 ### 方法二:Python代码验证 在Python环境中执行: ```python import chromadb print(chromadb.__version__) # 直接打印版本号 ``` ### 常见问题说明 1. **若提示模块未找到**:说明未成功安装,需参考安装指南: - 确保Python版本≥3.7 - 使用`pip install chromadb`安装基础库 - 若遇到hnswlib构建失败,需先安装C++编译工具链 2. **版本兼容性问题**:建议查看项目的GitHub仓库[^2],确认当前最新稳定版本号。 当前最新稳定版本为$0.4.15$(截至2023年10月数据),具体以实际安装结果为准。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值