| from pydantic import BaseModel, ConfigDict |
| from typing import List, Dict, Any, Optional, Union, Literal |
|
|
| |
| 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 |
|
|
| |
| model_config = ConfigDict(extra='allow') |