13 个版本 (7 个重大更新)

0.10.1 2024 年 8 月 12 日
0.9.0 2024 年 8 月 12 日
0.5.1 2024 年 7 月 30 日

#316数据库接口

Download history 318/week @ 2024-07-22 531/week @ 2024-07-29 233/week @ 2024-08-05 409/week @ 2024-08-12

1,491 每月下载量

MIT 许可证

98KB
2.5K SLoC

dRAGon

dRAGon 是一个嵌入式的 Rust 向量数据库,提供了 RAG(检索增强生成)的辅助函数。它提供了一种强大而灵活的解决方案来管理和查询向量嵌入,非常适合各种自然语言处理和机器学习应用。

功能

  • 🚀 使用 PostgreSQL 和 pgvector 进行高效向量存储和检索
  • 📄 支持多种文件格式(PDF、TXT、DOCX、CSV、Markdown)
  • 🔍 相似性搜索功能
  • 📦 批量操作以添加和更新向量
  • 🧠 可定制的嵌入模型和通过 fastembed-rs 进行推理
  • 🌐 RESTful API 以便于集成
  • 🔄 结合全文和向量相似性的混合搜索
  • 🔒 嵌入式 PostgreSQL 以便于设置和部署

目录

安装

先决条件

  • Rust
  • protoc(协议缓冲区编译器)

安装 protoc

MacOS

brew install protobuf

Linux

sudo apt-get install protobuf-compiler

Windows

choco install protobuf

或者

scoop install protobuf

从源码构建

  1. 克隆仓库

    git clone https://github.com/portalcorp/dRAGon.git
    cd dRAGon
    
  2. 构建项目

    cargo build --release
    
  3. 运行服务器

    cargo run
    

使用方法

作为库使用

dRAGon 可以作为库在你的 Rust 项目中使用。以下是如何导入和使用它的示例

  1. 将 dRAGon 添加到你的项目中
cargo add dragon_db
  1. 在你的 Rust 代码中导入并使用 dRAGon
use dragon_db::start_server;

#[rocket::launch]
pub async fn run() -> _ {
    start_server().await
}

此代码片段演示了如何从您的自己的包中启动 dRAGon 服务器。它使用 dRAGon 库中的 start_server() 函数来配置和启动服务器。

API 使用

一旦服务器启动,您可以通过 HTTP 请求与之交互。以下是一些示例 API 调用

startLine: 282
endLine: 433

有关详细 API 文档,请参阅在运行服务器时可在 https://127.0.0.1:8000/docs 可用的 docs UI。

API 端点

有关详细 API 文档,请参阅在运行服务器时可在 https://127.0.0.1:8000/docs 可用的 docs UI。

配置

可以使用环境变量配置 dRAGon 服务器

  • ROCKET_PORT:服务器将监听的端口(默认:8000)
  • BASE_PATH:服务器将监听的基路径(默认:"/")
  • DB_PATH:存储数据库文件的路径(默认: "data/lance")
  • COLLECTION_NAME:默认集合的名称(默认: "vectors")
  • EMBEDDING_MODEL:要使用的嵌入模型(默认:“BGESmallENV15”)

开发

设置开发环境

  1. 安装Rust和Cargo:https://www.rust-lang.net.cn/tools/install
  2. 克隆仓库并导航到项目目录
  3. 安装依赖:cargo build
  4. 运行开发服务器:cargo run

测试

运行测试套件

cargo test -- --test-threads=1

我们禁用并行数据库测试,以避免创建多个临时数据库并增加内存使用。

许可证

dRAGon遵循MIT许可证发布。有关详细信息,请参阅LICENSE文件。

依赖关系

~87–125MB
~2M SLoC