Spaces:
Paused
Paused
| from typing import List, Dict, Optional, Union, Literal, Any | |
| from pydantic import BaseModel, Field | |
| # openAI 请求 | |
| class ChatCompletionRequest(BaseModel): | |
| model: str | |
| messages: List[Dict[str, Any]] | |
| temperature: float = 0.7 | |
| top_p: Optional[float] = None | |
| top_k: Optional[float] = None | |
| n: int = 1 | |
| stream: bool = False | |
| stop: Optional[Union[str, List[str]]] = None | |
| max_tokens: Optional[int] = None | |
| presence_penalty: Optional[float] = 0.0 | |
| frequency_penalty: Optional[float] = 0.0 | |
| seed: Optional[int] = None | |
| logprobs: Optional[int] = None | |
| response_logprobs: Optional[bool] = None | |
| thinking_budget: Optional[int] = None | |
| reasoning_effort : Optional[str] = None | |
| # 函数调用 | |
| tools: Optional[List[Dict[str, Any]]] = None | |
| tool_choice: Optional[Union[Literal["none", "auto"], Dict[str, Any]]] = "auto" | |
| # gemini 请求 | |
| class ChatRequestGemini(BaseModel): | |
| contents: List[Dict[str, Any]] | |
| system_instruction: Optional[Dict[str, Any]]= None | |
| systemInstruction: Optional[Dict[str, Any]]= None | |
| safetySettings: Optional[List[Dict[str, Any]]] = None | |
| generationConfig: Optional[Dict[str, Any]] = None | |
| tools: Optional[List[Dict[str, Any]]] = None | |
| # AI模型请求包装 | |
| class AIRequest(BaseModel): | |
| payload: Optional[ChatRequestGemini] = None | |
| model: Optional[str] = None | |
| stream: bool = False | |
| format_type: Optional[str] = "gemini" | |
| class Usage(BaseModel): | |
| prompt_tokens: int = 0 | |
| completion_tokens: int = 0 | |
| total_tokens: int = 0 | |
| class ChatCompletionResponse(BaseModel): | |
| id: str | |
| object: Literal["chat.completion"] | |
| created: int | |
| model: str | |
| choices: List[Any] | |
| usage: Usage = Field(default_factory=Usage) | |
| class ErrorResponse(BaseModel): | |
| message: str | |
| type: str | |
| param: Optional[str] = None | |
| code: Optional[str] = None | |
| class ModelList(BaseModel): | |
| object: str = "list" | |
| data: List[Dict[str, Any]] | |
| class ChatResponseGemini(BaseModel): | |
| candidates: Optional[List[Any]] = None | |
| promptFeedback: Optional[Any] = None | |
| usageMetadata: Optional[Dict[str, int]] = None | |