feat: 添加环境变量加载和思考配置处理

This commit is contained in:
coulsontl
2025-05-24 09:26:20 +08:00
parent b3a4306332
commit 484e5cdc42
3 changed files with 20 additions and 5 deletions
+1
View File
@@ -40,6 +40,7 @@ class GenerationConfig(BaseModel):
frequencyPenalty: Optional[float] = None frequencyPenalty: Optional[float] = None
responseLogprobs: Optional[bool] = None responseLogprobs: Optional[bool] = None
logprobs: Optional[int] = None logprobs: Optional[int] = None
thinkingConfig: Optional[Dict[str, Any]] = None
class SystemInstruction(BaseModel): class SystemInstruction(BaseModel):
+4
View File
@@ -1,4 +1,8 @@
import uvicorn import uvicorn
from dotenv import load_dotenv
# 在导入应用程序配置之前加载 .env 文件到环境变量
load_dotenv()
from app.core.application import create_app from app.core.application import create_app
from app.log.logger import get_main_logger from app.log.logger import get_main_logger
+14 -4
View File
@@ -98,10 +98,20 @@ def _build_payload(model: str, request: GeminiRequest) -> Dict[str, Any]:
payload.pop("systemInstruction") payload.pop("systemInstruction")
payload["generationConfig"]["responseModalities"] = ["Text", "Image"] payload["generationConfig"]["responseModalities"] = ["Text", "Image"]
if model.endswith("-non-thinking"): # 处理思考配置:优先使用客户端提供的配置,否则使用默认配置
payload["generationConfig"]["thinkingConfig"] = {"thinkingBudget": 0} client_thinking_config = None
if model in settings.THINKING_BUDGET_MAP: if request.generationConfig and request.generationConfig.thinkingConfig:
payload["generationConfig"]["thinkingConfig"] = {"thinkingBudget": settings.THINKING_BUDGET_MAP.get(model,1000)} client_thinking_config = request.generationConfig.thinkingConfig
if client_thinking_config is not None:
# 客户端提供了思考配置,直接使用
payload["generationConfig"]["thinkingConfig"] = client_thinking_config
else:
# 客户端没有提供思考配置,使用默认配置
if model.endswith("-non-thinking"):
payload["generationConfig"]["thinkingConfig"] = {"thinkingBudget": 0}
elif model in settings.THINKING_BUDGET_MAP:
payload["generationConfig"]["thinkingConfig"] = {"thinkingBudget": settings.THINKING_BUDGET_MAP.get(model,1000)}
return payload return payload