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

chromadb

chromadb是一个轻量化的向量数据库,可以和llama-index等RAG框架使用。底层基于sqllite。

Getting Started - Chroma Docs

1、安装  $pip install chromadb

pip install chromadb-client  --在CS模式下,如果机器A上只需要安装客户端

2、可以使用客户端,服务端模式

$chroma run --path ./db_path

Saving data to: ./db_path
Connect to Chroma at: http://localhost:8000
--可以看到./db_path目录下自动生成了 chroma.sqlite3 这个文件

客户端连接

import chromadb
client = chromadb.HttpClient(host='localhost', port=8000)

 

也可以使用客户端内嵌模式

import chromadb
chroma_client = chromadb.Client()

下面这个是有持久化的客户端内嵌

client = chromadb.PersistentClient(path="/path/to/save/to")

3、创建一个集合

collection = client.get_or_create_collection(name="my_collection")
默认使用all-MiniLM-L6-v2 embedding,可以设置自己的embedding函数

collection = client.get_or_create_collection(name="my_collection", embedding_function=emb_fn)

4、几个简单函数

collection.count()
collection.get()


5、添加文档

collection.upsert(
    documents=["北京的旅游景点很多", "西安有很多大学"],
    metadatas=[{"source": "my_source"}, {"source": "my_source"}],
    ids=["id1", "id2"]
)

更新文档

collection.upsert(
    documents=["北京的旅游景点很多", "西安有很多大学"],
    metadatas=[{"source": "my_source"}, {"source": "my_source"}],
    ids=["id1", "id2"]
)

6、查找最相似的文档

collection.query(query_texts=['西北'])

collection.query(query_texts=['hello'],include=['embeddings']) --显示embeddings

collection.query(query_texts="美食",n_results=2,where_document={"$contains":"西安"})--设置返回的记录数,根据文档内容过滤

http://www.dtcms.com/a/113572.html

相关文章:

  • Swift 扩展
  • 微服务架构与中台的关系
  • 高通camx ThreadManager
  • 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的未来:从微服务到云原生的演进
  • Hyperlane框架:下一代高性能Rust Web框架 [特殊字符]
  • 学习笔记,DbContext context 对象是保存了所有用户对象吗
  • ring语言,使用vscode编辑器
  • AtCoder Beginner Contest 399 D,F 题解
  • 对迭代器模式的理解
  • Arduino示例代码讲解:Knock Sensor 敲击感知器
  • 每日一题(小白)模拟娱乐篇14
  • BN测试和训练时有什么不同, 在测试时怎么使用?
  • 【C++项目】从零实现RPC框架「四」:业务层实现与项目使用
  • 【51单片机】2-7【I/O口】点亮数码管
  • 线程池的工作原理
  • 线代[12]|《高等几何》陈绍菱(1984.9)(文末有对三大空间的分析及一个合格数学系毕业生的要求)
  • Python 语法学习 1(类比 java 学习)-附Python 中 self
  • 前端用用jsonp的方式解决跨域问题
  • [ICLR 2025]Biologically Plausible Brain Graph Transformer
  • Reids 的io并发模型
  • 程序化广告行业(60/89):算法优化与DSP系统实例解析
  • Linux系统程序设计:从入门到高级Day03
  • 第八章:流量治理_《凤凰架构:构建可靠的大型分布式系统》
  • DDPM 做了什么
  • 2007-2019年各省地方财政其他支出数据
  • 格式工厂怎样插入内置音频文件
  • 硬件工程师面试问题(五):蓝牙面试问题与详解
  • 在响应式网页的开发中使用固定布局、流式布局、弹性布局哪种更好
  • vllm作为服务启动,无需额外编写sh文件,一步到位【Ubuntu】
  • 『Linux_网络』 第一章 网络基础概念