CoolFace
Apppublic

q121/01

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
models.py46 linesDownload Raw Back to app
1from typing import List, Dict, Optional, Union, Literal
2from pydantic import BaseModel, Field
3
4class Message(BaseModel):
5    role: str
6    content: str
7
8class ChatCompletionRequest(BaseModel):
9    model: str
10    messages: List[Message]
11    temperature: float = 0.7
12    top_p: Optional[float] = 1.0
13    n: int = 1
14    stream: bool = False
15    stop: Optional[Union[str, List[str]]] = None
16    max_tokens: Optional[int] = None
17    presence_penalty: Optional[float] = 0.0
18    frequency_penalty: Optional[float] = 0.0
19
20class Choice(BaseModel):
21    index: int
22    message: Message
23    finish_reason: Optional[str] = None
24
25class Usage(BaseModel):
26    prompt_tokens: int = 0
27    completion_tokens: int = 0
28    total_tokens: int = 0
29
30class ChatCompletionResponse(BaseModel):
31    id: str
32    object: Literal["chat.completion"]
33    created: int
34    model: str
35    choices: List[Choice]
36    usage: Usage = Field(default_factory=Usage)
37
38class ErrorResponse(BaseModel):
39    message: str
40    type: str
41    param: Optional[str] = None
42    code: Optional[str] = None
43
44class ModelList(BaseModel):
45    object: str = "list"
46    data: List[Dict]