cadrumo.application.ledger.llm_classification_ports module¶
Application boundary for supervised ledger LLM classification.
- class LLMClassificationSuggestion(**data)[source]¶
Bases:
BaseModelA reviewable LLM classification that has not been persisted.
- Parameters:
data (Any)
- transaction_id: TransactionId¶
- provenance: str¶
- classification: BusinessClassification¶
- category: SpendingCategory | None¶
- confidence: Decimal¶
- reason: str¶
- evidence_id: str | None¶
- multiple_components: bool | None¶
- class LLMSaturatedSuggestion(**data)[source]¶
Bases:
LLMClassificationSuggestionA classification review with system-derived IVA substrate.
- Parameters:
transaction_id (TransactionId)
classification (BusinessClassification)
category (SpendingCategory | None)
confidence (Decimal)
evidence_id (str | None)
multiple_components (bool | None)
- iva_category: IvaCategory | None¶
- business_pct: Decimal | None¶
- iva_rate: Decimal | None¶
- taxable_base: Decimal | None¶
- iva_amount: Decimal | None¶
- rate_derivable: bool¶
- derivation_note: str¶
- evidence_advisory: str¶
- class OperatorIvaDerivationResult(**data)[source]¶
Bases:
BaseModelOutcome of an operator-selected IVA category derivation.
- Parameters:
data (Any)
- transaction_id: TransactionId¶
- iva_category: IvaCategory¶
- derivable: bool¶
- iva_rate: Decimal | None¶
- taxable_base: Decimal | None¶
- iva_amount: Decimal | None¶
- note: str¶
- result: ManualLedgerTransactionResult | None¶
- class LLMSplitChildSuggestion(**data)[source]¶
Bases:
BaseModelOne reviewable evidence-driven split child.
- Parameters:
data (Any)
- proportion: Decimal¶
- amount: Decimal¶
- description: str¶
- category: SpendingCategory | None¶
- iva_category: IvaCategory | None¶
- iva_rate: Decimal | None¶
- taxable_base: Decimal | None¶
- iva_amount: Decimal | None¶
- rate_derivable: bool¶
- derivation_note: str¶
- evidence_citation: str¶
- class LLMSplitSuggestion(**data)[source]¶
Bases:
BaseModelReviewable evidence-driven split proposal.
- Parameters:
data (Any)
- transaction_id: TransactionId¶
- provenance: str¶
- reason: str¶
- parent_amount: Decimal¶
- children: tuple[LLMSplitChildSuggestion, ...]¶
- evidence_id: str | None¶
- class LLMSplitApplyResult(**data)[source]¶
Bases:
BaseModelResult of persisting an evidence-driven transaction split.
- Parameters:
data (Any)
- bucket_id: BucketId¶
- parent_transaction_id: TransactionId¶
- split_group_id: str¶
- child_transaction_ids: tuple[str, ...]¶
- provenance: str¶
- classified_child_count: int¶
- class LLMSuggestionRejectionResult(**data)[source]¶
Bases:
BaseModelResult of persisting an operator rejection of an LLM suggestion.
- Parameters:
data (Any)
- bucket_id: BucketId¶
- transaction_id: TransactionId¶
- bucket_event_id: str¶
- suggestion_kind: str¶
- provenance: str¶
- operator_reason: str¶
- class EvidenceImage(**data)[source]¶
Bases:
BaseModelTransient evidence image prepared for an application-owned reader port.
- Parameters:
data (Any)
- content_sha256: ContentDigest¶
- base64_data: str¶
- media_type: ImageMediaType¶
- classmethod from_base64(base64_data, media_type)[source]¶
Build an evidence image while recording its content digest.
- Return type:
- Parameters:
base64_data (str)
media_type (ImageMediaType)
- class ResolvedEvidenceInput(evidence_input, reference)[source]¶
Bases:
objectDocument bytes and stable reference supplied by outer composition.
- Parameters:
evidence_input (EvidenceInput)
reference (str)
-
evidence_input:
EvidenceInput¶
- class VisionClassifier(*args, **kwargs)[source]¶
Bases:
ProtocolRead-only classifier port for evidence-backed vision suggestions.
- classify(transaction, *, evidence_images)[source]¶
Classify one transaction using the supplied evidence images.
- Return type:
- Parameters:
transaction (Transaction)
evidence_images (tuple[EvidenceImage, ...])
- propose_split(transaction, *, evidence_images)[source]¶
Propose evidence-driven children for one transaction.
- Return type:
- Parameters:
transaction (Transaction)
evidence_images (tuple[EvidenceImage, ...])
- class LLMClassificationPorts(resolve_evidence_input, text_layer_ports, rasterise_pdf, make_text_classifier, make_vision_classifier, run_reader, record_classifier_run)[source]¶
Bases:
objectOuter-owned I/O required by the ledger LLM review use case.
- Parameters:
resolve_evidence_input (Callable[[str, str | None, tuple[str, ...]], ResolvedEvidenceInput])
text_layer_ports (EvidenceTextLayerPorts)
make_text_classifier (Callable[[PromptSpec], LLMClassifier])
make_vision_classifier (Callable[[PromptSpec, str | None], VisionClassifier])
run_reader (Callable[[ModelRole, Callable[[], object]], object])
record_classifier_run (Callable[[Callable[[], object], str], object])
-
text_layer_ports:
EvidenceTextLayerPorts¶
-
make_text_classifier:
Callable[[PromptSpec],LLMClassifier]¶
-
make_vision_classifier:
Callable[[PromptSpec,str|None],VisionClassifier]¶