sana0721/vertex
0
1from pydantic import BaseModel, ConfigDict # Field removed2from typing import List, Dict, Any, Optional, Union, Literal3 4# Define data models5class ImageUrl(BaseModel):6 url: str7 8class ContentPartImage(BaseModel):9 type: Literal["image_url"]10 image_url: ImageUrl11 12class ContentPartText(BaseModel):13 type: Literal["text"]14 text: str15 16class OpenAIMessage(BaseModel):17 role: str18 content: Union[str, List[Union[ContentPartText, ContentPartImage, Dict[str, Any]]]]19 20class OpenAIRequest(BaseModel):21 model: str22 messages: List[OpenAIMessage]23 temperature: Optional[float] = 1.024 max_tokens: Optional[int] = None25 top_p: Optional[float] = 1.026 top_k: Optional[int] = None27 stream: Optional[bool] = False28 stop: Optional[List[str]] = None29 presence_penalty: Optional[float] = None30 frequency_penalty: Optional[float] = None31 seed: Optional[int] = None32 logprobs: Optional[int] = None33 response_logprobs: Optional[bool] = None34 n: Optional[int] = None # Maps to candidate_count in Vertex AI35 36 # Allow extra fields to pass through without causing validation errors37 model_config = ConfigDict(extra='allow')