#vector-database #cedar #embedding #db #openai #embed #collection

bin+lib cedar-db

基于Rust的内存向量数据库,用于语义搜索

1 个不稳定版本

0.1.0 2023年6月11日

#2612数据库接口

自定义许可

37KB
919

Cedar

Cedar提供了一个易于设置的内存向量数据库,您可以将它嵌入到您的Rust应用程序中。

    // 1. initialize db
    let db = DuckDB::new(Default::default())?;
    db.init()?;

    // 2. initialize embedding function (could be OpenAI, Chrome, etc)
    let embedding_fn = SentenceTransformerEmbeddings::new();
    // Or use OpenAI embeddings:
    let embedding_fn = OpenAIEmbeddingFunction::new(
        "<api_key>".to_string(),
    );

    // 3. initialize client
    let mut client = LocalClient::init(db, embedding_fn)?;

    // 4. create a collection
    let mut collection = client.create_collection("collection1")?;

    // 5. push documents to the store
    let docs = &[
        Document {
            text: "this is about macbooks".to_string(),
            metadata: json!({ "source": "laptops" }),
            id: Uuid::new_v4(),
        },
        Document {
            text: "lychees are better than mangoes".to_string(),
            metadata: json!({ "source": "facts" }),
            id: Uuid::new_v4(),
        },
    ];
    collection.add_documents(docs)?;

    // 6. query the vector store for matching documents
    let k = 1;
    let res = collection.query_documents(&["which one is the better fruit?"], k, json!({ "source": "facts" }))?;

安装

要在您的项目中使用cedar,首先将其添加到您的 Cargo.toml 文件中。(独立的cedar服务器即将推出!)

[dependencies]
cedar = "0.1.0"

cedar 使用PyTorch的 tch-rs 绑定。要设置绑定,请按照以下步骤操作

  1. https://pytorch.ac.cn/get-started/locally/ 下载 libtorch。此包需要 v2.0.0 版本:如果此版本不再在“入门”页面上可用,则可以通过修改目标链接来访问文件,例如,Linux版本与CUDA11的 https://download.pytorch.org/libtorch/cu118/libtorch-cxx11-abi-shared-with-deps-2.0.0%2Bcu118.zip注意:当使用来自crates.iorust-bert 作为依赖项时,请检查已发布包的 readme 中要求的 LIBTORCH,因为它可能与此处记录的版本不同(适用于当前存储库版本)。

  2. 将库解压到您选择的文件夹

  3. 设置以下环境变量

Linux

export LIBTORCH=/path/to/libtorch
export LD_LIBRARY_PATH=${LIBTORCH}/lib:$LD_LIBRARY_PATH

macOS + Homebrew

brew install pytorch jq
export LIBTORCH=$(brew --cellar pytorch)/$(brew info --json pytorch | jq -r '.[0].installed[0].version')
export LD_LIBRARY_PATH=${LIBTORCH}/lib:$LD_LIBRARY_PATH

依赖项

~43–58MB
~1M SLoC