AI向量数据库chromadb的swagger-ui的运行使用教程

🚀 Chroma v2 API 快速使用指南

你现在打开的是 ChromaDB v2 版本的 Swagger UI 文档localhost:8000/docs),这是新版多租户/多数据库架构的 API 接口。下面我一步步教你怎么用它来操作集合、插入和查询数据。


1. 先理解核心概念

  • Tenant(租户) :默认是 default_tenant
  • Database(数据库) :默认是 default_database
  • CRN(Chroma Resource Name) :格式为 crn:{tenant}:{database}:{collection_name},用来唯一标识一个集合

2. 常用接口操作示例(以 HTTP 请求为例)

🔐 1)查看当前用户身份

http 复制代码
GET /api/v2/auth/identity

作用 :确认你当前连接的租户和数据库信息。
响应示例

json 复制代码
{
  "user_id": "default_user",
  "tenant": "default_tenant",
  "database": "default_database"
}

📚 2)列出所有集合

http 复制代码
GET /api/v2/tenants/{tenant}/databases/{database}/collections

替换参数

  • {tenant}default_tenant
  • {database}default_database

作用:获取当前数据库下的所有集合名称。


🆕 3)创建一个新集合

http 复制代码
POST /api/v2/tenants/{tenant}/databases/{database}/collections
Content-Type: application/json

{
  "name": "my_collection",
  "metadata": {"description": "测试集合"}
}

作用 :创建名为 my_collection 的集合。
成功响应 :会返回该集合的 CRN,比如 crn:default_tenant:default_database:my_collection


📄 4)按 CRN 获取集合信息

http 复制代码
GET /api/v2/collections/{crn}

替换参数

  • {crn} → 上一步得到的 crn:default_tenant:default_database:my_collection

作用:查看集合的元数据、配置等信息。


➕ 5)向集合中添加数据(核心操作)

接口路径:POST /api/v2/collections/{crn}/add

(在 Swagger 里往下翻就能找到)

请求体示例

json 复制代码
{
  "ids": ["id1", "id2"],
  "documents": ["这是第一条文档", "这是第二条文档"],
  "embeddings": [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]],
  "metadatas": [{"source": "test"}, {"source": "test"}]
}

如果你用了自动 Embedding 模型,embeddings 字段可以省略,Chroma 会自动生成。


🔍 6)查询集合数据

接口路径:POST /api/v2/collections/{crn}/query

请求体示例

json 复制代码
{
  "query_embeddings": [[1.1, 2.1, 3.1]],
  "n_results": 2,
  "include": ["documents", "distances"]
}

作用 :根据向量相似度检索最相似的文档。
响应示例

json 复制代码
{
  "ids": [["id1", "id2"]],
  "documents": [["这是第一条文档", "这是第二条文档"]],
  "distances": [[0.03, 0.15]]
}

3. 在 Swagger UI 里直接测试

  1. 打开 localhost:8000/docs
  2. 点击任意接口(比如 POST /api/v2/tenants/{tenant}/databases/{database}/collections
  3. 点击 Try it out
  4. 填入 tenantdatabase 参数(默认都是 default_tenantdefault_database
  5. 在 Request body 里填入 JSON 数据
  6. 点击 Execute,直接看到响应结果

4. Python 客户端调用(推荐)

如果你不想写原生 HTTP,用新版 chromadb Python 客户端更方便:

python 复制代码
import chromadb
from chromadb.config import Settings

# 连接到本地 Chroma 服务
client = chromadb.HttpClient(host="localhost", port=8000)

# 直接操作默认租户/数据库
coll = client.get_or_create_collection(name="my_collection")

# 添加数据
coll.add(
    ids=["id1", "id2"],
    documents=["这是第一条文档", "这是第二条文档"],
    embeddings=[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]
)

# 查询数据
results = coll.query(
    query_embeddings=[[1.1, 2.1, 3.1]],
    n_results=2
)
print(results)

5. 关键注意事项

  • 默认租户/数据库 :如果没特别配置,所有操作都用 default_tenantdefault_database 即可。
  • CRN 格式 :必须严格是 crn:{tenant}:{database}:{collection_name},不能写错。
  • 版本兼容 :v2 API 和老版本(v1)不兼容,所以你之前的 PersistentClient 代码如果是本地文件模式,和这个 HTTP 服务是两套不同的运行方式。

相关推荐
海兰3 分钟前
【第3篇-续】多模型多模态项目实现示例(增加OpenAI通用适配)附源代码
java·人工智能·spring boot·alibaba·spring ai
53AI4 分钟前
智能调度赋能交通行业:从经验驱动到数据智能的跨越
大数据·人工智能·知识库·智能调度·53ai
li星野5 分钟前
《零基础搞懂神经网络 & 手写AI:从神经元公式到PyTorch实战》
人工智能·深度学习·神经网络
澄澈青空~10 分钟前
有一个叫R2C,也有一个叫G2C
java·数据库·人工智能·c#
华盛AI12 分钟前
重磅!Anthropic Labs 正式推出 Claude Design!
人工智能
weixin_5860614612 分钟前
如何用 event.composedPath 获取事件触发经过的所有节点
jvm·数据库·python
SUNNY_SHUN13 分钟前
清华团队提出TFA-Net,用模板特征聚合破解工业异常检测中的“捷径学习“难题
人工智能·学习·视觉检测·github
CeshirenTester15 分钟前
GitHub变了:私有仓库也要“喂AI”?开发者该怎么应对
人工智能·github
程序猿阿伟20 分钟前
《QClaw重构开发的四个底层逻辑,看懂少走半年弯路》
人工智能·重构
通信小呆呆21 分钟前
当波束搜索遇见信道编码和反向传播:两种让“粗搜索”不再犯错的新思路
人工智能·信息与通信·信号处理·信道编码·波束扫描