Spaces:
Sleeping
Sleeping
| """ | |
| Application data models | |
| """ | |
| from typing import Dict, List, Optional, Any, Union, Literal | |
| from pydantic import BaseModel | |
| class ContentPart(BaseModel): | |
| """Content part model for OpenAI's new content format""" | |
| type: str | |
| text: Optional[str] = None | |
| class Message(BaseModel): | |
| """Chat message model""" | |
| role: str | |
| content: Optional[Union[str, List[ContentPart]]] = None | |
| reasoning_content: Optional[str] = None | |
| tool_calls: Optional[List[Dict[str, Any]]] = None | |
| class OpenAIRequest(BaseModel): | |
| """OpenAI-compatible request model""" | |
| model: str | |
| messages: List[Message] | |
| stream: Optional[bool] = False | |
| temperature: Optional[float] = None | |
| max_tokens: Optional[int] = None | |
| tools: Optional[List[Dict[str, Any]]] = None | |
| tool_choice: Optional[Any] = None | |
| class ModelItem(BaseModel): | |
| """Model information item""" | |
| id: str | |
| name: str | |
| owned_by: str | |
| class UpstreamRequest(BaseModel): | |
| """Upstream service request model""" | |
| stream: bool | |
| model: str | |
| messages: List[Message] | |
| params: Dict[str, Any] = {} | |
| features: Dict[str, Any] = {} | |
| background_tasks: Optional[Dict[str, bool]] = None | |
| chat_id: Optional[str] = None | |
| id: Optional[str] = None | |
| mcp_servers: Optional[List[str]] = None | |
| model_item: Optional[ModelItem] = None | |
| tool_servers: Optional[List[str]] = None | |
| variables: Optional[Dict[str, str]] = None | |
| model_config = {"protected_namespaces": ()} | |
| class Delta(BaseModel): | |
| """Stream delta model""" | |
| role: Optional[str] = None | |
| content: Optional[str] = "" or None | |
| reasoning_content: Optional[str] = None | |
| tool_calls: Optional[List[Dict[str, Any]]] = None | |
| class Choice(BaseModel): | |
| """Response choice model""" | |
| index: int | |
| message: Optional[Message] = None | |
| delta: Optional[Delta] = None | |
| finish_reason: Optional[str] = None | |
| class Usage(BaseModel): | |
| """Token usage statistics""" | |
| prompt_tokens: int = 0 | |
| completion_tokens: int = 0 | |
| total_tokens: int = 0 | |
| class OpenAIResponse(BaseModel): | |
| """OpenAI-compatible response model""" | |
| id: str | |
| object: str | |
| created: int | |
| model: str | |
| choices: List[Choice] | |
| usage: Optional[Usage] = None | |
| class UpstreamError(BaseModel): | |
| """Upstream error model""" | |
| detail: str | |
| code: int | |
| class UpstreamDataInner(BaseModel): | |
| """Inner upstream data model""" | |
| error: Optional[UpstreamError] = None | |
| class UpstreamDataData(BaseModel): | |
| """Upstream data content model""" | |
| delta_content: str = "" | |
| edit_content: str = "" | |
| phase: str = "" | |
| done: bool = False | |
| usage: Optional[Usage] = None | |
| error: Optional[UpstreamError] = None | |
| inner: Optional[UpstreamDataInner] = None | |
| class UpstreamData(BaseModel): | |
| """Upstream data model""" | |
| type: str | |
| data: UpstreamDataData | |
| error: Optional[UpstreamError] = None | |
| class Model(BaseModel): | |
| """Model information for listing""" | |
| id: str | |
| object: str = "model" | |
| created: int | |
| owned_by: str | |
| class ModelsResponse(BaseModel): | |
| """Models list response model""" | |
| object: str = "list" | |
| data: List[Model] | |