Spaces:
Paused
Paused
| from pydantic import BaseModel, ConfigDict # Field removed | |
| from typing import List, Dict, Any, Optional, Union, Literal | |
| # Define data models | |
| class ImageUrl(BaseModel): | |
| url: str | |
| class ContentPartImage(BaseModel): | |
| type: Literal["image_url"] | |
| image_url: ImageUrl | |
| class ContentPartText(BaseModel): | |
| type: Literal["text"] | |
| text: str | |
| class OpenAIMessage(BaseModel): | |
| role: str | |
| content: Union[str, List[Union[ContentPartText, ContentPartImage, Dict[str, Any]]]] | |
| class OpenAIRequest(BaseModel): | |
| model: str | |
| messages: List[OpenAIMessage] | |
| temperature: Optional[float] = 1.0 | |
| max_tokens: Optional[int] = None | |
| top_p: Optional[float] = 1.0 | |
| top_k: Optional[int] = None | |
| stream: Optional[bool] = False | |
| stop: Optional[List[str]] = None | |
| presence_penalty: Optional[float] = None | |
| frequency_penalty: Optional[float] = None | |
| seed: Optional[int] = None | |
| logprobs: Optional[int] = None | |
| response_logprobs: Optional[bool] = None | |
| n: Optional[int] = None # Maps to candidate_count in Vertex AI | |
| # Allow extra fields to pass through without causing validation errors | |
| model_config = ConfigDict(extra='allow') |