fix(product-suite): allow braces in business prompts
This commit is contained in:
@@ -4766,13 +4766,19 @@ class ProductSuiteTab(QWidget):
|
||||
if specs is None and not state.prompt.strip():
|
||||
self._message("商品卖点不能为空", "请填写商品卖点与要求,或使用AI帮写。")
|
||||
return False
|
||||
specs = list(specs or product_suite.build_job_specs(
|
||||
local_assets,
|
||||
state.prompt,
|
||||
state.settings,
|
||||
state.item_id or "未绑定商品",
|
||||
template_text=template_text,
|
||||
))
|
||||
try:
|
||||
specs = list(specs or product_suite.build_job_specs(
|
||||
local_assets,
|
||||
state.prompt,
|
||||
state.settings,
|
||||
state.item_id or "未绑定商品",
|
||||
template_text=template_text,
|
||||
))
|
||||
except product_suite.ProductSuitePromptError:
|
||||
message = "提示词渲染失败,请检查提示词设置中的变量格式。"
|
||||
self._message("无法生成商品套图", message)
|
||||
self._status(message, "danger")
|
||||
return False
|
||||
if not specs:
|
||||
self._message("生成数量为0", "请至少把一个套图分类的数量设为1。")
|
||||
return False
|
||||
@@ -5044,13 +5050,16 @@ class ProductSuiteTab(QWidget):
|
||||
except prompts.PromptError:
|
||||
return False
|
||||
local_assets = [asset for asset in self._original_assets(state) if _asset_usable(asset)]
|
||||
current_specs = product_suite.build_job_specs(
|
||||
local_assets,
|
||||
state.prompt,
|
||||
state.settings,
|
||||
state.item_id or "未绑定商品",
|
||||
template_text=template_text,
|
||||
)
|
||||
try:
|
||||
current_specs = product_suite.build_job_specs(
|
||||
local_assets,
|
||||
state.prompt,
|
||||
state.settings,
|
||||
state.item_id or "未绑定商品",
|
||||
template_text=template_text,
|
||||
)
|
||||
except product_suite.ProductSuitePromptError:
|
||||
return False
|
||||
return snapshot == self._generation_plan_snapshot(
|
||||
state,
|
||||
local_assets,
|
||||
|
||||
@@ -338,8 +338,7 @@ def render_product_suite_prompt(template_text, context):
|
||||
lambda match: values[match.group(1)],
|
||||
str(template_text),
|
||||
)
|
||||
if "{" in rendered or "}" in rendered:
|
||||
raise ProductSuitePromptError("提示词渲染后仍有未替换变量")
|
||||
# 模板已在替换前校验完成;业务文本中的花括号不是模板变量。
|
||||
return rendered.strip()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user