XmLLM / src /app /domain /models /raw_payload.py
Claude
Code quality: fix all ruff warnings, add CI/CD, improve test coverage
bbbfba8 unverified
Raw
History Blame Contribute Delete
1.01 kB
"""RawProviderPayload — the source truth.
This is an opaque wrapper around whatever the provider returned.
It is stored for audit, debug, comparison, and reproducibility.
It is never used for export or rendering.
"""
from __future__ import annotations
from datetime import UTC, datetime
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
class RawProviderPayload(BaseModel):
"""Opaque container for the raw output of a provider."""
model_config = ConfigDict(frozen=True)
provider_id: str = Field(min_length=1)
adapter_id: str = Field(min_length=1)
runtime_type: str = Field(min_length=1)
model_id: str | None = None
payload: dict[str, Any] | list[Any]
"""The raw JSON-serialisable output from the provider."""
received_at: datetime = Field(default_factory=lambda: datetime.now(UTC))
image_width: int | None = Field(default=None, gt=0)
image_height: int | None = Field(default=None, gt=0)
metadata: dict[str, Any] | None = None