diff --git a/pipeline_platform/platform_ability.py b/pipeline_platform/platform_ability.py index c5dc4ff..3bdc8ae 100644 --- a/pipeline_platform/platform_ability.py +++ b/pipeline_platform/platform_ability.py @@ -1168,12 +1168,12 @@ def _resp_tpl_for(capability, spec): field = _MEDIA_OUT_FIELD.get(outkey, 'result_url') note = ('产物字段名「%s」按供应商惯例兜底(文档未提供响应示例或示例中无 URL 字段),' '如上游字段不同需修正' % field) - resp = json.dumps({ - 'status': 'SUCCEEDED', - outkey: '{{ downloadfile2url(request, %s) }}' % field, - 'usage': '{{ json.dumps(usage) }}', - 'task_id': '{{ task_id }}', - }, ensure_ascii=False) + # usage 值不加包裹引号(2026-09-06 实测 bug):`"usage": "{{ json.dumps(usage) }}"` + # 在 usage 非空时内层双引号破坏外层 JSON 字符串值 → json.loads 断在 char 161, + # 渲染整体回退、生成物不落地。渲染为嵌套 JSON 对象才是合法形态,手工拼接: + resp = ('{"status": "SUCCEEDED", "%s": "{{ downloadfile2url(request, %s) }}", ' + '"usage": {{ json.dumps(usage) }}, "task_id": "{{ task_id }}"}' + % (outkey, field)) return resp, note