From 69884fd2ec540450bd8854f18bf546c17e5d5739 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 5 Sep 2026 22:43:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(platform):=20=E7=AB=AF=E5=88=B0=E7=AB=AF?= =?UTF-8?q?=E5=AE=9E=E6=B5=8B=E6=8F=AA=E5=87=BA3=E4=B8=AAbug=E2=80=94?= =?UTF-8?q?=E2=80=94=E2=91=A0=E6=A8=A1=E5=9E=8B=E6=9B=B4=E6=96=B0=E5=88=86?= =?UTF-8?q?=E6=94=AF=E4=B8=8D=E5=88=B7=E6=96=B0profile=5Fid(=E6=97=A7?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E8=A2=AB=E5=BC=83=E7=94=A8=E9=87=8D=E5=BB=BA?= =?UTF-8?q?=E5=90=8E=E6=A8=A1=E5=9E=8B=E4=BB=8D=E6=8C=87deprecated?= =?UTF-8?q?=E2=86=92=E8=BF=90=E8=A1=8C=E6=97=B6=E5=B4=A9)=E2=91=A1legacy?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=A8=A1=E6=9D=BF=E5=A4=8D=E7=94=A8=E6=9C=AA?= =?UTF-8?q?=E5=81=9A=E9=AA=A8=E6=9E=B6=E8=87=AA=E6=84=88=E2=91=A2=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2path=E5=BD=92=E4=B8=80=E5=8C=96(=E5=8D=95=E8=8A=B1?= =?UTF-8?q?=E6=8B=AC=E5=8F=B7{task=5Fid}=E5=AF=B9=E9=BD=90=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E6=97=B6str.replace=E5=A5=91=E7=BA=A6+=E5=89=A5base?= =?UTF-8?q?=5Furl=E9=87=8D=E5=A4=8D=E5=89=8D=E7=BC=80+=E7=BC=BA=E5=8D=A0?= =?UTF-8?q?=E4=BD=8D=E7=AC=A6=E8=A1=A5/tasks/{task=5Fid})?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform_ability.cpython-310.pyc | Bin 21831 -> 58612 bytes pipeline_platform/platform_ability.py | 69 +++++++++++------- 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/pipeline_platform/__pycache__/platform_ability.cpython-310.pyc b/pipeline_platform/__pycache__/platform_ability.cpython-310.pyc index 1146bc4492a1aa4208ba56e4b94fa72a66fd8c5f..704177ced3f46b132e5aecfc280d375529f4d992 100644 GIT binary patch literal 58612 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

}Bo=578Ov7oo_!Rl+ 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 diff --git a/pipeline_platform/platform_ability.py b/pipeline_platform/platform_ability.py index 499fde5..f01d94d 100644 --- a/pipeline_platform/platform_ability.py +++ b/pipeline_platform/platform_ability.py @@ -621,11 +621,16 @@ async def _h_apply_llm_config(sor, params, ctx): "%s: 模型已存在且挂供应商 id=%s,与本次规格供应商(%s)不一致——" "未改供应商归属,仅更新描述/同步模式;如需迁移请明确指示" % (vmid, cur_vendor, vendor_name)) + # profile_id 必须一并刷新(2026-09-05 实测 bug):模型原挂模板可能已被 + # 弃用重建(旧骨架自愈),不刷新则运行时仍指 deprecated 模板→必崩 + new_pid = profile_ids.get(cap, "") await sor.sqlExe( "UPDATE llm_model SET description=${d}$, " - "sync_mode=${sm}$, query_profile_ids=${q}$, updated_at=NOW() " + "sync_mode=${sm}$, query_profile_ids=${q}$, " + "profile_id=IF(${p}$='', profile_id, ${p}$), updated_at=NOW() " "WHERE id=${i}$", - {"d": desc, "sm": sync_mode, "q": query_ids_json, "i": mid}) + {"d": desc, "sm": sync_mode, "q": query_ids_json, + "p": new_pid, "i": mid}) await sor.sqlExe("COMMIT", {}) updated.append(vmid) continue @@ -989,42 +994,56 @@ async def _ensure_step_profile(sor, protocol, cap, vmid, step, spec): """异步后续步骤的适配模板(query/download)。 2026-09-05 改造(用户:同类任务查询接口供应商级相同,可复用): - 幂等键=名称「{protocol}-query-{path}」(去掉模型维度)——同供应商同协议 - 下多个模型共享同一份查询模板;旧的按 {vmid}-{purpose} 命名继续兼容复用。 - 模板按文档真实生成:运行时查询只用 path/headers/method,task_id 经 - path 占位(如 /tasks/{{task_id}});不再产 __from_doc__ 骨架。 + 幂等键=名称「{protocol}-{purpose}-{path}」(去掉模型维度)——同供应商同协议 + 下多个模型共享同一份查询模板;旧的 {vmid}-{purpose} 命名兼容复用, + 但若旧模板仍是骨架(__from_doc__)同样弃用重建。 + path 归一化(对齐运行时契约,实测踩过三个坑): + - 任务号占位符用**单花括号** {task_id}(运行时 str.replace 消费, + Jinja 双花括号不会被替换);文档给 {{task_id}} 也归一为单花括号 + - 剥掉 base_url 已有的路径前缀(提取给 /api/v1/tasks/{task_id}, + 运行时 url=base_url+path,base_url 已含 /api/v1 → 不归一会双前缀 404) + - 缺占位符时按 DashScope 惯例补 /tasks/{task_id} 返回 profile id。 """ purpose = (step.get("purpose") or "query").strip() or "query" path = (step.get("path") or "").strip() method = (step.get("method") or ("GET" if purpose == "query" else "POST")).strip().upper() + # path 归一化 + from urllib.parse import urlparse + bu_path = urlparse((spec.get("base_url") or "").strip()).path.rstrip("/") + if bu_path and path.startswith(bu_path + "/"): + path = path[len(bu_path):] + path = path.replace("{{task_id}}", "{task_id}") + if "{task_id}" not in path and purpose == "query": + path = (path.rstrip("/") + "/{task_id}") if path else "/tasks/{task_id}" shared_name = "%s-%s-%s" % (protocol, purpose, path or "default") legacy_name = "%s-%s" % (vmid, purpose) - recs = await sor.sqlExe( - "SELECT id FROM llm_api_profile WHERE name=${n}$ AND status='active' LIMIT 1", - {"n": shared_name}) - await sor.sqlExe("COMMIT", {}) - if recs: - return getattr(recs[0], "id", "") - recs = await sor.sqlExe( - "SELECT id FROM llm_api_profile WHERE name=${n}$ AND status='active' LIMIT 1", - {"n": legacy_name}) - await sor.sqlExe("COMMIT", {}) - if recs: - return getattr(recs[0], "id", "") + for cand in (shared_name, legacy_name): + recs = await sor.sqlExe( + "SELECT id, request_template, response_template FROM llm_api_profile " + "WHERE name=${n}$ AND status='active' LIMIT 1", {"n": cand}) + await sor.sqlExe("COMMIT", {}) + if not recs: + continue + old_tpl = (getattr(recs[0], "request_template", "") or "") + \ + (getattr(recs[0], "response_template", "") or "") + if not any(mk in old_tpl for mk in _SKELETON_MARKERS): + return getattr(recs[0], "id", "") + pid_old = getattr(recs[0], "id", "") + await sor.sqlExe("UPDATE llm_api_profile SET status='deprecated' " + "WHERE id=${i}$", {"i": pid_old}) + await sor.sqlExe("COMMIT", {}) + # 旧骨架弃用——继续往下重建(不 return) headers = _headers_from_spec(spec) if method == "GET": req = json.dumps({"method": method}, ensure_ascii=False) - if "{{task_id}}" not in path: - # path 没带任务号占位时按 DashScope 惯例拼 /tasks/{id};notes 如实标注 - path = (path.rstrip("/") + "/{{task_id}}") if path else "/tasks/{{task_id}}" else: req = json.dumps({"method": method, - "data": {"task_id": "{{task_id}}"}}, ensure_ascii=False) - # 查询步骤的响应渲染在运行时由提交模板的 response_template 接管 - # (inference 轮询直接调 _render_response(submit_profile,...)),这里存档即可 + "data": {"task_id": "{task_id}"}}, ensure_ascii=False) + # 查询步骤的响应解析在运行时由提交模板的 response_template 接管 + # (inference._async_inference 轮询后直接用提交模板渲染),这里存档即可 resp = json.dumps({ - "__note__": "查询步骤模板:运行时响应解析走模型提交模板的 response_template", + "note": "查询步骤模板:运行时响应解析走模型提交模板的 response_template", "response_format": step.get("response_format", "") or "", }, ensure_ascii=False) pid = getID()