mirror of
https://github.com/wassname/openrouter-python-sdk-retry-errors.git
synced 2026-07-30 12:20:57 +08:00
123 lines
3.5 KiB
Python
123 lines
3.5 KiB
Python
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
||
|
||
from __future__ import annotations
|
||
from .unifiedbenchmarkpricing import (
|
||
UnifiedBenchmarkPricing,
|
||
UnifiedBenchmarkPricingTypedDict,
|
||
)
|
||
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
|
||
from pydantic import model_serializer
|
||
from typing import Literal
|
||
from typing_extensions import TypedDict
|
||
|
||
|
||
UnifiedBenchmarksDAItemSource = Literal["design-arena",]
|
||
r"""Benchmark source discriminator."""
|
||
|
||
|
||
class TournamentStatsTypedDict(TypedDict):
|
||
r"""Placement distribution from tournament matches."""
|
||
|
||
first_place: Nullable[int]
|
||
fourth_place: Nullable[int]
|
||
second_place: Nullable[int]
|
||
third_place: Nullable[int]
|
||
total: Nullable[int]
|
||
|
||
|
||
class TournamentStats(BaseModel):
|
||
r"""Placement distribution from tournament matches."""
|
||
|
||
first_place: Nullable[int]
|
||
|
||
fourth_place: Nullable[int]
|
||
|
||
second_place: Nullable[int]
|
||
|
||
third_place: Nullable[int]
|
||
|
||
total: Nullable[int]
|
||
|
||
@model_serializer(mode="wrap")
|
||
def serialize_model(self, handler):
|
||
serialized = handler(self)
|
||
m = {}
|
||
|
||
for n, f in type(self).model_fields.items():
|
||
k = f.alias or n
|
||
val = serialized.get(k, serialized.get(n))
|
||
|
||
if val != UNSET_SENTINEL:
|
||
m[k] = val
|
||
|
||
return m
|
||
|
||
|
||
class UnifiedBenchmarksDAItemTypedDict(TypedDict):
|
||
arena: str
|
||
r"""Arena this ranking belongs to."""
|
||
avg_generation_time_ms: Nullable[float]
|
||
r"""Average generation time in milliseconds."""
|
||
category: str
|
||
r"""Category within the arena."""
|
||
display_name: str
|
||
r"""Human-readable model name from Design Arena."""
|
||
elo: float
|
||
r"""ELO rating from head-to-head arena battles."""
|
||
model_permaslug: str
|
||
r"""Stable OpenRouter model identifier when mapped; otherwise the upstream Design Arena model id."""
|
||
pricing: Nullable[UnifiedBenchmarkPricingTypedDict]
|
||
r"""OpenRouter pricing per token for this model. Null if pricing is unavailable."""
|
||
source: UnifiedBenchmarksDAItemSource
|
||
r"""Benchmark source discriminator."""
|
||
tournament_stats: TournamentStatsTypedDict
|
||
r"""Placement distribution from tournament matches."""
|
||
win_rate: float
|
||
r"""Win rate as a percentage (0–100)."""
|
||
|
||
|
||
class UnifiedBenchmarksDAItem(BaseModel):
|
||
arena: str
|
||
r"""Arena this ranking belongs to."""
|
||
|
||
avg_generation_time_ms: Nullable[float]
|
||
r"""Average generation time in milliseconds."""
|
||
|
||
category: str
|
||
r"""Category within the arena."""
|
||
|
||
display_name: str
|
||
r"""Human-readable model name from Design Arena."""
|
||
|
||
elo: float
|
||
r"""ELO rating from head-to-head arena battles."""
|
||
|
||
model_permaslug: str
|
||
r"""Stable OpenRouter model identifier when mapped; otherwise the upstream Design Arena model id."""
|
||
|
||
pricing: Nullable[UnifiedBenchmarkPricing]
|
||
r"""OpenRouter pricing per token for this model. Null if pricing is unavailable."""
|
||
|
||
source: UnifiedBenchmarksDAItemSource
|
||
r"""Benchmark source discriminator."""
|
||
|
||
tournament_stats: TournamentStats
|
||
r"""Placement distribution from tournament matches."""
|
||
|
||
win_rate: float
|
||
r"""Win rate as a percentage (0–100)."""
|
||
|
||
@model_serializer(mode="wrap")
|
||
def serialize_model(self, handler):
|
||
serialized = handler(self)
|
||
m = {}
|
||
|
||
for n, f in type(self).model_fields.items():
|
||
k = f.alias or n
|
||
val = serialized.get(k, serialized.get(n))
|
||
|
||
if val != UNSET_SENTINEL:
|
||
m[k] = val
|
||
|
||
return m
|