from pydantic import BaseModel, Field class QuiverImageObject(BaseModel): url: str = Field(...) class QuiverTextToSVGRequest(BaseModel): model: str = Field(default="arrow-preview") prompt: str = Field(...) instructions: str | None = Field(default=None) references: list[QuiverImageObject] | None = Field(default=None, max_length=4) temperature: float | None = Field(default=None, ge=0, le=2) top_p: float | None = Field(default=None, ge=0, le=1) presence_penalty: float | None = Field(default=None, ge=-2, le=2) class QuiverImageToSVGRequest(BaseModel): model: str = Field(default="arrow-preview") image: QuiverImageObject = Field(...) auto_crop: bool | None = Field(default=None) target_size: int | None = Field(default=None, ge=128, le=4096) temperature: float | None = Field(default=None, ge=0, le=2) top_p: float | None = Field(default=None, ge=0, le=1) presence_penalty: float | None = Field(default=None, ge=-2, le=2) class QuiverSVGResponseItem(BaseModel): svg: str = Field(...) mime_type: str | None = Field(default="image/svg+xml") class QuiverSVGUsage(BaseModel): total_tokens: int | None = Field(default=None) input_tokens: int | None = Field(default=None) output_tokens: int | None = Field(default=None) class QuiverSVGResponse(BaseModel): id: str | None = Field(default=None) created: int | None = Field(default=None) data: list[QuiverSVGResponseItem] = Field(...) usage: QuiverSVGUsage | None = Field(default=None)