File size: 646 Bytes
a55a212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b868906
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
from pydantic import BaseModel, computed_field


class Source(BaseModel):
    title: str
    url: str
    summary: str | None = None
    abstract: str | None = None
    doi: str | None = None
    venue: str | None = None
    year: int | None = None
    citations: int | None = None
    influential_citations: int | None = None

    @computed_field
    @property
    def citation(self) -> str:
        return f"[{self.title}]({self.url}). *{self.venue}* {self.year}."


class Statement(BaseModel):
    text: str
    sources: list[Source] | None = None


class Statements(BaseModel):
    statements: list[Statement]
    thoughts: str | None = None