Files
video-gen/video-gen-api/app/schemas/credit_ratio.py
T
root 5302d7f531 前台页面/conversation修改积分计算逻辑
1、后台页面/credit-ratios,需要选择视频,上边是模型价格,下边增加传入视频价格,也要输入对应的倍率、基础积分、每秒积分
2、前台/conversation获取积分逻辑的接口也要增加对应的传入视频的比例
3、然后前台根据用户上传视频自动获取对应的比例加上对应模型选择的积分计算总积分
4、后台提交也要验证对应的积分是否正确
5、多个视频总时长需限制15s,最低视频时长2s
2026-07-01 19:37:51 +08:00

71 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from pydantic import BaseModel, ConfigDict, Field
from app.schemas.common import NaiveDatetime
class CreditRatioCreate(BaseModel):
model_config_id: str = Field(
...,
max_length=32,
description=(
"引擎ID,兼容旧字段名。gen_type=image 时填写 image_engines.id"
"gen_type=video 时填写 video_engines.id。当前不再绑定 model_configs.id 外键"
),
examples=["engine_xxx"],
)
gen_type: str = Field(
default="video",
max_length=16,
description="生成类型:image=图片积分规则,video=视频积分规则",
examples=["video"],
)
resolution: str = Field(
...,
max_length=16,
description="计费参数。视频为分辨率,例如 480p/720p/1080p;图片为分辨率档位,例如 2K/4K",
examples=["720p"],
)
ratio: float = Field(
...,
gt=0,
description="积分倍率。最终扣费会乘以该倍率",
examples=[1.0],
)
base_credits: float = Field(
default=80.0,
ge=0,
description="基础积分。视频按 base_credits + per_second_credits * duration 后再乘 ratio;图片按 base_credits * ratio",
examples=[80.0],
)
per_second_credits: float = Field(
default=2.0,
ge=0,
description="视频每秒积分。图片规则通常为 0",
examples=[2.0],
)
input_video_ratio: float = Field(
default=1.0,
ge=0,
description="传入视频积分倍率。视频生成时,用户上传参考视频的额外积分倍率",
examples=[1.0],
)
input_video_base_credits: float = Field(
default=0.0,
ge=0,
description="传入视频基础积分。视频生成时,用户上传参考视频的基础积分",
examples=[0.0],
)
input_video_per_second_credits: float = Field(
default=0.5,
ge=0,
description="传入视频每秒积分。视频生成时,用户上传参考视频每秒消耗的积分",
examples=[0.5],
)
class CreditRatioOut(CreditRatioCreate):
id: str = Field(..., description="积分规则ID")
created_at: NaiveDatetime = Field(..., description="创建时间")
model_config = ConfigDict(from_attributes=True)