SPB Git

Repository Public Research preview

provider.py 1.0 KB 41 lines python

1"""Provider abstraction for rewriting engines (Anthropic Claude live, Message Batches, deterministic mock)."""2from __future__ import annotations34import abc5import time6from dataclasses import dataclass, field789@dataclass10class ProviderResult:11    text: str | None12    status: str  # ok | refused | error | empty | truncated13    model: str14    provider_request_id: str | None = None15    usage: dict = field(default_factory=dict)16    cost_usd: float | None = None17    stop_reason: str | None = None18    error: str | None = None19    latency_s: float | None = None20    raw: dict | None = None212223class Provider(abc.ABC):24    name: str = "abstract"25    model: str = "none"2627    @abc.abstractmethod28    def rewrite(self, system: str, messages: list[dict], max_tokens: int, params: dict) -> ProviderResult: ...2930    def supports_batch(self) -> bool:31        return False323334class Timer:35    def __enter__(self):36        self.t0 = time.perf_counter()37        return self3839    def __exit__(self, *a):40        self.elapsed = time.perf_counter() - self.t041
Files main
Menu

Theme