6个版本

0.1.8 2024年3月28日
0.1.6 2024年3月28日

#833 in 数据库接口

每月46次下载

MIT 许可证

23KB
420

Chroma Rust库

这是一个用于与ChromaDB向量数据库交互的Rust库。它旨在用于学习和教育目的。对于更高级的库,请查看chromadb

异步示例使用Tokio包。

1. 运行后端

以下是使用Docker运行ChromaDB后端的方法

默认配置

docker pull chromadb/chroma
docker run -p 8000:8000 chromadb/chroma

使用令牌和持久化存储进行身份验证

docker pull chromadb/chroma
docker run \
	-p 8000:8000 \
	-e chroma_server_auth_credentials_provider="chromadb.auth.token.tokenconfigserverauthcredentialsprovider" \
	-e chroma_server_auth_provider="chromadb.auth.token.tokenauthserverprovider" \
	-e chroma_server_auth_token_transport_header="x_chroma_token" \
	-e chroma_server_auth_credentials="pilou2024" \
	-v /path/to/persistent/storage/:/chroma/chroma \
	chromadb/chroma

2. 默认客户端

以下是创建默认客户端的基本示例

use chromadb_rs::client::{ChromaClient, ChromaClientParams};

let client = ChromaClient::new(ChromaClientParams::default());

3. 高级客户端

对于更高级的使用,您可以创建具有自定义参数的客户端

let mut hmap = HeaderMap::new();
hmap.insert("X-Chroma-Token", "test-token".parse().unwrap());

let settings = Settings {
    tenant: "my-tenant".to_string(),
    database: "my-database".to_string(),
}

let client = ChromaClient::new(ChromaClientParams {
    host: "localhost".to_string(),
    port: "8000".to_string(),
    ssl: false,
    headers: Some(hmap),
    settings: Some(settings), // Some(Settings::default()) for default settings
});

4. Chroma客户端方法

  • 心跳
let hb = client.heartbeat().await?;
  • 获取所有集合
let collections = client.list_collections().await?;
  • 创建不带元数据的集合
let new_collection = client.create_collection("test-name", None).await?;
  • 创建带有元数据的集合
let mut metadata = HashMap::new();
metadata.insert("key1", "value1");
metadata.insert("key2", "value2");

let new_collection = client
    .create_collection("test-name", Some(metadata)).await?;
  • 使用获取或创建创建集合
let new_collection = client.get_or_create_collection("test-name", None).await?;
  • 获取集合
let collection = client.get_collection("test-name").await?;
  • 删除集合
let deleted_collection = client.delete_collection("test-name").await?;

贡献

欢迎提交拉取请求。对于重大更改,请先提出问题以讨论您希望更改的内容。

请确保适当地更新测试。

许可证

MIT

依赖项

~6–18MB
~252K SLoC