fix(video-api): 对齐图片参数风格并兼容n字段
This commit is contained in:
1 parent
69dcf2fe0c
commit
7c997ea671
1 file changed
+18
-9
+18
-9
@@ -36,6 +36,7 @@ class VideoConfig(BaseModel):
|
||||
video_length: Optional[int] = Field(6, description="视频时长(秒): 6 / 10 / 15")
|
||||
resolution_name: Optional[str] = Field("480p", description="视频分辨率: 480p, 720p")
|
||||
preset: Optional[str] = Field("custom", description="风格预设: fun, normal, spicy")
|
||||
n: Optional[int] = Field(None, ge=1, le=4, description="生成数量 (1-4,仅非流式)")
|
||||
concurrent: Optional[int] = Field(1, ge=1, le=4, description="并发视频数 (1-4,仅非流式)")
|
||||
|
||||
class ImageConfig(BaseModel):
|
||||
@@ -55,6 +56,7 @@ class ChatCompletionRequest(BaseModel):
|
||||
reasoning_effort: Optional[str] = Field(None, description="推理强度: none/minimal/low/medium/high/xhigh")
|
||||
temperature: Optional[float] = Field(0.8, description="采样温度: 0-2")
|
||||
top_p: Optional[float] = Field(0.95, description="nucleus 采样: 0-1")
|
||||
n: Optional[int] = Field(None, ge=1, le=10, description="通用生成数量(视频可作为并发回退)")
|
||||
# 视频生成配置
|
||||
video_config: Optional[VideoConfig] = Field(None, description="视频生成参数")
|
||||
# 图片生成配置
|
||||
@@ -515,20 +517,27 @@ def validate_request(request: ChatCompletionRequest):
|
||||
param="video_config.preset",
|
||||
code="invalid_preset",
|
||||
)
|
||||
if config.concurrent is None:
|
||||
config.concurrent = 1
|
||||
if config.concurrent < 1 or config.concurrent > 4:
|
||||
resolved_video_n = (
|
||||
config.n
|
||||
if config.n is not None
|
||||
else (config.concurrent if config.concurrent is not None else request.n)
|
||||
)
|
||||
if resolved_video_n is None:
|
||||
resolved_video_n = 1
|
||||
if resolved_video_n < 1 or resolved_video_n > 4:
|
||||
raise ValidationException(
|
||||
message="concurrent must be between 1 and 4",
|
||||
param="video_config.concurrent",
|
||||
message="video n must be between 1 and 4",
|
||||
param="video_config.n",
|
||||
code="invalid_concurrent",
|
||||
)
|
||||
if bool(effective_stream) and config.concurrent > 1:
|
||||
if bool(effective_stream) and resolved_video_n > 1:
|
||||
raise ValidationException(
|
||||
message="Streaming is only supported when video_config.concurrent=1",
|
||||
param="video_config.concurrent",
|
||||
message="Streaming is only supported when video_config.n=1",
|
||||
param="video_config.n",
|
||||
code="invalid_stream_concurrent",
|
||||
)
|
||||
config.n = int(resolved_video_n)
|
||||
config.concurrent = int(resolved_video_n)
|
||||
request.video_config = config
|
||||
|
||||
|
||||
@@ -691,7 +700,7 @@ async def chat_completions(request: ChatCompletionRequest):
|
||||
if model_info and model_info.is_video:
|
||||
# 提取视频配置 (默认值在 Pydantic 模型中处理)
|
||||
v_conf = request.video_config or VideoConfig()
|
||||
video_concurrent = int(v_conf.concurrent or 1)
|
||||
video_concurrent = int(v_conf.n or v_conf.concurrent or request.n or 1)
|
||||
if video_concurrent <= 1:
|
||||
result = await VideoService.completions(
|
||||
model=request.model,
|
||||
|
||||
Reference in new issue
Block a user