Releases: pabloalvarez99/production-rag
Releases · pabloalvarez99/production-rag
Release list
v1.0.0 — free-path evaluation program + identity + failure injection
production-rag v1.0.0
Clone-only free-path flagship. Still $0. Still no Vercel. Never cite production-rag.vercel.app (Ipsura).
What shipped
- Free-path eval program n=52 (
golden-free-path.jsonl) with slices answerable / unanswerable / filter / hybrid-vs-dense - Difficulty predicates: CI fails if a ranking slice is all trivial rank-1
- Scorecard HTML+JSON ablation dense/sparse/hybrid/hybrid_rerank labeled plumbing,
billed=false - HTTP transcripts: grounded, refuse, title=Filtering, stream; failure path with CACHE_ENABLED=false
/v1/readycollection identity: embedder_id, chunker_version, doc_count, corpus_hash- Cache key includes corpus identity (no cross-hit); typed
wrong_collection - Provider/store failures → 503 with
refused: false(never soft refuse) - Local load harness:
docs/assets/load.json(n=100, honest single-process note) - ADR-0014 corpus hash in cache key; CASESTUDY ≥1500 words
Still PLANNED
- Auth / rate limit (P5)
- Hosted Qdrant / multi-worker Redis cache
- Hosted-provider quality baseline (billed run with named providers)
- Public P1 host (will not ship; clone-only is intentional)
Verify
pip install -e ".[dev]"
pytest -q
python scripts/write_compose_transcripts.py
python scripts/run_load_local.py
v0.3.0 — scorecard replay, ui-stream, CASESTUDY
production-rag v0.3.0
Builds on v0.2.0 (stream + filter-aware cache + scorecard). Still clone-only, $0 free path, no hosted URL.
See it (Week 2)
- UI stills regenerated with Stream the draft toggle visible
- New
docs/assets/ui-stream.png(grounded + stream checked) capture_ui.pyrebuilds API image;CACHE_ENABLED=falsefor service-failure still- DEMO-DAY beats: filter chip
title=Filtering, stream, cache hit,/evals
Scorecard is a loop (Week 3)
- Replay free-path golden items via
/v1/queryand/v1/query/stream - Tests: unanswerable refuses; grounded keeps markers; cache hit on second replay when enabled
- CASESTUDY: why stream is additive; why cache keys include filters
v0.2.0 — stream, filter-aware cache, scorecard
production-rag v0.2.0
Clone-only free path. No hosted URL. $0 with fake providers.
Stream is additive
POST /v1/queryremains the contractPOST /v1/query/streamis extra SSE: provisional deltas, then one terminalresult(grounded or refused)- UI stream toggle; draft is never the answer
Cache off by default
- In-process result cache; enable with
CACHE_ENABLED/ config for local demos - Cache key includes filters (filter mismatch cannot reuse an unfiltered hit)
Scorecard honesty
docs/assets/scorecard.html+GET /evals- Free-path fixture; billed=false; not a quality claim
- DEMO-DAY filter chip is
title=Filtering(source=sampledoes not narrow the sample corpus)
Clone-only / $0
- Qdrant local; no Vercel; auth and rate-limit stay in P5
- CI empty keys; free path stays credential-free
Main: aff1674
PR: #3
production-rag v0.1.0 — free-path flagship
production-rag v0.1.0 — free-path flagship
First tagged release of the flagship RAG service. A clean clone can exercise ingest,
retrieval, answering, the web UI, and both evaluation tiers on deterministic local
providers: no credential, no billed call, and no signup.
Target commit: 678c5543baf0f4a723dc823de1f19162ba54b4a9
What shipped
- Hybrid retrieval with RRF: dense and sparse/BM25 branches run in Qdrant and are
fused by rank rather than by incomparable raw scores. - Optional fail-open reranking: a cross-encoder can reorder the fused shortlist; a
reranker failure is reported and falls back to fusion order instead of failing the query. - Grounded generation: the LangGraph query path resolves
[n]markers against the
exact prompt context, removes invalid markers, and explicitly refuses when evidence is
insufficient. - Two offline evaluation tiers: retrieval and answer/citation behaviour are measured
separately, with provenance, paired statistics, and generated documentation checks. - A reproducible free demo: one script starts Qdrant, ingests the sample corpus, and
serves the query UI with local providers pinned. - Credential-free CI: lint, strict type checking, tests, ingest, both eval tiers, and
an HTTP query run with provider keys set to empty values. - Production-facing seams: request IDs, structured logs, readiness, timings, optional
tracing, runbooks, ADRs, security guidance, and an explicit ship-status page.
Honesty boundary
- The published scorecard uses deterministic fake providers. It validates plumbing,
contracts, provenance, and publication; it does not measure hosted retrieval or answer
quality. - Authentication, authorization, rate limiting, a metrics endpoint, production retry and
circuit-breaker policy, multi-tenancy, and load/concurrency claims are not included. - There is no hosted demo and no attached binary. The supported demo is the reproducible
local path documented in the README.