File size: 538 Bytes
a561338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from pydantic import BaseModel
from typing import List

class MatchDetail(BaseModel):
    matched_text: str
    similarity: float
    source_type: str    # "news" or "academic"
    source_title: str
    source_url: str


class SentenceResult(BaseModel):
    original_sentence: str
    normalized_sentence: str
    match_type: str     # "full_sentence", "partial_phrase", "no_match"
    matches: List[MatchDetail]


class PlagiarismResponse(BaseModel):
    checked_sentences: int
    checked_sources: int
    results: List[SentenceResult]