Spaces:
Running
Running
from typing import Any, Dict, List, Literal, Optional, Union | |
from pydantic import BaseModel, Field | |
from app.core.constants import DEFAULT_TEMPERATURE, DEFAULT_TOP_K, DEFAULT_TOP_P | |
class SafetySetting(BaseModel): | |
category: Optional[ | |
Literal[ | |
"HARM_CATEGORY_HATE_SPEECH", | |
"HARM_CATEGORY_DANGEROUS_CONTENT", | |
"HARM_CATEGORY_HARASSMENT", | |
"HARM_CATEGORY_SEXUALLY_EXPLICIT", | |
"HARM_CATEGORY_CIVIC_INTEGRITY", | |
] | |
] = None | |
threshold: Optional[ | |
Literal[ | |
"HARM_BLOCK_THRESHOLD_UNSPECIFIED", | |
"BLOCK_LOW_AND_ABOVE", | |
"BLOCK_MEDIUM_AND_ABOVE", | |
"BLOCK_ONLY_HIGH", | |
"BLOCK_NONE", | |
"OFF", | |
] | |
] = None | |
class GenerationConfig(BaseModel): | |
stopSequences: Optional[List[str]] = None | |
responseMimeType: Optional[str] = None | |
responseSchema: Optional[Dict[str, Any]] = None | |
candidateCount: Optional[int] = 1 | |
maxOutputTokens: Optional[int] = None | |
temperature: Optional[float] = DEFAULT_TEMPERATURE | |
topP: Optional[float] = DEFAULT_TOP_P | |
topK: Optional[int] = DEFAULT_TOP_K | |
presencePenalty: Optional[float] = None | |
frequencyPenalty: Optional[float] = None | |
responseLogprobs: Optional[bool] = None | |
logprobs: Optional[int] = None | |
thinkingConfig: Optional[Dict[str, Any]] = None | |
class SystemInstruction(BaseModel): | |
role: Optional[str] = "system" | |
parts: Union[List[Dict[str, Any]], Dict[str, Any]] | |
class GeminiContent(BaseModel): | |
role: Optional[str] = None | |
parts: List[Dict[str, Any]] | |
class GeminiRequest(BaseModel): | |
contents: List[GeminiContent] = [] | |
tools: Optional[Union[List[Dict[str, Any]], Dict[str, Any]]] = [] | |
safetySettings: Optional[List[SafetySetting]] = Field( | |
default=None, alias="safety_settings" | |
) | |
generationConfig: Optional[GenerationConfig] = Field( | |
default=None, alias="generation_config" | |
) | |
systemInstruction: Optional[SystemInstruction] = Field( | |
default=None, alias="system_instruction" | |
) | |
class Config: | |
populate_by_name = True | |
class ResetSelectedKeysRequest(BaseModel): | |
keys: List[str] | |
key_type: str | |
class VerifySelectedKeysRequest(BaseModel): | |
keys: List[str] | |