File size: 1,001 Bytes
8c3e275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from __future__ import annotations

from datetime import date

from pydantic import BaseModel, Field


class Record(BaseModel):
    type: str = Field(
        default="task", pattern=r"^(task|note|action_item|key_value|transcript_segment)$"
    )
    content: str
    due_date: date | None = None
    priority: str | None = Field(default=None, pattern=r"^(high|medium|low)$")
    category: str | None = None
    speaker: str | None = None
    timestamp: str | None = None
    status: str | None = Field(default="todo", pattern=r"^(todo|done)$")
    confidence: float = Field(default=1.0, ge=0.0, le=1.0)


class SourceParseResult(BaseModel):
    source_file: str
    source_type: str = Field(default="image", pattern=r"^(image|audio|video|document|spreadsheet)$")
    captured_date: date | None = None
    title: str | None = None
    summary: str | None = None
    records: list[Record]
    barcodes: list[dict] = Field(default_factory=list)
    tables: list[list[str]] = Field(default_factory=list)