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]
|