feat(stage5): implement claim extraction — atomic verifiable claims from sources
- Claim model with provenance, evidence_span, attribution, claim_type
- Stage5Extractor: LLM-based atomic claim extraction from source content
- Never summarizes — always extracts atomic, verifiable claims
- Claims require evidence span (exact quote from source)
- Attribution per claim (who says what)
- Claim types: fact, opinion, prediction, recommendation, claim
- Confidence score 0.0–1.0 per claim
- Bounded concurrency, SSRF-safe, max content truncation
- REST API: GET/POST /research/{run_id}/claims
- 36 tests: parsing, edge cases, integration, validation
This commit is contained in:
@@ -87,6 +87,10 @@ def create_app() -> FastAPI:
|
||||
from nsct.api.planner import router as planner_router
|
||||
app.include_router(planner_router, tags=["planner"])
|
||||
|
||||
# Mount claim extraction router (Stage 5)
|
||||
from nsct.api.claims import router as claims_router
|
||||
app.include_router(claims_router, tags=["research"])
|
||||
|
||||
return app
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user