6个版本
0.1.8 | 2024年3月28日 |
---|---|
0.1.6 | 2024年3月28日 |
#833 in 数据库接口
每月46次下载
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?;
贡献
欢迎提交拉取请求。对于重大更改,请先提出问题以讨论您希望更改的内容。
请确保适当地更新测试。
许可证
依赖项
~6–18MB
~252K SLoC