Chroma向量数据库

news/2024/11/6 15:35:33/

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

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

Chroma 是一个用于构建带有嵌入向量的 AI 应用程序的数据库。 它内置了入门所需的一切,并可在你的机器上运行。 托管版本即将推出!

1、安装Chroma数据库

使用如下命令安装Chroma数据库:

pip install chromadb

注意,由于 pytorch的原因,chromadb 目前不支持 Python 3.11

2、获取Chroma Client对象

在Python中使用Chroma的Client对象访问数据库:

import chromadb
chroma_client = chromadb.Client()

3、创建Chroma数据集

接下来使用Python在Chroma中创建一个集合(Collection)。

集合是存储嵌入、文档和任何其他元数据的地方。 可以创建一个具有名称的集合:

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

4、向Chroma数据集添加文档

继续添加一些文本文档到集合中,Chroma 将存储文本,并自动处理标记化、嵌入和索引:

collection.add(documents=["This is a document", "This is another document"],metadatas=[{"source": "my_source"}, {"source": "my_source"}],ids=["id1", "id2"]
)

如果已经自己生成了嵌入向量,则可以直接加载:

collection.add(embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],documents=["This is a document", "This is another document"],metadatas=[{"source": "my_source"}, {"source": "my_source"}],ids=["id1", "id2"]
)

5、查询Chroma中的数据

现在可以进行查询了。可以用查询文本列表来查询集合,Chroma 会返回 n 个最相似的结果。 就这么简单!

results = collection.query(query_texts=["This is a query document"],n_results=2
)

默认情况下,存储在 Chroma 中的数据是短暂的,因此很容易制作原型脚本。 使 Chroma 持久化很容易,因此可以重复使用创建的每个集合,并在以后向其中添加更多文档。 它会在启动客户端时自动加载你的数据,并在关闭时自动保存。


原文链接:Chroma向量数据库 — BimAnt


http://www.ppmy.cn/news/66855.html

相关文章

进程程序替换+简易版shell实现

索引 进程程序替换如何进行程序替换不同程序替换函数之间的区别系统接口调用其他语言的函数替换函数execle 简易版shell实现 进程程序替换 什么是进程程序替换? 指在一个正在运行的进程中,将原来的程序替换成新的程序的过程。 eg:如果我们想…

康希诺生物:新冠疫苗影响当期业绩,毛利润减少89.92%

来源;猛兽财经 作者:猛兽财经 猛兽财经获悉,由于4月28日,康希诺生物(06185)发布2023年一季度报告,收入同比下滑及利润端亏损,主要由于新冠疫苗需求量同比大幅下降,以及产品价格调整…

【shell脚本里的命令】

目录 一、sort命令1.1、命令演示 二、unip命令1、命令演示1、列题:2、使用脚本来查看用户有没有被恶意登录,查看登录用户的对应ip地址 三、tr命令1.1、命令演示1.2、使用tr命令对数组进行排序 四、从Windows里拉文件到Linux系统中要做的潜在条件五、cut命令六、spli…

#VERDI# 关于Verdi如何使用reverse调试

前言 今天我们 一起学习Verdi的一种回退仿真机制。也即:reverse 为了使用verdi reverse debug 机制,以下注意事项必须满足: (1)Reverse Debug page 必须设置为交互模式:tools-》preferences->Intera…

SSD系列2——PriorBox

SSD系列: SSD系列1——网络结构 SSD系列2——PriorBox SSD系列3——损失计算 PriorBox SSD采用PriorBox来进行区域生成,其思想与Faster RCNN的Anchor类似。PriorBox的本质是在原图上的一系列矩形框,即特征图上的一个点根据下采样率可以得到在…

网易Android framework开发岗面试经历分享(附面试题汇总+案例解析)

背景 今年可以说是非常难,部门被拆,很多同事都被变相裁员了,虽然说去其他部门工作可以给我们的放宽一点要求,但我还是想在Android开的岗位上发展,所以也提出了离职;离职后的两个月中,投了一些A…

苹果备忘录永久删除了怎么办?3种备忘录恢复的方法!

案例:iPhone备忘录彻底删除了怎么办? 【友友们,苹果备忘录永久删除了,还可以恢复吗?有什么方法?】 苹果备忘录是苹果系统自带的一款备忘录应用,可以帮助我们记录日程安排、备忘事项、重要信息等…

一文了解异步编程

promise 什么是promise promise是异步编程的一种解决方案,从语法上来说,Promise是一个对象,从它可以获取异步操作的消息 ES6规定,Promise对象是一个构造函数,接受一个函数作为参数,这个函数会立即执行&a…