feat: AI 生图、图片下载优化

This commit is contained in:
Joey
2026-08-29 17:13:06 +08:00
parent a77ec26a02
commit 4ee667142b
20 changed files with 683 additions and 248 deletions
+16 -6
View File
@@ -24,15 +24,25 @@ RIGHTAPI_MODELS = [
"nano-banana-pro",
]
# 模型 → provider 推断表:前端只传模型名,服务端据此路由(模型名优先于 provider 字段)
MODEL_PROVIDERS: dict[str, str] = {
**{m: "tongyi" for m in TONGYI_MODELS},
**{m: "rightapi" for m in RIGHTAPI_MODELS},
}
# Pcore 生图模型白名单(pcore.ai 中转;同一模型名与 RightAPI 重名,用 @pcore 后缀区分路由)
PCORE_MODELS = ["gpt-image-2"]
# 豆包 Seedream 走火山方舟;模型由 ARK_IMAGE_MODEL 指定(不在下拉白名单内也允许直连豆包)
DOUBAO_MODELS = ["doubao-seedream-4-5-251128"]
MODEL_PROVIDERS.update({m: "doubao" for m in DOUBAO_MODELS})
# 模型 → provider 推断表:前端只传模型名,服务端据此路由(模型名优先于 provider 字段)
# 同名模型走多家中转时,前端传「api_model@provider」形式(如 gpt-image-2@pcore)
MODEL_PROVIDERS: dict[str, str] = {
**{m: "tongyi" for m in TONGYI_MODELS},
**{m: "rightapi" for m in RIGHTAPI_MODELS},
**{m: "doubao" for m in DOUBAO_MODELS},
**{f"{m}@pcore": "pcore" for m in PCORE_MODELS},
}
def api_model(model: str | None) -> str | None:
"""前端模型值 → 发给供应商 API 的模型名:'gpt-image-2@pcore' → 'gpt-image-2'。"""
return model.split("@", 1)[0] if model and "@" in model else model
def resolve_provider(model: str | None, requested: str | None, default: str) -> str: