diff --git a/schemas.py b/schemas.py index da4122a7..57517dfd 100644 --- a/schemas.py +++ b/schemas.py @@ -1,14 +1,23 @@ -from typing import List, Optional -from pydantic import BaseModel, ConfigDict +from typing import List, Union, Optional +from pydantic import BaseModel, RootModel, ConfigDict +class ImageContent(BaseModel): + type: str + image_url: dict + +class TextContent(BaseModel): + type: str + text: str + +class MessageContent(RootModel): + root: Union[TextContent, ImageContent] class OpenAIChatMessage(BaseModel): role: str - content: str | List + content: Union[str, List[MessageContent]] model_config = ConfigDict(extra="allow") - class OpenAIChatCompletionForm(BaseModel): stream: bool = True model: str @@ -16,8 +25,7 @@ class OpenAIChatCompletionForm(BaseModel): model_config = ConfigDict(extra="allow") - class FilterForm(BaseModel): body: dict user: Optional[dict] = None - model_config = ConfigDict(extra="allow") + model_config = ConfigDict(extra="allow") \ No newline at end of file