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