File size: 1,015 Bytes
b2e9550
668b037
 
b2e9550
668b037
 
 
 
b2e9550
668b037
b2e9550
 
 
 
 
668b037
b2e9550
 
 
 
668b037
b2e9550
668b037
b2e9550
668b037
b2e9550
 
 
 
668b037
b2e9550
 
 
 
 
 
 
 
 
 
 
 
668b037
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""FastAPI wrapper for deterministic numeric validation."""
from fastapi import HTTPException

from numeric_core import validate_numeric


async def post_validate_numeric(request: dict) -> dict:
    items = request.get("items", [])

    if not items:
        raise HTTPException(
            status_code=400,
            detail="'items' requis",
        )

    results = []
    rel_tol = float(
        request.get("relative_tolerance", 0.02)
    )

    for item in items:
        claim = str(item.get("claim", ""))
        evidence = str(item.get("evidence", ""))

        if not claim or not evidence:
            results.append({
                "id": item.get("id", 0),
                "error": "claim/evidence manquant",
            })
            continue

        validation = validate_numeric(
            claim,
            evidence,
            rel_tol=rel_tol,
        )

        results.append({
            "id": item.get("id", 0),
            **validation,
        })

    return {"results": results}