Skip to content

Releases: pabloalvarez99/production-rag

v1.0.0 — free-path evaluation program + identity + failure injection

Choose a tag to compare

@pabloalvarez99 pabloalvarez99 released this 14 Aug 20:54
3b54d85

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/ready collection 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

Choose a tag to compare

@pabloalvarez99 pabloalvarez99 released this 14 Aug 20:02
bf6e36d

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.py rebuilds API image; CACHE_ENABLED=false for 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/query and /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

Main: after merge of PR #4
PR: #4

v0.2.0 — stream, filter-aware cache, scorecard

Choose a tag to compare

@pabloalvarez99 pabloalvarez99 released this 14 Aug 19:43
aff1674

production-rag v0.2.0

Clone-only free path. No hosted URL. $0 with fake providers.

Stream is additive

  • POST /v1/query remains the contract
  • POST /v1/query/stream is extra SSE: provisional deltas, then one terminal result (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=sample does 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

Choose a tag to compare

@pabloalvarez99 pabloalvarez99 released this 13 Aug 18:57

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.

Start here