qa: 'make query Q=... BURN=1' busts matching cache before lookup
Per fox: while iterating on retrieval/verifier knobs, a flag on the query itself is more useful than a separate verb. One step reset: change a knob, re-query, see fresh result. Surface: aborist query --burn ... make query Q="..." BURN=1 make query-dry Q="..." BURN=1 (works on dry-run too) Behavior in `aborist.qa.query.query()`: - New `burn_existing: bool = False` parameter on query(). - After computing primary cache_key (per the active dedup mode) but BEFORE the cache lookup, if burn_existing: DELETE the live row that matches the primary cache_key & write one providence_burn audit event with reason "query --burn (test-ergonomic mid-query bust)". - The lookup then misses → fresh inference runs. Result reports `burned_existing: 0|1` so the caller sees whether anything got busted. - The equivalence-class fallback cache_key is deliberately NOT touched: prior alt-mode records stay as historic witnesses. Tests (3): cache populates → cache hits → BURN=1 forces fresh inference; --burn writes a providence_burn audit event; first-time query with --burn is a clean no-op (burned_existing=0). 356 passed, 1 skipped. Complementary to `aborist burn-kindergarten` (mass reset) — this is the surgical version. Both are local-only by design; for cross-peer invalidation use `make falsify` and let mesh sync broadcast.
This commit is contained in:
parent
4573dbcf4e
commit
e668a8355f
4 changed files with 181 additions and 6 deletions
12
Makefile
12
Makefile
|
|
@ -155,17 +155,17 @@ burn-kindergarten: bootstrap ## bust providence rows < SECONDS old [SECONDS=3600
|
|||
# Multi-source RAG query against the shard cluster.
|
||||
# Usage: make query Q="What is anarcho-capitalism?"
|
||||
QUERY_TOP_K ?= 8
|
||||
query: bootstrap ## ask the corpus a question [JSON=1 for raw record]; sources picked across shards
|
||||
query: bootstrap ## ask the corpus a question [JSON=1 BURN=1]; sources picked across shards
|
||||
@if [ -z "$$Q" ] && [ -z "$(Q)" ]; then \
|
||||
echo "usage: make query Q=\"your question\" [JSON=1]"; exit 2; \
|
||||
echo "usage: make query Q=\"your question\" [JSON=1 BURN=1]"; exit 2; \
|
||||
fi
|
||||
$(ABORIST) --shards-dir $(SHARDS_DIR) query --top-k $(QUERY_TOP_K) $(if $(JSON),--json,) "$(Q)"
|
||||
$(ABORIST) --shards-dir $(SHARDS_DIR) query --top-k $(QUERY_TOP_K) $(if $(JSON),--json,) $(if $(BURN),--burn,) "$(Q)"
|
||||
|
||||
query-dry: bootstrap ## like 'make query' but skip the LLM call (dry-run) [JSON=1 for raw]
|
||||
query-dry: bootstrap ## like 'make query' but skip the LLM call (dry-run) [JSON=1 BURN=1]
|
||||
@if [ -z "$$Q" ] && [ -z "$(Q)" ]; then \
|
||||
echo "usage: make query-dry Q=\"your question\" [JSON=1]"; exit 2; \
|
||||
echo "usage: make query-dry Q=\"your question\" [JSON=1 BURN=1]"; exit 2; \
|
||||
fi
|
||||
$(ABORIST) --shards-dir $(SHARDS_DIR) query --top-k $(QUERY_TOP_K) --dry-run $(if $(JSON),--json,) "$(Q)"
|
||||
$(ABORIST) --shards-dir $(SHARDS_DIR) query --top-k $(QUERY_TOP_K) --dry-run $(if $(JSON),--json,) $(if $(BURN),--burn,) "$(Q)"
|
||||
|
||||
verify-shards: bootstrap ## cross-shard Merkle round-trip on a random sample
|
||||
$(ABORIST) --shards-dir $(SHARDS_DIR) verify -n $(VERIFY_N)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue