创建集合
Chroma 集合是带名称创建的。集合名称会用于 URL 中,因此对其有一些限制:- 名称长度必须在 3 到 512 个字符之间。
- 名称必须以小写字母或数字开头和结尾,中间可以包含点、连字符和下划线。
- 名称不得包含两个连续的点。
- 名称不得是有效的 IP 地址。
嵌入函数
当您向集合添加文档时,Chroma 将使用集合的 嵌入函数 (embedding function) 为您进行嵌入。Chroma 默认使用 sentence transformer 嵌入函数。 Chroma 还提供各种嵌入函数,您可以在创建集合时提供。例如,您可以使用OpenAIEmbeddingFunction 创建集合:- Python
- TypeScript
- Rust
安装 使用 除了让 Chroma 嵌入文档外,您还可以在向集合 添加数据 时直接提供嵌入。在这种情况下,您的集合将不会设置嵌入函数,您将负责在添加数据和查询时直接提供嵌入。
openai 包OpenAIEmbeddingFunction 创建集合集合元数据
在创建集合时,您可以传递可选的metadata 参数,向集合添加元数据键值对映射。这对于添加关于集合的常规信息非常有用,例如创建时间、集合中存储的数据描述等。
获取集合
- Python
- TypeScript
- Rust
集合创建后,有几种方法可以获取它。默认情况下,当前版本的 Chroma 会在服务器上存储您用于创建集合的嵌入函数,以便客户端在后续的“获取”操作中为您解析它。如果您运行的是较旧版本的 Chroma 客户端或服务器(早于 1.1.13),则在使用
get_collection 函数将根据名称从 Chroma 获取集合。它返回一个包含 name、metadata、configuration 和 embedding_function 的 Collection 对象。get_or_create_collection 函数的行为类似,但如果集合不存在则会创建它。您可以向其传递 create_collection 预期的相同参数,如果集合已存在,客户端将忽略这些参数。list_collections 函数返回您 Chroma 数据库中的所有集合。集合将按创建时间从旧到新排序。list_collections 最多返回 100 个集合。如果您有超过 100 个集合,或者只需要获取集合的一个子集,可以使用 limit 和 offset 参数。get_collection 时需要提供与创建集合时相同的嵌入函数。修改集合
集合创建后,您可以使用modify 方法修改其名称、元数据以及 索引配置 的元素。
删除集合
您可以按名称删除集合。此操作将删除集合、其所有嵌入以及关联的文档和记录元数据。删除集合具有破坏性且不可逆。
便捷方法
集合还提供了一些有用的便捷方法:count- 返回集合中的记录数量。peek- 返回集合中的前 10 条记录。