mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-06-03 14:49:42 +08:00
主要更新: 添加图像模型支持 新增MODEL_IMAGE配置项 在模型列表中添加gemini-2.0-flash-exp-image模型 修改ModelService以支持图像模型 增强图像处理能力 添加PicGoUploader类用于图像上传 实现图像响应处理逻辑(_extract_image_data) 支持base64图像数据的解码与上传 优化请求与响应处理 为图像模型添加特殊处理逻辑 修改API客户端以支持图像模型 更新GeminiRequest默认值 安全性调整 将TOOLS_CODE_EXECUTION_ENABLED默认设置为false
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
from typing import List, Optional, Dict, Any, Literal
|
|
from pydantic import BaseModel
|
|
|
|
|
|
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] = None
|
|
topP: Optional[float] = None
|
|
topK: Optional[int] = None
|
|
presencePenalty: Optional[float] = None
|
|
frequencyPenalty: Optional[float] = None
|
|
responseLogprobs: Optional[bool] = None
|
|
logprobs: Optional[int] = None
|
|
|
|
|
|
class SystemInstruction(BaseModel):
|
|
role: str = "system"
|
|
parts: List[Dict[str, Any]]
|
|
|
|
|
|
class GeminiContent(BaseModel):
|
|
role: str
|
|
parts: List[Dict[str, Any]]
|
|
|
|
|
|
class GeminiRequest(BaseModel):
|
|
contents: List[GeminiContent] = []
|
|
tools: Optional[List[Dict[str, Any]]] = []
|
|
safetySettings: Optional[List[SafetySetting]] = None
|
|
generationConfig: Optional[GenerationConfig] = {}
|
|
systemInstruction: Optional[SystemInstruction] = None
|