当前位置: 首页 > news >正文

【自然语言处理与大模型】向量数据库:Chroma使用指南

        Chroma是一款功能强大的开源 AI 应用数据库,专为高效数据存储与检索而设计。它不仅支持 Embedding 和 Metadata 的存储,还集成了多项核心功能,包括向量搜索、全文搜索、Document 存储、Metadata 过滤以及多模态检索。此外,Chroma 还提供了便捷的客户端-服务器(CS)模式,满足多样化的应用场景需求。

安装

# 在服务器上安装
pip install chromadb# 在客户端上安装,仅支持 HTTP 的客户端
pip install chromadb-client

使用

# 导入chromadb
import chromadb# 导入embedding_functions,它可以自定义嵌入模型
from chromadb.utils import embedding_functionsmy_embedding_func = embedding_functions.OpenAIEmbeddingFunction(api_key="YOUR_API_KEY",model_name="<嵌入模型的名称>"
)# 下面三选一就行
# 创建一个临时客户端,存在内存中
chroma_client = chromadb.EphemeralClient()
chroma_client = chromadb.Client()  # 默认使用内存存储模式(非持久化)# 创建一个持久客户端,若不指定则存默认路径为 .chroma
chroma_client = chromadb.PersistantClient(path="<本地存储路径>")# 创建一个集合
"""
集合是您存储嵌入、文档和任何附加元数据的地方。集合索引您的嵌入和文档,并实现高效的检索和过滤。您可以使用名称创建一个集合。
"""
collection = chroma_client.create_collection(name="my_collection","embedding_function": my_embedding_func  # 指定向量模型)
collection = chroma_client.get_or_create_collection(name="my_collection")  # 该方法可以避免重复创建集合# collection的几个属性
print(collection.peek())  # 返回集合中前10项的列表
print(collection.count())  # 返回集合中项目的数量# 增:向集合中添加一些文本文件
"""
Chroma 将存储您的文本并自动处理嵌入和索引。您还可以自定义嵌入模型。您必须为您的文档提供唯一的字符串 ID
"""
collection.add(documents=["This is a document about pineapple","This is a document about oranges"],metadatas=[{"source": "pineapple"}, {"source": "oranges"}]ids=["id1", "id2"]
)# 查:查询集合
"""
您可以使用查询文本列表查询集合,Chroma 将返回 n 个最相似的结果。就是这么简单!如果未提供 n_results,Chroma 默认将返回 10 个结果。默认情况下,Chroma 使用 DefaultEmbeddingFunction,它是基于 Sentence Transformers 的 MiniLM-L6-v2 模型
"""
results = collection.query(query_texts=["This is a query document about hawaii"],  # Chroma会自动嵌入n_results=2  # 返回多少结果# where = {"source": "hawaii"}, # 按元数据过滤# where_document = {"$contains": "about hawaii"} # 按文档内容过滤
)# 改:如果重复执行,相同 ID 的文档会被更新
collection.upsert(documents=["This is a document about pineapple","This is a document about oranges"],ids=["id1", "id2"]
)# 删:删除某个文档,删除整个集合
collection.delete(ids=["id2"])  # 删除某个文档
client.delete_collection(name="my_collection")  # 删除整个集合

CS模式

服务器上运行这个命令:

# 运行chroma服务器
chroma run --path <本地持久化数据库的路径># 单独设置地址和端口
chroma run --path /db_path --host localhost --port 8000

客户端上运行这个代码:

import chromadb# 下面二选一就行
# 同步客户端连接方式(阻塞式)
client = chromadb.HttpClient(host='localhost', port=8000)# 异步客户端连接方式(非阻塞式)
async def main():client = await chromadb.AsyncHttpClient(host='localhost', port=8000)# 运行异步主函数
asyncio.run(main())

相关文章:

【自然语言处理与大模型】向量数据库:Chroma使用指南

Chroma是一款功能强大的开源 AI 应用数据库&#xff0c;专为高效数据存储与检索而设计。它不仅支持 Embedding 和 Metadata 的存储&#xff0c;还集成了多项核心功能&#xff0c;包括向量搜索、全文搜索、Document 存储、Metadata 过滤以及多模态检索。此外&#xff0c;Chroma …...

一文掌握工业相机选型计算

目录 一、基本概念 1.1 物方和像方 1.2 工作距离和视场 1.3 放大倍率 1.4 相机芯片尺寸 二、公式计算 三、实例应用 一、基本概念 1.1 物方和像方 在光学领域&#xff0c;物方&#xff08;Object Space&#xff09;是与像方&#xff08;Image Space&#xff09;相对的…...

【周输入】510周阅读推荐-3

前文 【周输入】510周阅读推荐-1-CSDN博客 【周输入】510周阅读推荐-2-CSDN博客 本次推荐 目录 前文 本次推荐 算法技术 模型产品 算法技术 vLLM和DeepSpeed部署模型的优缺点_vllm deepspeed-CSDN博客 优点缺点总结vLLM 适用于推理 优化内存管理 高效并行化 功能单…...

机器学习(11)——xgboost

文章目录 1. 算法背景和动机1.1. 提升算法&#xff08;Boosting&#xff09;1.2. XGBoost的改进动机2. 算法基础 3. 核心创新3.4 稀疏感知算法 4. 系统优化4.1 列块(Column Block)4.2 缓存感知访问4.3 外存计算 5. 算法细节5.1 树生长策略5.2 特征重要性评估5.3 自定义目标函数…...

大语言模型上下文长度:发展历程、局限与技术突破

1. 引言&#xff1a;什么是上下文长度及其重要性 上下文长度&#xff08;Context Length&#xff09;&#xff0c;也称为上下文窗口&#xff08;Context Window&#xff09;&#xff0c;指的是大语言模型&#xff08;LLM&#xff09;在处理和生成文本时能够有效记忆和利用的信…...

ControlNet简洁

ControlNet 什么是ControlNet ControlNet是一种用于控制扩散模型生成结果的网络结构。该结构可以将边缘图&#xff0c;结构图等信息注入扩散模型&#xff0c;从而能够对生成结果进行更为精细的控制。 ControlNet是怎么实现的 在模型结构方面&#xff0c;其大致结构如下图所…...

【C】C程序内存分配

文章目录 1. C程序内存布局 1. C程序内存布局 从低地址到高地址依次为&#xff1a; 代码段 存储内容&#xff1a;存放编译后的机器指令特点&#xff1a;代码段是只读的&#xff1b;可共享&#xff0c;多个进程可共享同一份代码 数据段 存储内容 已初始化的全局变量已初始化的静…...

论文学习:《引入TEC - LncMir,通过对RNA序列的深度学习来预测lncRNA - miRNA的相互作用》

长链非编码RNA ( long noncoding RNAs&#xff0c;lncRNAs )是一类长度通常大于200个核糖核苷酸的非编码RNA &#xff0c;微小RNA ( microRNAs&#xff0c;miRNAs )是一类由22个核糖核苷酸组成的短链非编码RNA。近年来&#xff0c;越来越多的研究表明&#xff0c;lncRNA和miRNA…...

【每日一题丨2025年5.12~5.18】排序相关题

个人主页&#xff1a;Guiat 归属专栏&#xff1a;每日一题 文章目录 1. 【5.12】P1068 [NOIP 2009 普及组] 分数线划定2. 【5.13】P5143 攀爬者3. 【5.14】P12366 [蓝桥杯 2022 省 Python B] 数位排序4. 【5.15】P10901 [蓝桥杯 2024 省 C] 封闭图形个数5.【5.16】P12165 [蓝桥…...

AIDA64 extreme7.5 版本注册激活方法

一、AIDA 7.5 序列号 3BQN1-FUYD6-4GDT1-MDPUY-TLCT7 UVLNY-K3PDB-6IDJ6-CD8LY-NMVZM 4PIID-N3HDB-IWDJI-6DMWY-9EZVU 二、安装激活方法 激活步骤&#xff1a; 1、打开AIDA64软件&#xff0c;点击顶部菜单栏的“帮助”→“输入序列号” 2、将生成的序列号粘贴至输入框&a…...

Python 条件语句详解

条件语句是编程中用于控制程序流程的基本结构&#xff0c;Python 提供了几种条件语句来实现不同的逻辑判断。 1. if 语句 最基本的条件语句形式&#xff1a; if 条件:# 条件为真时执行的代码块示例&#xff1a; age 18 if age > 18:print("你已经成年了")2. …...

模型评估与调优(PyTorch)

文章目录 模型评估方法混淆矩阵混淆矩阵中的指标ROC曲线&#xff08;受试者工作特征&#xff09;AUCR平方残差均方误差&#xff08;MSE&#xff09;均方根误差&#xff08;RMSE&#xff09;平均绝对误差&#xff08;MAE&#xff09; 模型调优方法交叉验证&#xff08;CV&#x…...

oppo手机安装APK失败报错:安装包异常

如果你的apk文件在oppo手机安装失败了&#xff0c;像这样&#xff1a; 先说我们当时解决方式&#xff1a; 如果还没上架应用市场的测试包&#xff0c;在上面图一中需要关闭“超级守护”&#xff0c;类似华为的纯净模式。如果开启了还还不行&#xff0c;安装页面的报错太笼统不…...

互联网大厂Java面试场景:从缓存到容器化的技术问答

场景&#xff1a;互联网大厂Java面试之旅 面试官&#xff1a;严肃的技术专家 应聘者&#xff1a;搞笑的水货程序员明哥 第一轮&#xff1a;缓存技术与数据库优化 面试官&#xff1a;明哥&#xff0c;你能谈谈Redis的常见使用场景和一些优化技巧吗&#xff1f; 明哥&#xf…...

【android bluetooth 协议分析 01】【HCI 层介绍 6】【WriteLeHostSupport命令介绍】

HCI 指令 HCI_Write_LE_Host_Support 是 Bluetooth Host 向 Controller 发送的一条指令&#xff0c;用于启用或禁用主机对 Bluetooth Low Energy&#xff08;LE&#xff09;的支持能力。该指令属于 HCI&#xff08;Host Controller Interface&#xff09;命令集合中&#xff0c…...

Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)

文章目录 Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)需求方法1:使用Helm覆盖值方法2: 在Lens中临时修改Deployment配置步骤 1: 创建 Docker Registry Secret步骤 2: 在 Deployment 中引用 Secret参考资料Helm配置之为特定Deployment配置特定Docker仓库(覆…...

项目:在线音乐播放服务器——基于SSM框架和mybatis

介绍项目 项目主要是基于SSM框架和mybatis进行实现 主要的功能&#xff1a; 登陆界面&#xff0c;用户注册&#xff0c;音乐的播放列表&#xff0c;删除指定的歌曲&#xff0c;批量删除指定的歌曲&#xff0c;收藏歌曲&#xff0c;查询歌曲&#xff0c;从收藏列表中删除收藏…...

Linux配置vimplus

配置vimplus CentOS的配置方案很简单&#xff0c;但是Ubuntu的解决方案网上也很多但是有效的很少&#xff0c;尤其是22和24的解决方案&#xff0c;在此我整理了一下我遇到的问题解决方法 CentOS7 一键配置VimForCPP 基本上不会有什么特别难解决的报错 sudo yum install vims…...

Ubuntu22.04开机运行程序

新建启动文件 sudo vim /etc/systemd/system/trojan.service 2. 写入配置文件 [Unit] DescriptionTrojan Proxy Service Afternetwork.target[Service] Typesimple ExecStart/home/cui/Downloads/trojan/trojan -c /home/cui/Downloads/trojan/config.json Restarton-failur…...

高效查询:位图、B+树

1. 位图&#xff08;BitMap&#xff09;与布隆过滤器&#xff08;Bloom Filter&#xff09; 1.1. 问题背景与解决方案 问题背景 场景&#xff1a;网页爬虫判重 搜索引擎的爬虫会不断地解析网页中的链接并继续爬取。一个网页可能在多个页面中出现&#xff0c;容易重复爬取。…...

HashMap的扩容机制

在添加元素或初始化的时候需要调用resize方法进行扩容&#xff0c;第一次添加数据初始化数组长度为16&#xff0c;以后每次每次扩容都是达到了扩容阈值&#xff08;数组长度 * 0.75&#xff09; 每次扩容的时候&#xff0c;都是扩容之前容量的2倍&#xff1b; 扩容之后&#…...

从坏道扫描到错误修复:HD Tune实战指南

一、硬盘检测的必要性 随着计算机使用时间的增加&#xff0c;机械硬盘和固态硬盘都会出现不同程度的性能衰减。定期进行硬盘健康检查可以&#xff1a;及时发现潜在故障&#xff1b;预防数据丢失风险&#xff1b;掌握存储设备实际状态。 二、HD Tune功能解析 性能测试&#x…...

Leetcode 3553. Minimum Weighted Subgraph With the Required Paths II

Leetcode 3553. Minimum Weighted Subgraph With the Required Paths II 1. 解题思路2. 代码实现 题目链接&#xff1a;3553. Minimum Weighted Subgraph With the Required Paths II 1. 解题思路 这一题很惭愧&#xff0c;并没有自力搞定&#xff0c;是看了大佬们的解答才有…...

算法加训之最短路 上(dijkstra算法)

目录 P4779 【模板】单源最短路径&#xff08;标准版&#xff09;&#xff08;洛谷&#xff09; 思路 743. 网络延迟时间&#xff08;力扣&#xff09; 思路 1514.概率最大路径&#xff08;力扣&#xff09; 思路 1631.最小体力消耗路径 思路 1976. 到达目的地的方案数 …...

01 Nginx安装及基本配置

01 Nginx安装 # 官网&#xff1a;https://nginx.org/en/ # 点击下载图1 Nginx下载官网 # https://nginx.org/en/download.html # 全是各个平台的源码包图2 Nginx下载版本 # 找到最下面的stable and mainline(稳定版和主线版)图3 找到最下面的稳定版 # https://nginx.org/en/li…...

ABP vNext 多租户系统实现登录页自定义 Logo 的最佳实践

&#x1f680; ABP vNext 多租户系统实现登录页自定义 Logo 的最佳实践 &#x1f9ed; 版本信息与运行环境 ABP Framework&#xff1a;v8.1.5.NET SDK&#xff1a;8.0数据库&#xff1a;PostgreSQL&#xff08;支持 SQLServer、MySQL 等&#xff09;BLOB 存储&#xff1a;本地…...

​Docker 网络

目录 ​前言 ​1. Docker 网络模式​ ​2. 默认 bridge 网络详解​ ​​&#xff08;1&#xff09;特点​ ​​&#xff08;2&#xff09;操作示例​ ​3. host 网络模式​ ​​&#xff08;1&#xff09;特点​ ​​&#xff08;2&#xff09;操作示例​ ​4. overlay…...

btc交易所关键需求区 XBIT反弹与上涨潜力分析​​

在加密货币市场的浪潮中&#xff0c;狗狗币&#xff08;DOGE&#xff09;近期的走势吸引了众多投资者的目光。根据XBIT分析&#xff0c;狗狗币刚刚踏入关键需求区&#xff0c;此前虽从高点大幅下跌了10%&#xff0c;但XBIT去中心化交易所平台分析师认为&#xff0c;短期内它有望…...

深度剖析:YOLOv8融入UNetv2 SDI模块的性能提升之旅

文章目录 一、引言二、SDI多层次特征融合模块概述&#xff08;一&#xff09;背景和动机&#xff08;二&#xff09;模块设计原理 三、SDI模块实现&#xff08;一&#xff09;关键代码结构&#xff08;二&#xff09;代码解析 四、将SDI模块融入YOLOv8&#xff08;一&#xff0…...

图像定制大一统?字节提出DreamO,支持人物生成、 ID保持、虚拟试穿、风格迁移等多项任务,有效解决多泛化性冲突。

字节提出了一个统一的图像定制框架DreamO&#xff0c;支持人物生成、 ID保持、虚拟试穿、风格迁移等多项任务&#xff0c;不仅在广泛的图像定制场景中取得了高质量的结果&#xff0c;而且在适应多条件场景方面也表现出很强的灵活性。现在已经可以支持消费级 GPU&#xff08;16G…...

spark数据处理练习题详解【下】

12. (单选题) def main(args: Array[String]): Unit { println(func1("张三",f1)) } def func1(name:String,fp:(________________)): String { fp(name) } def f1(s:String): String { "welcome "s } 选择填空&#xff08;&#xff09; A.String>S…...

Vue基础(11)_条件渲染

原生css想让显示的元素隐藏&#xff0c;方式有以下几点&#xff1a; display: none; opacity: 0; visibility: hidden; 那么vue中是怎样实现元素显示/隐藏的呢&#xff1f; 条件渲染 v-show 写法&#xff1a;v-show"表达式" 判断&#xff1a;表达式转换为布尔值(tr…...

湖北理元理律师事务所:债务优化服务的四维创新实践

在债务问题普遍影响家庭经济稳定的当下&#xff0c;专业法律服务机构的价值不仅在于提供解决方案&#xff0c;更需构建可持续的服务生态。湖北理元理律师事务所通过“法律心理技术教育”四维服务体系&#xff0c;探索出一条兼顾债务化解与生活质量保障的创新路径。 服务模式创…...

ubuntu工控机固定设备usb串口号

ubuntu工控机固定设备usb串口号 1、多个USB设备的ID相同 ubuntu系统中的串口使用权限并没有对所有的用户进行开放&#xff0c;所以在使用代码对串口进行操作时&#xff0c;需要打开用户对串口的使用权限&#xff0c;否则在代码中会出现“串口无法打开的报错”&#xff0c;只有…...

MongoDB的安装及简单使用

MongoDB 是一个开源的文档型 NoSQL 数据库​​&#xff0c;由 MongoDB Inc. 开发&#xff0c;专为灵活性和可扩展性设计。 特点&#xff1a; ​​1.文档模型​​&#xff1a;数据以 BSON&#xff08;二进制 JSON&#xff09;格式存储&#xff0c;支持嵌套结构。 ​​2.动态 S…...

卷积神经网络进阶:转置卷积与棋盘效应详解

【内容摘要】 本文深入解析卷积神经网络中的转置卷积&#xff08;反卷积&#xff09;技术&#xff0c;重点阐述标准卷积与转置卷积的计算过程、转置卷积的上采样作用&#xff0c;以及其常见问题——棋盘效应的产生原因与解决方法&#xff0c;为图像分割、超分辨率等任务提供理论…...

Linux进程信号(三)之信号产生2

文章目录 4. 由软件条件产生信号5. 硬件异常产生信号模拟一下除0错误和野指针异常除0错误野指针错误 总结思考一下 4. 由软件条件产生信号 SIGPIPE是一种由软件条件产生的信号,在“管道”中已经介绍过了。 软件条件不就绪&#xff0c;很明显这个软件条件没有直接报错&#xff…...

【AWS入门】Amazon SageMaker简介

【AWS入门】Amazon SageMaker简介 [AWS Essentials] Brief Introduction to Amazon SageMaker By JacksonML 机器学习(Machine Learning&#xff0c;简称ML) 是当代流行的计算机科学分支技术。通常&#xff0c;人们在本地部署搭建环境&#xff0c;以满足机器学习的要求。 AWS…...

MySQL--day2--基本的select语句

&#xff08;以下内容全部来自上述课程&#xff09; SQL概述 结构化查询语句 1. SQL分类 DDL&#xff1a;数据定义&#xff08;definition&#xff09;语言&#xff1a;create、drop、alter… DML&#xff1a;数据操作&#xff08;manipulation&#xff09;语言&#xff…...

程序代码篇---python获取http界面上按钮或者数据输入

文章目录 前言 前言 本文简单接受了python获取http界面上按钮或者数据输入...

网络安全利器:蜜罐技术详解

蜜罐是网络安全领域中一种主动防御和情报收集的重要工具。本文将深入探讨蜜罐技术的原理、类型、应用场景以及部署注意事项。 1. 什么是蜜罐? 蜜罐(Honeypot)是一种安全资源,其价值在于被探测、攻击或未经授权使用。简单来说,蜜罐就是一个诱饵系统,用来吸引黑客的注意力…...

回溯实战篇3

文章目录 前言排列全排列全排列II 棋盘问题N皇后解数独 其他递增子序列重新安排行程 前言 今天继续带大家进行回溯的实战篇3&#xff0c;去学习如何用回溯的方法去解决排列和棋盘以及其他用回溯方法解决的问题&#xff0c;最重要的就是学会回溯三部曲的构建&#xff0c;一文带…...

Spark 基础自定义分区器

&#xff08;一&#xff09;什么是分区 【复习提问&#xff1a;RDD的定义是什么&#xff1f;】 在 Spark 里&#xff0c;弹性分布式数据集&#xff08;RDD&#xff09;是核心的数据抽象&#xff0c;它是不可变的、可分区的、里面的元素并行计算的集合。 在 Spark 中&#xf…...

【提高+/省选−】洛谷P1495 —— 【模板】中国剩余定理(CRT)/ 曹冲养猪

见&#xff1a;P1495 【模板】中国剩余定理&#xff08;CRT&#xff09;/ 曹冲养猪 - 洛谷 题目描述 自从曹冲搞定了大象以后&#xff0c;曹操就开始捉摸让儿子干些事业&#xff0c;于是派他到中原养猪场养猪&#xff0c;可是曹冲满不高兴&#xff0c;于是在工作中马马虎虎&a…...

系统架构设计师考前冲刺笔记-第1章-系统工程与信息系统基础

文章目录 第1章 系统工程与信息系统基础大纲13 DSS5678 BSP910 SCM11 OLAP12 OLAP14 BRP15 集成16 企业门户19 边缘计算 第1章 系统工程与信息系统基础 大纲 1 3 DSS DSS 决策支持系统 Decision Support System 5 6 7 8 BSP 9 10 SCM 注意&#xff1a;生产计划 11 OLAP O…...

Vue环境下数据导出Excel的全面指南

文章目录 1. 前言2. 原生JavaScript实现方案2.1 使用Blob对象和URL.createObjectURL2.2 使用Base64编码实现 3. 常用第三方库方案3.1 使用SheetJS (xlsx)3.2 使用ExcelJS3.3 使用vue-json-excel 4. 服务器端导出方案4.1 前端请求服务器生成Excel4.2 使用Web Worker处理大数据导…...

Linux下 使用 SSH 完成 Git 绑定 GitHub

文章目录 1、检查 SSH2、生成 SSH key3、添加 SSH key4、验证绑定是否成功 1、检查 SSH Git Bash 中输入ssh命令&#xff0c;查看本机是否安装 SSH&#xff1a; 2、生成 SSH key &#xff08;1&#xff09;输入 ssh-keygen -t rsa 命令&#xff0c;表示我们指定 RSA 算法生…...

Jsoup库和Apache HttpClient库有什么区别?

Jsoup 和 Apache HttpClient 是两个功能不同的库&#xff0c;它们在 Java 开发中被广泛使用&#xff0c;但用途和功能有明显的区别&#xff1a; Jsoup 用途&#xff1a;Jsoup 是一个用于解析 HTML 文档的库。它提供了非常方便的方法来抓取和解析网页内容&#xff0c;提取和操作…...

安全漏洞频发,如何加强防护措施?

当系统安全漏洞频发时&#xff0c;应从代码安全审查、自动化漏洞扫描、权限控制与访问管理、员工安全意识培训等四个关键维度加强防护。其中&#xff0c;代码安全审查是防止漏洞渗透的第一道防线。企业应将代码安全审查纳入CI/CD流程&#xff0c;实施静态代码分析和依赖包检查机…...

Text models —— BERT,RoBERTa, BERTweet,LLama

BERT 什么是BERT&#xff1f; BERT&#xff0c;全称Bidirectional Encoder Representations from Transformers&#xff0c;BERT是基于Transformer的Encoder&#xff08;编码器&#xff09;结构得来的&#xff0c;因此核心与Transformer一致&#xff0c;都是注意力机制。这种…...