feat: 实现一键同步网站账号上游模型功能

This commit is contained in:
liumangmang
2026-07-02 15:43:00 +08:00
parent c70b68d814
commit 63cbdf4dca
6 changed files with 548 additions and 0 deletions
+15
View File
@@ -312,6 +312,21 @@ class Sub2ApiWebsiteClient:
data = _unwrap_data(resp)
return data if isinstance(data, dict) else {"value": data}
def sync_account_upstream_models(self, account_id: str, endpoint: str = "/accounts") -> list[str]:
"""拉取上游真实支持模型并返回列表。"""
quoted_id = quote(account_id, safe="")
path = f"{endpoint}/{quoted_id}/models/sync-upstream"
resp = self._request("POST", path)
data = _unwrap_data(resp)
if isinstance(data, list):
return [str(m) for m in data if m]
if isinstance(data, dict):
for key in ("models", "items", "data", "list"):
val = data.get(key)
if isinstance(val, list):
return [str(m) for m in val if m]
raise WebsiteError(f"同步上游模型接口返回的数据格式不正确: {resp}")
@staticmethod
def _unwrap_list(value: dict) -> list | None:
"""递归展开嵌套的列表包装:data.items、data.data、items、accounts 等。"""