NeMo Retriever
Use the retriever CLI. Prefer it over hand-built retrieval
code.
Install only when missing
Create a project-local Python environment:
uv venv .venv --python 3.12
export PATH="$PWD/.venv/bin:$PATH"
Install the package variant required by the workflow:
# Remote NIM or service client
uv pip install --python .venv/bin/python "nemo-retriever==26.8.1"
# Local GPU ingestion
uv pip install --python .venv/bin/python "nemo-retriever[local]==26.8.1"
# Local service using Hugging Face models
uv pip install --python .venv/bin/python \
"nemo-retriever[service,local]==26.8.1"
# Local audio or video ingestion
uv pip install --python .venv/bin/python \
"nemo-retriever[local,multimedia]==26.8.1"
Do not clone NeMo Retriever or install from a Git URL. If retriever is already
on PATH, use that installation.
Local workflow
Build a local index:
retriever ingest <file-or-directory> \
--lancedb-uri lancedb --table-name nemo-retriever
Query it:
retriever query "<question>" \
--lancedb-uri lancedb --table-name nemo-retriever \
--top-k 5 --format evidence
Use retriever ingest batch only for an explicitly requested Ray batch run.
Service workflow
Use these forms for an already deployed Retriever service:
retriever ingest service <file-or-directory> \
--service-url "$RETRIEVER_SERVICE_URL"
retriever query service "<question>" \
--service-url "$RETRIEVER_SERVICE_URL" \
--top-k 5 --format evidence
Set NEMO_RETRIEVER_API_TOKEN when the service requires Bearer authentication.
Do not pass local LanceDB flags to the service commands.
Rules
- Use the existing index or service when one is provided; do not rebuild it.
- Use
retriever ingest --help,retriever query --help, or the relevantbatch/servicehelp for options not shown here. - Answer only from retrieved evidence; preserve source and page metadata when the task requests citations.