""" Pydantic models for OpenAI API compatibility """ from typing import List, Optional, Dict, Any, Union, Literal from pydantic import BaseModel, Field class ChatMessage(BaseModel): role: Literal["system", "user", "assistant"] content: str class ChatCompletionRequest(BaseModel): model: str messages: List[ChatMessage] temperature: Optional[float] = 1.0 top_p: Optional[float] = 1.0 n: Optional[int] = 1 stream: Optional[bool] = False stop: Optional[Union[str, List[str]]] = None max_tokens: Optional[int] = None presence_penalty: Optional[float] = 0.0 frequency_penalty: Optional[float] = 0.0 logit_bias: Optional[Dict[str, float]] = None user: Optional[str] = None class ChatCompletionChoice(BaseModel): index: int message: ChatMessage finish_reason: Optional[str] = None class ChatCompletionUsage(BaseModel): prompt_tokens: int completion_tokens: int total_tokens: int class ChatCompletionResponse(BaseModel): id: str object: str = "chat.completion" created: int model: str choices: List[ChatCompletionChoice] usage: Optional[ChatCompletionUsage] = None class ChatCompletionStreamChoice(BaseModel): index: int delta: Dict[str, Any] finish_reason: Optional[str] = None class ChatCompletionStreamResponse(BaseModel): id: str object: str = "chat.completion.chunk" created: int model: str choices: List[ChatCompletionStreamChoice] class ModelInfo(BaseModel): id: str object: str = "model" owned_by: str permission: List[Any] = [] class ModelsResponse(BaseModel): object: str = "list" data: List[ModelInfo] class ErrorResponse(BaseModel): error: Dict[str, Any]