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 服务是两套不同的运行方式。

相关推荐
阿里云大数据AI技术10 小时前
穹彻智能 X 阿里云:自动化 UMI 数据处理产线,驱动先进具身大脑
人工智能
word10 小时前
从零接入 MCP:把任意工具变成 AI 的能力(协议级实践)
人工智能·前端框架
CHENGQUAN_kenan10 小时前
亚马逊境外店铺利润境内回流:税务规则、佛山实操与自查要点
大数据·经验分享·教育电商
冬哥聊AI10 小时前
字节面试官:RAG不就是给大模型挂个知识库?别把这题答浅了
人工智能
9i编程10 小时前
AI 只解决眼前那个坑【上篇】:来源、图片、鲁棒性,把能聊一处一处补齐
人工智能·openai·ai编程
晴天1610 小时前
AgentLoop分享(上): 让 AI 真正“自主干活“-Day15
人工智能·python
wWYy.10 小时前
Mysql:有哪些锁?
数据库·mysql
李可以量化10 小时前
Tornado 从了解到精通(一)下:异步与非阻塞 IO 核心原理
java·数据库·tornado
phoenix@Capricornus10 小时前
从统计决策到贝叶斯估计
人工智能·算法·机器学习
NutShell Wang10 小时前
国产全模态开源潮:从语言模型到视频模型,中国开源生态再升级
人工智能·语言模型·开源·大模型·音视频·多模态·vibe coding