3
from pydantic import BaseModel, Field
4
from typing import List, Optional
9
ASSISTANT = "assistant"
13
class Finish(str, Enum):
18
class ModelCard(BaseModel):
20
object: Optional[str] = "model"
21
created: Optional[int] = Field(default_factory=lambda: int(time.time()))
22
owned_by: Optional[str] = "owner"
25
class ModelList(BaseModel):
26
object: Optional[str] = "list"
27
data: Optional[List[ModelCard]] = []
30
class ChatMessage(BaseModel):
35
class DeltaMessage(BaseModel):
36
role: Optional[Role] = None
37
content: Optional[str] = None
40
class ChatCompletionRequest(BaseModel):
42
messages: List[ChatMessage]
43
do_sample: Optional[bool] = True
44
temperature: Optional[float] = None
45
top_p: Optional[float] = None
47
max_tokens: Optional[int] = None
48
stream: Optional[bool] = False
51
class ChatCompletionResponseChoice(BaseModel):
57
class ChatCompletionResponseStreamChoice(BaseModel):
60
finish_reason: Optional[Finish] = None
63
class ChatCompletionResponseUsage(BaseModel):
65
completion_tokens: int
69
class ChatCompletionResponse(BaseModel):
70
id: Optional[str] = "chatcmpl-default"
71
object: Optional[str] = "chat.completion"
72
created: Optional[int] = Field(default_factory=lambda: int(time.time()))
74
choices: List[ChatCompletionResponseChoice]
75
usage: ChatCompletionResponseUsage
78
class ChatCompletionStreamResponse(BaseModel):
79
id: Optional[str] = "chatcmpl-default"
80
object: Optional[str] = "chat.completion.chunk"
81
created: Optional[int] = Field(default_factory=lambda: int(time.time()))
83
choices: List[ChatCompletionResponseStreamChoice]
86
class ScoreEvaluationRequest(BaseModel):
89
max_length: Optional[int] = None
92
class ScoreEvaluationResponse(BaseModel):
93
id: Optional[str] = "scoreeval-default"
94
object: Optional[str] = "score.evaluation"