File size: 880 Bytes
e5abe38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Pydantic models for request/response validation
"""

from pydantic import BaseModel, Field
from typing import Optional, List, Dict


class EvalRequest(BaseModel):
    """Request model for evaluation endpoint"""

    hypothesis: str          # generated summary
    reference: str           # reference summary
    source: Optional[str] = None   # original article (used by COMET)

    language: str = "en"

    metrics: List[str] = Field(
        default_factory=lambda: ["rouge", "bertscore", "comet"]
    )


class MetricResult(BaseModel):
    """Result for a single metric"""

    name: str
    score: float

    subscores: Dict = Field(default_factory=dict)

    error: Optional[str] = None
    duration_ms: float = 0.0


class EvalResponse(BaseModel):
    """Response model for evaluation endpoint"""

    results: List[MetricResult]
    language: str
    total_ms: float