| 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]
|
|
|
|
|
|
|
| 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]
|
|
|