fix(platform): 裸域拦截提到回填打标之前——防裸域被打成协议匹配端点(自查发现)

This commit is contained in:
yumoqing 2026-09-05 23:11:55 +08:00
parent d6228c59c6
commit 1dc55caf7f

View File

@ -523,6 +523,17 @@ async def _h_apply_llm_config(sor, params, ctx):
bu = (ep.get("base_url") or "").rstrip("/")
if not bu:
continue
# 裸域退化拦截新增与回填打标两条路径都要拦2026-09-05 e2e 实测:
# 提取 LLM 偶发把 base_url 提成裸域,回填打标会让裸域变「协议匹配」
# 端点被运行时选中 → 拼出 https://host/services/... → 404
pu = _urlparse(bu)
if not pu.path.strip("/"):
same_host = any(_urlparse((e.get("base_url") or "")).netloc == pu.netloc
and _urlparse((e.get("base_url") or "")).path.strip("/")
for e in merged)
if same_host:
skipped_eps.append("%s(裸域退化:同 host 已有带路径端点)" % bu)
continue
# 同 base_url 已存在:只补协议标签(旧端点无 protocol 时回填)
hit = None
for e in merged:
@ -533,14 +544,6 @@ async def _h_apply_llm_config(sor, params, ctx):
if protocol and not hit.get("protocol"):
hit["protocol"] = protocol
continue
# 裸域退化拦截:同 host 已有带路径端点 → 裸域跳过
pu = _urlparse(bu)
if not pu.path.strip("/"):
same_host = any(_urlparse((e.get("base_url") or "")).netloc == pu.netloc
for e in merged)
if same_host:
skipped_eps.append("%s(裸域退化:同 host 已有带路径端点)" % bu)
continue
merged.append({"base_url": bu, "region": ep.get("region") or "domestic",
"timeout": int(_f(ep.get("timeout"), 60)),
"protocol": protocol})