| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | from typing import List, Optional, Literalfrom pydantic import BaseModel, FieldRole = Literal["system", "user", "assistant"]class ChatMessage(BaseModel):    role: Role    content: strclass ChatRequest(BaseModel):    messages: List[ChatMessage] = Field(min_length=1)    model: Optional[str] = None    temperature: Optional[float] = Field(default=None, ge=0, le=2)    max_tokens: Optional[int] = Field(default=None, gt=0)class Usage(BaseModel):    prompt_tokens: int    completion_tokens: int    total_tokens: intclass ChatResponse(BaseModel):    content: str    model: Optional[str] = None    usage: Optional[Usage] = Noneclass TextToSpeechPayload(BaseModel):    audio_url: strclass CopywritingEvaluationPayload(BaseModel):    content: bool    reason: str    corrected_msg: strclass DataResponse(BaseModel):    code: int    data: object    msg: Optional[str] = Noneclass TextToSpeechRequest(BaseModel):    volume: int = 1    pitch: float = 1    rate: float = 1    filename: str    text: str    model: strclass UnderstandImageRequest(BaseModel):    image_url: str    model: strclass CopywritingEvaluationRequest(BaseModel):    image_url: str    text: str    model: str
 |