Spaces:
Sleeping
Sleeping
from typing import List, Optional, Union, Dict, Any, Literal | |
from pydantic import BaseModel, Field | |
class ChatMessage(BaseModel): | |
role: str = Field() | |
content: str = Field() | |
class Logprob(BaseModel): | |
token: str | |
logprob: float | |
top_logprobs: Optional[List[Dict[str, Any]]] = None | |
class LogprobsContent(BaseModel): | |
content: Optional[List[Logprob]] = None | |
refusal: Optional[List[Logprob]] = None | |
class FunctionCall(BaseModel): | |
name: str | |
arguments: str | |
class ChatCompletionMessage(BaseModel): | |
role: Optional[str] = Field( | |
None, description="The role of the author of this message" | |
) | |
content: Optional[str] = Field(None, description="The contents of the message") | |
reasoning_content: Optional[str] = Field( | |
None, description="The reasoning contents of the message" | |
) | |
tool_calls: Optional[List[Dict[str, Any]]] = Field( | |
None, description="Tool calls generated by the model" | |
) | |
class PromptTokensDetails(BaseModel): | |
cached_tokens: int | |
class CompletionTokensDetails(BaseModel): | |
reasoning_tokens: int | |
accepted_prediction_tokens: int | |
rejected_prediction_tokens: int | |
class Usage(BaseModel): | |
prompt_tokens: int | |
completion_tokens: int | |
total_tokens: int | |
prompt_tokens_details: Optional[PromptTokensDetails] | |
# completion_tokens_details: CompletionTokensDetails | |
class ChatCompletionChoice(BaseModel): | |
index: int | |
message: Optional[ChatCompletionMessage] = None | |
delta: Optional[ChatCompletionMessage] = None | |
logprobs: Optional[LogprobsContent] = None | |
finish_reason: Optional[str] = Field( | |
..., description="Reason for stopping: stop, length, content_filter, tool_calls" | |
) | |
class ChatCompletion(BaseModel): | |
id: str = Field(..., description="Unique identifier for the chat completion") | |
object: Literal["chat.completion"] = "chat.completion" | |
created: int = Field(..., description="Unix timestamp of creation") | |
model: str | |
choices: List[ChatCompletionChoice] | |
usage: Usage | |
class ChatCompletionChunk(BaseModel): | |
id: str = Field(..., description="Unique identifier for the chat completion") | |
object: Literal["chat.completion.chunk"] = "chat.completion.chunk" | |
created: int = Field(..., description="Unix timestamp of creation") | |
model: str | |
choices: List[ChatCompletionChoice] | |
usage: Optional[Usage] | |