Spaces:
Sleeping
Sleeping
from typing import List, Optional, Union | |
from pydantic import BaseModel, ConfigDict, RootModel | |
class ImageContent(BaseModel): | |
"""Model for image content in messages.""" | |
type: str | |
image_url: dict | |
class TextContent(BaseModel): | |
"""Model for text content in messages.""" | |
type: str | |
text: str | |
class MessageContent(RootModel): | |
"""Model for message content that can be either text or image.""" | |
root: Union[TextContent, ImageContent] | |
class OpenAIChatMessage(BaseModel): | |
"""Model for chat messages in OpenAI format.""" | |
role: str | |
content: Union[str, List[MessageContent]] | |
model_config = ConfigDict(extra="allow") | |
class OpenAIChatCompletionForm(BaseModel): | |
"""Model for chat completion request parameters.""" | |
stream: bool = True | |
model: str | |
messages: List[OpenAIChatMessage] | |
model_config = ConfigDict(extra="allow") | |
class FilterForm(BaseModel): | |
"""Model for filter request parameters.""" | |
body: dict | |
user: Optional[dict] = None | |
model_config = ConfigDict(extra="allow") |