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 modelsuv pip install --python .venv/bin/python
"nemo-retriever[service,local]==26.8.1"
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:
```bash
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.