12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- from typing import List, Optional, Literal
- from pydantic import BaseModel, Field
- Role = Literal["system", "user", "assistant"]
- class ChatMessage(BaseModel):
- role: Role
- content: str
- class 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: int
- class ChatResponse(BaseModel):
- content: str
- model: Optional[str] = None
- usage: Optional[Usage] = None
- class DataPayload(BaseModel):
- audio_url: str
- class TextToSpeechResponse(BaseModel):
- code: int
- data: Optional[DataPayload] = None
- msg: Optional[str] = None
- class TextToSpeechRequest(BaseModel):
- volume: int = 1
- pitch: float = 1
- rate: float = 1
- filename: str
- text: str
- model: Optional[str] = None
- format: Optional[str] = None
|