Chroma-从入门到实践

import os
from dotenv import load_dotenv
load_dotenv()
True
# print(os.environ.get("OPENAI_API_KEY"))
# 1、安装
#!pip install chromadb
import chromadb
import numpy as np

1、基本使用

# 2、创建 Chroma 客户端(临时)
chroma_client = chromadb.Client()
# 3、创建集合
# 集合用于存储嵌入、文档以及任何其他元数据。集合会为您的嵌入和文档建立索引,并支持高效的检索和筛选。您可以创建一个集合,其名称如下:
collection = chroma_client.create_collection(name="test_collection_01")
# 4、向集合中添加一些文本文档
# Chroma 将存储您的文本并自动处理嵌入和索引。您还可以自定义嵌入模型。您必须为文档提供唯一的字符串 ID。

collection.add(
    documents=[
        "这是一份关于葡萄的文档",
        "这是一份关于土豆的文档"
    ],
    ids=["id1", "id2"]
)
# 5、查询集合
# 您可以使用查询文本列表来查询集合,Chroma 将返回n最相似的结果。就是这么简单!
results = collection.query(
    query_texts=["我想炒个菜,有哪些蔬菜?"], 
    n_results=2 # 返回多少条结果
)
print(results)
{'ids': [['id1', 'id2']], 'embeddings': None, 'documents': [['这是一份关于葡萄的文档', '这是一份关于土豆的文档']], 'uris': None, 'data': None, 'metadatas': [[None, None]], 'distances': [[0.8818705081939697, 0.9220271110534668]], 'included': [<IncludeEnum.distances: 'distances'>, <IncludeEnum.documents: 'documents'>, <IncludeEnum.metadatas: 'metadatas'>]}
results = collection.query(
    query_texts=["什么东西能吃?"], 
    n_results=2 # 返回多少条结果
)
print(results)
{'ids': [['id2', 'id1']], 'embeddings': None, 'documents': [['这是一份关于土豆的文档', '这是一份关于葡萄的文档']], 'uris': None, 'data': None, 'metadatas': [[None, None]], 'distances': [[0.6555243730545044, 0.7530038356781006]], 'included': [<IncludeEnum.distances: 'distances'>, <IncludeEnum.documents: 'documents'>, <IncludeEnum.metadatas: 'metadatas'>]}

6、检查结果

问题:我想炒个菜,有哪些蔬菜?

{
“ids”: [[“id1”, “id2”]],
“embeddings”: null,
“documents”: [[“这是一份关于葡萄的文档”, “这是一份关于土豆的文档”]],
“uris”: null,
“data”: null,
“metadatas”: [[null, null]],
“distances”: [[0.8818705081939697, 0.9220271110534668]],
“included”: [“distances”, “documents”, “metadatas”]
}

2、持久客户端

您可以配置 Chroma 从本地计算机保存和加载数据库,使用持久客户端。

数据将自动保存并在启动时加载(如果存在)。

client = chromadb.PersistentClient(path="data/")
client.heartbeat() # 纳秒级链接,用于确保客户端保持连接。
client.reset() # 清空并完全重置数据库。
Chroma FDP(Foundation Data Platform)是一个面向开发者和数据工程师的平台,旨在提供一个强大而灵活的工具集,用于处理、存储和查询大规模的向量数据。Chroma FDP 专为 AI 原生应用而设计,能够支持开发者快速构建和部署基于向量的搜索、推荐系统、语义相似性分析等应用。 ### 核心特性 - **高效的向量检索能力**:Chroma FDP 提供了高效的向量检索功能,能够在大规模数据集中快速找到最相似的向量,适合需要快速响应的应用场景。 - **简洁的 API 设计**:其 API 接口设计简洁明了,易于集成到现有的系统架构中,降低了开发者的使用门槛。 - **良好的扩展性**:Chroma FDP 支持从单机部署到分布式集群的多种部署方式,可以轻松应对数据量的增长和性能需求的提升[^4]。 ### 初始化与配置 要开始使用 Chroma FDP,首先需要安装相应的软件包。对于 Python 开发者来说,可以通过 pip 安装 Chroma 的客户端库。安装完成后,可以通过简单的代码示例来创建一个向量数据库实例,并执行基本的操作,如添加向量数据、执行查询等。 ```python from chroma import Client # 创建客户端实例 client = Client() # 创建一个新的集合(类似于数据库中的表) collection = client.create_collection("my_collection") # 添加一些向量数据 vectors = [ {"id": "vec1", "values": [1.0, 2.0, 3.0], "metadata": {"label": "A"}}, {"id": "vec2", "values": [4.0, 5.0, 6.0], "metadata": {"label": "B"}} ] collection.add(vectors) # 执行查询 query_vector = [1.0, 2.0, 3.0] results = collection.query(query_vector, n_results=2) print(results) ``` ### 管理与查询向量数据 Chroma FDP 提供了丰富的功能来管理和查询向量数据。除了基本的增删改查操作外,还支持复杂的查询条件,如基于元数据的过滤等。这些功能使得开发者可以更加灵活地利用向量数据构建复杂的应用程序[^3]。 ### 社区与文档资源 对于希望深入了解 Chroma FDP 的开发者而言,官方文档是一个不可或缺的资源。它不仅提供了详细的安装指南和 API 文档,还包括了多个实际案例和最佳实践,帮助开发者快速上手并高效地使用 Chroma FDP。此外,活跃的社区也是获取帮助和支持的重要途径[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值