asg017/sqlite-vec

GitHub: asg017/sqlite-vec

一个零依赖的 SQLite 向量搜索扩展,支持在 SQLite 中存储和查询多种格式的嵌入向量,无需部署独立的向量数据库。

Stars: 7051 | Forks: 289

# `sqlite-vec` [![](https://dcbadge.vercel.app/api/server/VCtQ8cGhUs)](https://discord.gg/Ve7WeCJFXk) 一个极小、“足够快”的向量搜索 SQLite 扩展,可在任何地方运行!是 [`sqlite-vss`](https://github.com/asg017/sqlite-vss) 的继任者 - 在 `vec0` 虚拟表中存储和查询 float、int8 和 binary 向量 - 使用纯 C 语言编写,无依赖,可在 SQLite 运行的任何地方运行 (Linux/MacOS/Windows,通过 WASM 在浏览器中,Raspberry Pis 等) - 在元数据、辅助列或分区键列中存储非向量数据

Mozilla Builders logo

sqlite-vec is a Mozilla Builders project, with additional sponsorship from Fly.io , Turso, SQLite Cloud, and Shinkai. See the Sponsors section for more details.

## 安装 请参阅 [安装 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/installation.html) 了解更多详情。 | Language | 安装命令 | 更多信息 | | | -------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Python | `pip install sqlite-vec` | [Python 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/python.html) | [![PyPI](https://img.shields.io/pypi/v/sqlite-vec.svg?color=blue&logo=python&logoColor=white)](https://pypi.org/project/sqlite-vec/) | | Node.js | `npm install sqlite-vec` | [Node.js 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/js.html) | [![npm](https://img.shields.io/npm/v/sqlite-vec.svg?color=green&logo=nodedotjs&logoColor=white)](https://www.npmjs.com/package/sqlite-vec) | | Ruby | `gem install sqlite-vec` | [Ruby 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/ruby.html) | ![Gem](https://img.shields.io/gem/v/sqlite-vec?color=red&logo=rubygems&logoColor=white) | | Go | `go get -u github.com/asg017/sqlite-vec/bindings/go` | [Go 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/go.html) | [![Go Reference](https://pkg.go.dev/badge/github.com/asg017/sqlite-vec-go-bindings/cgo.svg)](https://pkg.go.dev/github.com/asg017/asg017/sqlite-vec-go-bindings/cgo) | | Rust | `cargo add sqlite-vec` | [Rust 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/rust.html) | [![Crates.io](https://img.shields.io/crates/v/sqlite-vec?logo=rust)](https://crates.io/crates/sqlite-vec) | | Datasette | `datasette install datasette-sqlite-vec` | [Datasette 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/datasette.html) | [![Datasette](https://img.shields.io/pypi/v/datasette-sqlite-vec.svg?color=B6B6D9&label=Datasette+plugin&logoColor=white&logo=python)](https://datasette.io/plugins/datasette-sqlite-vec) | | rqlite | `rqlited -extensions-path=sqlite-vec.tar.gz` | [rqlite 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/rqlite.html) | [![rqlite](https://img.shields.io/badge/rqlite-sqlite_extensions-blue)](https://rqlite.io/docs/guides/extensions/) | | `sqlite-utils` | `sqlite-utils install sqlite-utils-sqlite-vec` | [`sqlite-utils` 版 `sqlite-vec`](https://alexgarcia.xyz/sqlite-vec/sqlite-utils.html) | [![sqlite-utils](https://img.shields.io/pypi/v/sqlite-utils-sqlite-vec.svg?color=B6B6D9&label=sqlite-utils+plugin&logoColor=white&logo=python)](https://datasette.io/plugins/datasette-sqlite-vec) | | Github Release | | | ![GitHub tag (latest SemVer pre-release)](https://img.shields.io/github/v/tag/asg017/sqlite-vec?color=lightgrey&include_prereleases&label=Github+release&logo=github) | ## 使用示例 ``` .load ./vec0 create virtual table vec_examples using vec0( sample_embedding float[8] ); -- vectors can be provided as JSON or in a compact binary format insert into vec_examples(rowid, sample_embedding) values (1, '[-0.200, 0.250, 0.341, -0.211, 0.645, 0.935, -0.316, -0.924]'), (2, '[0.443, -0.501, 0.355, -0.771, 0.707, -0.708, -0.185, 0.362]'), (3, '[0.716, -0.927, 0.134, 0.052, -0.669, 0.793, -0.634, -0.162]'), (4, '[-0.710, 0.330, 0.656, 0.041, -0.990, 0.726, 0.385, -0.958]'); -- KNN style query select rowid, distance from vec_examples where sample_embedding match '[0.890, 0.544, 0.825, 0.961, 0.358, 0.0196, 0.521, 0.175]' order by distance limit 2; /* ┌───────┬──────────────────┐ │ rowid │ distance │ ├───────┼──────────────────┤ │ 2 │ 2.38687372207642 │ │ 1 │ 2.38978505134583 │ └───────┴──────────────────┘ */ ``` ## 另见 - [**`sqlite-ecosystem`**](https://github.com/asg017/sqlite-ecosystem),我开发的更多第三方 SQLite 扩展 - [**`sqlite-rembed`**](https://github.com/asg017/sqlite-rembed),从远程 API(如 OpenAI/Nomic/Ollama)生成文本嵌入,适用于测试和 SQL 脚本 - [**`sqlite-lembed`**](https://github.com/asg017/sqlite-lembed),从 `.gguf` 格式的嵌入模型在本地生成文本嵌入
标签:Apex, Embedding, int8向量, LangChain, MITM代理, Mozilla Builders, RAG, SQLite, SQLite扩展, WASM, WebAssembly, 二进制向量, 元数据存储, 可视化界面, 向量搜索, 向量数据库, 客户端加密, 客户端加密, 嵌入向量, 开源, 数据库插件, 无依赖, 日志审计, 本地AI, 机器学习, 检索增强生成, 相似度搜索, 纯C, 语义搜索, 轻量级, 边缘计算, 逆向工具