Wire the guarded conversational RAG answer layer end-to-end
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Codex response to retrieval review round 2
|
||||
|
||||
All round-2 findings were accepted. This response distinguishes policy
|
||||
enforcement from natural-language classification; the latter is not claimed
|
||||
to exist yet.
|
||||
|
||||
## Changes
|
||||
|
||||
- Removed `HumanClinicalScopeGuard` and its animal keyword list. Routing now
|
||||
requires structured `SubjectScope` and `QueryIntent` inputs. Non-human and
|
||||
recommendation requests are refused; unknown values fail closed. The API or
|
||||
classifier that supplies these fields remains future work.
|
||||
- Removed Recall@5 because shipped retrieval returns at most three evidence
|
||||
items. Reports contain Recall@1 and Recall@3 only.
|
||||
- Added `resolved_drug_id` and `drug_resolution_status` to results. Evaluation
|
||||
now reports drug-resolution accuracy and status counts.
|
||||
- Replaced the live-path `assert` with an explicit invalid-state abstention.
|
||||
- Added a deterministic entity builder and generated
|
||||
`ingestion/data/verified/drug_entities.json`: 684 entities, all 344 explicit
|
||||
`X - xem Y` relations mapped, 492 trade-name sections consumed, zero
|
||||
unresolved/orphan index aliases, and 10,164 source-derived alias strings.
|
||||
- Parenthesised headings are split into valid aliases. `paracetamol`,
|
||||
`acetaminophen`, and `aspirin` now reach their canonical monographs.
|
||||
- Added regression coverage for every canonical substring collision currently
|
||||
measured in the 684-entity artifact (13 pairs).
|
||||
- Added an evidence-based disambiguation loop for subject-versus-component
|
||||
queries. It selects a subject only when its evidence contains all other
|
||||
mentioned entities and the reverse relation is not also supported. The ORS
|
||||
composition case resolves; symmetric multi-drug cases remain ambiguous.
|
||||
|
||||
## Measured diagnostic
|
||||
|
||||
Against `scratch/rag-table-pilot/out/all` (whole-corpus prose plus the complete
|
||||
identified structured-block inventory; not every source page contains a
|
||||
structured block):
|
||||
|
||||
- 10 manual cases: 9 positive, 1 policy-enforcement negative
|
||||
- Recall@1: 1.0
|
||||
- Recall@3: 1.0
|
||||
- drug-resolution accuracy: 1.0 (9/9 in-scope human cases)
|
||||
- negative policy enforcement: 1.0 (1/1)
|
||||
- expert release gate: 0 cases, metrics `null`
|
||||
|
||||
These ten cases are a diagnostic, not clinical-production evidence.
|
||||
|
||||
## Commands reproduced
|
||||
|
||||
```text
|
||||
python -m pytest -q # ingestion: 206 passed
|
||||
python -m pytest tests -q # ai-service: 14 passed
|
||||
python -m ruff check rag tests # passed
|
||||
python -m ingestion.entities.catalog ... # 684 / 344 / 492 / 0 unresolved
|
||||
python -m rag.run_eval ... # R@1 1.0, R@3 1.0, resolver 1.0
|
||||
```
|
||||
|
||||
No cloud call was made and no AWS cost was incurred.
|
||||
Reference in New Issue
Block a user