pmeier / lancedb

Developer-friendly, serverless vector database for AI applications. Easily add long-term memory to your LLM apps!

Home Page:https://lancedb.github.io/lancedb/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LanceDB Logo

Developer-friendly, database for multimodal AI

LanceDB lancdb Blog Discord Twitter

LanceDB Multimodal Search


LanceDB is an open-source database for vector-search built with persistent storage, which greatly simplifies retrieval, filtering and management of embeddings.

The key features of LanceDB include:

  • Production-scale vector search with no servers to manage.

  • Store, query and filter vectors, metadata and multi-modal data (text, images, videos, point clouds, and more).

  • Support for vector similarity search, full-text search and SQL.

  • Native Python and Javascript/Typescript support.

  • Zero-copy, automatic versioning, manage versions of your data without needing extra infrastructure.

  • GPU support in building vector index(*).

  • Ecosystem integrations with LangChain πŸ¦œοΈπŸ”—, LlamaIndex πŸ¦™, Apache-Arrow, Pandas, Polars, DuckDB and more on the way.

LanceDB's core is written in Rust πŸ¦€ and is built using Lance, an open-source columnar format designed for performant ML workloads.

Quick Start

Javascript

npm install vectordb
const lancedb = require('vectordb');
const db = await lancedb.connect('data/sample-lancedb');

const table = await db.createTable({
  name: 'vectors',
  data:  [
    { id: 1, vector: [0.1, 0.2], item: "foo", price: 10 },
    { id: 2, vector: [1.1, 1.2], item: "bar", price: 50 }
  ]
})

const query = table.search([0.1, 0.3]).limit(2);
const results = await query.execute();

// You can also search for rows by specific criteria without involving a vector search.
const rowsByCriteria = await table.search(undefined).where("price >= 10").execute();

Python

pip install lancedb
import lancedb

uri = "data/sample-lancedb"
db = lancedb.connect(uri)
table = db.create_table("my_table",
                         data=[{"vector": [3.1, 4.1], "item": "foo", "price": 10.0},
                               {"vector": [5.9, 26.5], "item": "bar", "price": 20.0}])
result = table.search([100, 100]).limit(2).to_pandas()

Blogs, Tutorials & Videos

About

Developer-friendly, serverless vector database for AI applications. Easily add long-term memory to your LLM apps!

https://lancedb.github.io/lancedb/

License:Apache License 2.0


Languages

Language:Python 40.5%Language:Rust 33.9%Language:TypeScript 23.8%Language:JavaScript 0.9%Language:Shell 0.5%Language:Dockerfile 0.2%Language:PowerShell 0.2%