Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/docs/extraction/custom-metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ You can upload custom metadata for documents during ingestion.
By uploading custom metadata you can attach additional information to documents,
and use it for filtering results during retrieval operations.
For example, you can add author metadata to your documents, and filter by author when you retrieve results.
To create filters, you use [Milvus Filtering Expressions](https://milvus.io/docs/boolean.md).
To create filters at query time, use predicates supported by [LanceDB SQL](https://lancedb.github.io/lancedb/sql/) against your table schema (custom fields are serialized into the `metadata` column with your ingested chunks). For a worked example, see the repository notebook linked at the end of this page.

Use this documentation to use custom metadata to filter search results when you work with [NeMo Retriever Library](overview.md).

Expand Down
27 changes: 15 additions & 12 deletions docs/docs/extraction/quickstart-library-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

Use the [Quick Start for NeMo Retriever Library](https://github.com/NVIDIA/NeMo-Retriever/blob/26.03/nemo_retriever/README.md) to set up and run the NeMo Retriever Library locally, so you can build a GPU‑accelerated, multimodal RAG ingestion pipeline that parses PDFs, HTML, text, audio, and video into LanceDB vector embeddings, integrates with Nemotron RAG models (locally or via NIM endpoints), which includes Ray‑based scaling with built‑in recall evaluation. Python 3.12 or later is required (see [Prerequisites](prerequisites.md)).

By default, library mode stores vectors in LanceDB under `./lancedb` in the current working directory; `uri="lancedb"` in the example below is that same default path, not an extra requirement.

## `run_pipeline`

The primary Python entry point for launching the Ray-based ingestion pipeline in library mode is `run_pipeline` in `nv_ingest.framework.orchestration.ray.util.pipeline.pipeline_runners`.
Expand All @@ -29,11 +31,9 @@ def main():
message_client_hostname="localhost",
)

# gpu_cagra accelerated indexing is not available in milvus-lite
# Provide a filename for milvus_uri to use milvus-lite
milvus_uri = "milvus.db"
collection_name = "test"
sparse = False
# LanceDB (default): embedded vector store; set uri/table_name as needed.
# For Milvus instead, use .vdb_upload(collection_name=..., milvus_uri="milvus.db", sparse=False, dense_dim=2048).
table_name = "test"

# do content extraction from files
ingestor = (
Expand All @@ -51,11 +51,10 @@ def main():
)
.embed()
.vdb_upload(
collection_name=collection_name,
milvus_uri=milvus_uri,
sparse=sparse,
# for llama-3.2 embedder, use 1024 for e5-v5
dense_dim=2048,
vdb_op="lancedb",
uri="lancedb",
table_name=table_name,
hybrid=False,
)
)

Expand Down Expand Up @@ -116,9 +115,13 @@ This chart shows some gadgets, and some very fictitious costs.
... document extract continues ...
```

## Step 3: Query Ingested Content
## Query ingested content (Milvus)

This step is optional and shows how to query your ingested content from Milvus. If you are using the default LanceDB path, see `data-store.md` for LanceDB query examples.

The following example uses `nvingest_retrieval` against a Milvus collection (for example data you uploaded with `milvus_uri`, including milvus-lite). If you ingested with **LanceDB** as in the previous example, use the LanceDB APIs, environment variables (`VDB_BACKEND`, `HYBRID`), and hybrid retrieval patterns described in [Data Upload](data-store.md) instead of this Milvus-specific helper.

To query for relevant snippets of the ingested content, and use them with an LLM to generate answers, use the following code.
To query for relevant snippets of Milvus-ingested content, and use them with an LLM to generate answers, use the following code.

```python
import os
Expand Down
3 changes: 2 additions & 1 deletion docs/docs/extraction/releasenotes-nv-ingest.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ Highlights for the 26.03 release include:
- VLM-based image caption enhancements:
- Infographics can be captioned
- Reasoning mode is configurable
- Enabled hybrid search with Lancedb
- **LanceDB is now the default vector database backend** for extraction and indexing; Milvus remains fully supported. For upload, hybrid search, and infrastructure options, see [Data Upload](data-store.md).
- Enabled hybrid search with LanceDB (BM25 full-text search combined with dense vectors and reciprocal rank fusion).
- Added retrieval_bench subfolder with generalizable agentic retrieval pipeline
- The project now uses UV as the primary environment and package manager instead of Conda, resulting in faster installs and simpler dependency handling
- Default Redis TTL increased from 1–2 hours to 48 hours so long-running jobs (e.g., VLM captioning) don’t expire before completion
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/extraction/support-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ The core pipeline features include the following:
- nemotron-table-structure-v1 — Detects rows, columns, and cells within a table to preserve table structure and convert to Markdown format.
- nemotron-graphic-elements-v1 — Detects graphic elements within chart images such as titles, legends, axes, and numerical values.
- nemotron-ocr-v1 — Image OCR model to detect and extract text from images.
- retrieval — Enables embedding and indexing into Milvus.
- retrieval — Enables embedding and indexing into [LanceDB](https://lancedb.com/) (default) or [Milvus](https://milvus.io/). For configuration and alternatives, refer to [Data Upload](data-store.md).

Advanced features require additional GPU support and disk space.
This includes the following:
Expand Down
Loading