Metadata-Version: 2.4
Name: langchain-lancedb
Version: 0.1.0
Summary: Langchain vector store for LanceDB.
Project-URL: Homepage, https://github.com/amany9000/langchain-vectorstore
Project-URL: Repository, https://github.com/amany9000/langchain-vectorstore
Project-URL: Issues, https://github.com/amany9000/langchain-vectorstore/issues
License: MIT
Requires-Python: <4.0.0,>=3.10.0
Requires-Dist: lancedb<1.0.0,>=0.3.0
Requires-Dist: langchain-core<2.0.0,>=1.2.0
Description-Content-Type: text/markdown

# LanceDB

Langchain Vector store for [LanceDB](https://github.com/lancedb/lancedb). Embedded database with local directory-based storage and approximate nearest neighbor search.

## Install

```bash
pip install langchain-lancedb
```

or

```bash
uv add langchain-lancedb
```

## API Reference

### `__init__`

```python
def __init__(
    self,
    embedding_function: Embeddings | None = None,
    uri: str | Path = "./.rag_cache/db/lancedb",
    table_name: str = "documents",
    namespace: str | None = None,
    **kwargs,
)
```

| Parameter | Type | Description |
|---|---|---|
| `embedding_function` | `Embeddings \| None` | Embedding function used to embed queries and texts (e.g., `FastEmbedEmbeddings`). |
| `uri` | `str \| Path` | URI for the LanceDB database (local directory path). Default `"./.rag_cache/db/lancedb"`. |
| `table_name` | `str` | Table name for storing documents. Default `"documents"`. |
| `namespace` | `str \| None` | Optional namespace prefix for the table (creates `{namespace}.{table_name}`). |

---

### `from_texts`

```python
def from_texts(
    cls,
    texts: list[str],
    embedding: Embeddings | None = None,
    metadatas: list[dict] | None = None,
    ids: list[str] | None = None,
    uri: str | Path = "./.rag_cache/db/lancedb",
    table_name: str | None = None,
    namespace: str | None = None,
    **kwargs,
) -> LanceDB
```

| Parameter | Type | Description |
|---|---|---|
| `texts` | `list[str]` | Texts to index. |
| `embedding` | `Embeddings \| None` | Embedding function. |
| `metadatas` | `list[dict] \| None` | Optional metadata dicts, one per text. |
| `ids` | `list[str] \| None` | Optional document IDs. Auto-generated via SHA-256 if not provided. |
| `uri` | `str \| Path` | URI for the LanceDB database. Default `"./.rag_cache/db/lancedb"`. |
| `table_name` | `str \| None` | Table name. Default `"documents"`. |
| `namespace` | `str \| None` | Optional namespace prefix for the table. |

**Returns:** `LanceDB` — a new vector store with the texts indexed.

---

### `add_texts`

```python
def add_texts(
    self,
    texts: list[str],
    metadatas: list[dict] | None = None,
    ids: list[str] | None = None,
    **kwargs,
) -> list[str]
```

| Parameter | Type | Description |
|---|---|---|
| `texts` | `list[str]` | Texts to add. |
| `metadatas` | `list[dict] \| None` | Optional metadata dicts, one per text. Defaults to `{}`. |
| `ids` | `list[str] \| None` | Optional document IDs. Auto-generated via SHA-256 if not provided. |

**Returns:** `list[str]` — the IDs of the added texts. On first call, automatically creates the LanceDB table with inferred schema.

---

### `delete`

```python
def delete(
    self,
    ids: list[str] | None = None,
    **kwargs,
) -> bool | None
```

| Parameter | Type | Description |
|---|---|---|
| `ids` | `list[str] \| None` | List of document IDs to remove. |

**Returns:** `bool \| None` — `True` if deletion succeeded, `False` if no table exists. Raises `ValueError` if `ids` is `None`.

---

### `similarity_search`

```python
def similarity_search(
    self,
    query: str,
    k: int = 4,
    **kwargs,
) -> list[Document]
```

| Parameter | Type | Description |
|---|---|---|
| `query` | `str` | Query text. |
| `k` | `int` | Number of documents to return. Default `4`. |

**Returns:** `list[Document]` — documents most similar to the query, ordered by distance (ascending).

---

### `similarity_search_with_score`

```python
def similarity_search_with_score(
    self,
    query: str,
    k: int = 4,
    **kwargs,
) -> list[tuple[Document, float]]
```

| Parameter | Type | Description |
|---|---|---|
| `query` | `str` | Query text. |
| `k` | `int` | Number of documents to return. Default `4`. |

**Returns:** `list[tuple[Document, float]]` — tuples of `(Document, distance)`. **Lower distance = more similar.** Uses LanceDB's built-in ANN search.