fix: 修复已知问题
This commit is contained in:
parent
b7918ca615
commit
52f5b91b84
@ -667,7 +667,14 @@ def _read_mimo_non_stream_response(response, audio_format: str) -> tuple[bytes,
|
|||||||
try:
|
try:
|
||||||
payload = json.loads(raw_body)
|
payload = json.loads(raw_body)
|
||||||
except json.JSONDecodeError as exc:
|
except json.JSONDecodeError as exc:
|
||||||
raise RuntimeError(f"解析 mimo 响应失败: {exc}, 响应内容: {raw_body}") from exc
|
snippet = raw_body[:300]
|
||||||
|
if "<html" in raw_body.lower() or "<!doctype" in raw_body.lower():
|
||||||
|
raise RuntimeError(
|
||||||
|
"mimo 响应不是 JSON,疑似 base_url 配置错误(被网关前端 SPA 拦截),"
|
||||||
|
"请检查 base_url 是否配置为带 /v1 的完整地址,例如 https://api.xiaomimimo.com/v1。"
|
||||||
|
f"响应片段: {snippet}"
|
||||||
|
) from exc
|
||||||
|
raise RuntimeError(f"解析 mimo 响应失败: {exc}, 响应内容: {snippet}") from exc
|
||||||
|
|
||||||
if isinstance(payload.get("error"), dict):
|
if isinstance(payload.get("error"), dict):
|
||||||
error = payload["error"]
|
error = payload["error"]
|
||||||
@ -724,6 +731,13 @@ def synthesize_audio_mimo(config: dict, params: dict) -> tuple[bytes, str]:
|
|||||||
if not api_key:
|
if not api_key:
|
||||||
raise RuntimeError("mimo api_key 不能为空")
|
raise RuntimeError("mimo api_key 不能为空")
|
||||||
|
|
||||||
|
# 兼容用户把 base_url 配成不带 /v1 的根地址(如 New API / OneAPI 等网关),
|
||||||
|
# 避免请求被前端 SPA 兜底返回 index.html。
|
||||||
|
parsed_base = urllib.parse.urlsplit(base_url)
|
||||||
|
base_path = parsed_base.path or ""
|
||||||
|
if not base_path or base_path == "/":
|
||||||
|
base_url = f"{base_url}/v1"
|
||||||
|
|
||||||
url = f"{base_url}/chat/completions"
|
url = f"{base_url}/chat/completions"
|
||||||
payload, audio_format, stream = _build_mimo_payload(config, params)
|
payload, audio_format, stream = _build_mimo_payload(config, params)
|
||||||
request_data = json.dumps(payload, ensure_ascii=False).encode("utf-8")
|
request_data = json.dumps(payload, ensure_ascii=False).encode("utf-8")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user