django-lookup
Product lookup & dedup for the Volkanos platform: "do we already have this?" across PIM and supplier
feeds (atlas) — by identifier, text or image, with explainable match / review / no_match decisions.
Status: module, providers, freshness signals, the /search/ + /check/ admin API, the image layer
(pHash + pluggable embedding providers, HNSW blocking), the human-verdict dedup log and the
lookup_eval calibration harness have all landed. See AGENTS.md and docs/ for the full
picture: docs/concept.md (scoring/decision rules), docs/api.md (endpoints), docs/operations.md
(commands, providers, SSRF guard, calibration).
Installation
pip install entirius-django-lookup
Requires PostgreSQL with the vector (pgvector ≥ 0.7), pg_trgm and unaccent extensions available —
migration 0001 creates them. Add django_lookup (and django.contrib.postgres) to INSTALLED_APPS.
Register at least one catalog provider (docs/operations.md § Provider registration) — without one,
the module boots but every kind stays unwired.
Settings
| Setting | Default | Meaning |
|---|---|---|
LOOKUP_PROVIDERS |
{} |
kind → dotted module path implementing the provider protocol |
LOOKUP_EMBEDDING |
{"provider": "none"} |
image embedding backend (http / voyage / none / dotted path: url, model, dim, api_key, timeout_s) |
LOOKUP_IMAGE_ENABLED |
False |
image layer on/off |
LOOKUP_THRESHOLDS |
{"match": 75, "review": 45} |
decision thresholds on the 0–100 score |
LOOKUP_EMBED_ALLOWED_HOSTS |
[] |
private hosts the embedding client and remote image fetches may reach |
LOOKUP_EMBED_CONCURRENCY |
2 |
embedding batches in flight per process — the backend is shared hardware |
LOOKUP_HNSW_EF_SEARCH |
60 |
hnsw.ef_search for the image blocking query |
LOOKUP_BLOCK_PRIVATE_HOSTS |
True |
SSRF guard master switch; False only in a dev harness |
LOOKUP_EMBEDDING["dim"] fixes the halfvec column dimension at import time — changing it needs a new
migration and a full re-embed. Full settings reference: docs/operations.md.
Development
make install # uv sync --all-extras
make test # pytest against Postgres (DATABASE_URL or LOOKUP_TEST_DB_*; default: localhost:5532 = zeno)
make check # ruff + canonical .gitleaks.toml
Architecture, API contract and agent instructions: AGENTS.md, docs/.
License
MPL-2.0 — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file entirius_django_lookup-0.1.1.tar.gz.
File metadata
- Download URL: entirius_django_lookup-0.1.1.tar.gz
- Upload date:
- Size: 207.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56d7fc107130160dec4ec22d8e0a927efb2f6ad1b7d578d421489ae22c0d59ee
|
|
| MD5 |
8bceab03db0af8ab920188c421b41e44
|
|
| BLAKE2b-256 |
7ca6469d4a2aa0386168e194aac1d41d94154cd0f655df591818e6da48c025c2
|
File details
Details for the file entirius_django_lookup-0.1.1-py3-none-any.whl.
File metadata
- Download URL: entirius_django_lookup-0.1.1-py3-none-any.whl
- Upload date:
- Size: 91.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9761cf9eba8b6e82e511171d2ea334ad308dc3164b6ef140443a73a3393e21de
|
|
| MD5 |
aed1e5ce1a04bf785f5fa591700d955e
|
|
| BLAKE2b-256 |
8873ef9e4183581c4fe1574e68fb373430851caec96e879bbf577c3e6ba7d42e
|