SPB Git

spb/wp27_uqo

Public
958 B · 32 lines python
1"""Provider adapters. Each exposes `complete(system, user, model, **opts) -> ProviderResult`."""2from __future__ import annotations34from dataclasses import dataclass, field567@dataclass(slots=True)8class ProviderResult:9    text: str10    input_tokens: int = 011    cached_input_tokens: int = 012    output_tokens: int = 013    reasoning_tokens: int = 014    latency_s: float = 0.015    model: str = ""16    request_id: str = ""17    error: str = ""18    raw: dict = field(default_factory=dict)192021def get_provider(name: str, **kwargs):22    if name == "mock":23        from .mock import MockProvider24        return MockProvider(**kwargs)25    if name in ("openai", "openai_mini", "openai_large"):26        from .openai_provider import OpenAIProvider27        return OpenAIProvider(**kwargs)28    if name == "anthropic":29        from .anthropic_provider import AnthropicProvider30        return AnthropicProvider(**kwargs)31    raise ValueError(f"unknown provider {name!r}")32
Files · main
Menu

Theme