from typing import List, Optional, Dict, Any from pydantic import BaseModel, Field class ChatMessage(BaseModel): role: str content: str class ChatRequest(BaseModel): messages: List[ChatMessage] temperature: Optional[float] = None max_tokens: Optional[int] = None top_p: Optional[float] = None stream: Optional[bool] = True class CompletionRequest(BaseModel): prefix: str suffix: Optional[str] = "" language: Optional[str] = "python" max_tokens: Optional[int] = 128 temperature: Optional[float] = 0.2 stream: Optional[bool] = False class ChatResponseChunk(BaseModel): content: str done: bool = False usage: Optional[Dict[str, Any]] = None class ChatResponse(BaseModel): id: str content: str usage: Dict[str, Any] model: str