59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Any
|
|
|
|
from review_agent.models import ApplicationFormFillBatch, ExportedSummaryFile, FileSummaryBatch, RegulatoryReviewBatch
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class TemplateSpec:
|
|
code: str
|
|
name: str
|
|
source_file: str
|
|
output_label: str
|
|
applies_when: dict[str, Any]
|
|
file_format: str
|
|
fields: list[dict[str, Any]]
|
|
checklist_items: list[dict[str, Any]] = field(default_factory=list)
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class ExtractedField:
|
|
key: str
|
|
label: str
|
|
value: str
|
|
source_file: str
|
|
source_role: str
|
|
evidence: str
|
|
extractor: str
|
|
confidence: float
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MergedField:
|
|
key: str
|
|
label: str
|
|
value: str
|
|
source_file: str
|
|
evidence: str
|
|
confidence: float
|
|
has_conflict: bool = False
|
|
conflict_values: list[dict[str, Any]] = field(default_factory=list)
|
|
|
|
|
|
@dataclass
|
|
class FormFillContext:
|
|
batch: ApplicationFormFillBatch
|
|
source_summary_batch: FileSummaryBatch
|
|
source_regulatory_batch: RegulatoryReviewBatch | None
|
|
template_config: dict[str, Any] = field(default_factory=dict)
|
|
selected_templates: list[TemplateSpec] = field(default_factory=list)
|
|
document_texts: dict[str, str] = field(default_factory=dict)
|
|
regex_results: dict[str, Any] = field(default_factory=dict)
|
|
llm_results: dict[str, Any] = field(default_factory=dict)
|
|
merged_fields: dict[str, MergedField] = field(default_factory=dict)
|
|
checklist_items: dict[str, Any] = field(default_factory=dict)
|
|
conflicts: list[dict[str, Any]] = field(default_factory=list)
|
|
exports: list[ExportedSummaryFile] = field(default_factory=list)
|