ChromaDB教程_2024最新版(上)

前言

在上一篇(快捷入口)文章中,博主提到了一个向量存储,其中用到了Chroma数据库。代码示例如下:

vectordb = Chroma.from_documents(
    documents=docs,
    embedding=embedding,
    persist_directory=vector_dir 
)

这是基于langchain框架的写法,抛弃框架而言,ChromaDB只需要几个关键要素:

  • 文档
    即待存储的数据
  • 嵌入模型
    指定嵌入(embedding)的算法,即模型
  • 存储目录
    即确认存储的路径

那么,博主顺势带着各位看看,如何在不使用大模型框架的前提下,掌握ChromaDB的使用,就像你用jdbcDriver那么简单。

Q:如何掌握Chromadb

1. 简介

Chroma is the AI-native open-source vector database. Chroma makes it easy to build LLM apps by making knowledge, facts, and skills pluggable for LLMs.

一句话总结:Chroma是一款AI原生开源的矢量(或向量)数据库。它很容易构建大模型应用需要的数据(包括知识、实践等)。

接下来,请跟着博主聚焦下面这张图,这是Chroma的工作原理:
在这里插入图片描述

2. 用途

通过上图,我们可以获得它的几个用途:

序号用途
1存储嵌入数据(store embeddings and their metadata)
2文本嵌入(embed documents and queries)
3搜索(search embeddings)

3. 安装chroma

接下来,我们可以安装Chroma了,首先看看依赖的环境吧,这非常重要!

3.1 依赖环境
序号依赖环境版本号
1python3.12.4
2chromadb0.5.3(最新版
3langchain_community0.3.0(最新版
4langchain-text-splitters0.3.0(最新版
5LibreOffice24.8
3.2 安装

通过以下命令安装chroma(使用清华的库):

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

Pycharm中,可以通过当前project-setting查看chroma模块是否已存在:

在这里插入图片描述
如上图所示,代表成功。下面可以愉快的使用了。

4. 体验

4.1 示例运行

如果你想直接通过chroma完成存储,可以参考以下示例,可直接运行:

import chromadb
# 定义持久化目录
chroma_client = chromadb.PersistentClient(path="绝对路径")
# 新建一个collection并指定name且name唯一
collection = chroma_client.create_collection(name="chroma_local_db05")
# 添加document
collection.add(
    documents=["天坛", "月饼"],
    metadatas=[{"source": "d1"}, {"source": "d2"}],
    ids=["1", "2"],
)
# 检索
results = collection.query(
    query_texts=["哪个是景点"],
    n_results=2
)
print(f'运行结果为:{results}')

运行结果如下:

运行结果为:
{'ids': [['1', '2']], 
'distances': [[
            1.1227734343972846,
            1.273080295354666
        ]], 
'metadatas': [[
            {'source': 'd1'},
            {'source': 'd2'}
        ]],
'embeddings': None, 
'documents': [ ['天坛', '月饼']], 
'uris': None, 
'data': None, 
'included': ['metadatas', 'documents', 'distances']
}

其中包含了ids、distances、metadatas、documents四个核心list。其中distances结果是根据与问题的相似性进行计算并排序,值越小代表相关性越大。

4.2 查看数据库

当然,你也可以直接打开数据库进行查看。因为4.1执行完成后,会在你指定的持久化目录上生成一个sqlite3数据文件:
在这里插入图片描述
此时,你可以通过Sqlite工具打开该库:
在这里插入图片描述
embedding数据如下:
在这里插入图片描述
在这里插入图片描述

同时,你也可以看到原始数据:

在这里插入图片描述


结语

本文主要介绍了chroma的作用、原理、安装、使用的方面方面。并通过一个示例,可亲自体验一番,希望对你有帮助!

精彩回顾

基于LangChain的大模型学习手册之Embedding(保姆级)
基于DashScope+Streamlit构建你的机器学习助手(入门级)
基于LangChain的大模型学习手册(入门级)
基于Python的大模型学习手册(入门级)


在这里插入图片描述

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值