feat: 实现一键同步网站账号上游模型功能
This commit is contained in:
@@ -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 等。"""
|
||||
|
||||
Reference in New Issue
Block a user