Skip to content

Commit f81495f

Browse files
committed
refactor: update API handling for MiniMax H3 model and improve parameter management
1 parent 54ffbe5 commit f81495f

2 files changed

Lines changed: 10 additions & 12 deletions

File tree

‎apps/models_provider/base_model_provider.py‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ def get_model_credential(self, model_type, model_name):
6767
api_base = model_credential.api_base
6868
if hasattr(api_base, "default_value") and not api_base.default_value:
6969
api_base.default_value = "https://dashscope.aliyuncs.com/api/v1"
70+
# MiniMax H3 视频模型固定走 v2 API
71+
if model_type in ("TTV", "ITV") and model_name.upper().startswith(("MiniMax-H3")):
72+
if hasattr(model_credential, "api_base"):
73+
api_base = model_credential.api_base
74+
if hasattr(api_base, "default_value"):
75+
api_base.default_value = "https://api.minimaxi.com/v2"
7076
return model_credential
7177

7278
def get_model_params(self, model_type, model_name):

‎apps/models_provider/impl/minimax_model_provider/model/ttv.py‎

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo):
1515
api_key: str
1616
api_base: str
1717
model_name: str
18-
params: dict
18+
params: dict = {}
1919
max_retries: int = 3
2020
retry_delay: int = 10 # 秒
2121

@@ -37,8 +37,6 @@ def __init__(self, **kwargs):
3737
self.params = kwargs.get("params", {}) or {}
3838
self.max_retries = kwargs.get("max_retries", 3)
3939
self.retry_delay = kwargs.get("retry_delay", 10)
40-
# 显式参数可覆盖自动探测(params.api_version: 'v1' / 'v2')
41-
self.api_version = self.params.get("api_version", "auto")
4240
self._session = self._build_session()
4341

4442
@staticmethod
@@ -73,13 +71,7 @@ def _build_session(self) -> requests.Session:
7371
# ---------- API 版本探测 / URL 构建 ----------
7472

7573
def _detect_api_version(self) -> str:
76-
"""探测当前使用 V1 还是 V2 (MiniMax-H3)。"""
77-
if self.api_version in ("v1", "v2"):
78-
return self.api_version
79-
# 模型名包含 H3 -> V2
80-
if self.model_name and "H3" in self.model_name.upper():
81-
return "v2"
82-
# api_base 路径包含 /v2 -> V2
74+
"""根据 api_base 路径判断当前使用 V1 还是 V2 (MiniMax-H3)。"""
8375
base_path = self.api_base.split("://", 1)[-1] if "://" in self.api_base else self.api_base
8476
if "/v2" in base_path:
8577
return "v2"
@@ -228,8 +220,8 @@ def _generate_video_v1(self, prompt, first_frame_url=None, last_frame_url=None,
228220
elif first_frame_url:
229221
payload["first_frame_image"] = first_frame_url
230222

231-
# 合并额外参数(duration, resolution 等),跳过版本探测专用字段
232-
payload.update({k: v for k, v in self.params.items() if k != "api_version"})
223+
# 合并额外参数(duration, resolution 等)
224+
payload.update(self.params)
233225

234226
maxkb_logger.info(f"提交视频生成任务(V1),模型: {self.model_name}")
235227
response_data = self._request("POST", base_url, json=payload)

0 commit comments

Comments
 (0)