# Qdrant Docker tutorial code

Run order: `run_qdrant.sh`, `load.py`, `search.py`, `scroll_count.py`, optional `gotchas.py`, `persist_check.sh`, `cleanup.sh`.
Compose alternative: `docker-compose.yml` (stop the `docker run` container first, same ports).

Setup: `python3 -m venv .venv && .venv/bin/pip install -r requirements.txt` (create the venv outside any repo).
Versions of the run (2026-11-01): Qdrant 1.20.0 (image `qdrant/qdrant`, digest sha256:9bfc89f9914fc14876a88c05270685921a55b8877b254a98bcc1cc2f0a424cd2), qdrant-client 1.20.0, Python 3.11.2. Full list in `pip-freeze.txt`.

Input: `chunks.jsonl` is NOT included (3.4 MB with embeddings). It had 304 rows, sha256 7c62db9258ba7b33bc75bf3e0593b0a7ffc73d0b0fb11da68db0eb27ebe4e145,
built from webcrawlerapi.com/docs (crawl with `webcr`, split at headings, embed with Ollama nomic-embed-text, 768 dims).
Regenerate with the shared pipeline's `ingest.py`, or build your own file with the fields id, url, heading, text, embedding, model, dim.
Point the scripts at it with `CHUNKS_PATH=/path/to/chunks.jsonl`. Queries need Ollama at localhost:11434 with the same model.

Saved outputs (`*.out`) are the real output of the run.
