提示词变量占位写法,就是把 prompt 里每次都要变的部分先做成占位符,用固定格式标出来,运行时再把具体的值填进去。这样一套模板能反复用,改的只是几个变量,不用每次重写整段话。
做法很简单:模板里统一用同一种占位格式,变量名用英文小写加下划线;调用前把变量填进去,再整段发给模型。关键是占位格式要跟模板里本来就有的花括号避开,别跟 JSON 里的大括号混在一起。
from string import Template
# 模板里用 $变量名 占位,避开 JSON 的花括号
code_tpl = Template("""
你是一名代码审查助手。
待审语言:$lang
代码:
$code
只输出问题清单,每条一行。
""")
prompt = code_tpl.substitute(
lang="Python",
code="def add(a, b):\n return a + b"
)
print(prompt)
两个坑最常见。一是模板里塞了 JSON 示例还去用 f-string 或 str.format,JSON 的大括号会被当成占位符直接报错,要么换成 $ 风格,要么把花括号写成双份。二是用户输入里本身就带占位符,填进去之后会被二次替换,填值前先做转义,或者选只替换一次的写法。