12 Prompt 模板化与参数化

12 Prompt 模板化与参数化

前情回顾

  • 第 11 节 我们学会了 Few-shot 和 Chain-of-Thought,可以让模型回答更稳定、推理更清晰。
  • 但如果每次都要人工写示例、复制粘贴 Prompt,不仅麻烦,还容易出错。
  • 这就是今天的主题:Prompt 模板化与参数化 ------ 把提示词写成可复用的模板,用参数来控制内容。

一、为什么要做 Prompt 模板化?

  1. 避免重复劳动

    • 如果你做客服机器人,每个回答都需要礼貌开头、总结结尾。
    • 模板化后,只需填充变量,不用每次都重写 Prompt。
  2. 保证输出一致性

    • 产品经理最怕 AI 输出风格不统一(有时太随意,有时太正式)。
    • 模板化能固定"回答风格"和"输出格式"。
  3. 便于迭代和调优

    • 当你要修改提示词策略时,只需改模板,不用到处找 Prompt。

👉 换句话说,Prompt 模板化就像写"AI 提示词的 PRD"


二、实践:写一个 Prompt 模板生成器

我们来写一个简单的 Python 小工具,把 Prompt 写成模板,并支持参数化。

1. Python 示例(保存为 prompt_template.py

python 复制代码
from string import Template
from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:11434/v1", api_key="ollama")

# 定义 Prompt 模板
template_text = """
你是一名专业的客服机器人,请用简洁、礼貌的语气回答用户问题。

[示例风格]
用户:如何重置密码?
AI:您好,您可以通过点击"忘记密码",然后按照提示步骤完成重置。

[问题]
用户:$question

请保持和示例一致的风格,直接给出答案。
"""

# 把模板编译为可替换对象
prompt_template = Template(template_text)

def ask(question):
    # 用参数替换模板中的变量
    prompt = prompt_template.substitute(question=question)
    resp = client.chat.completions.create(
        model="deepseek-r1",
        messages=[{"role": "user", "content": prompt}],
        temperature=0.2
    )
    return resp.choices[0].message.content

# 测试不同输入
print("Q: 如何申请报销?")
print("A:", ask("如何申请报销?"))

print("\nQ: 公司年假是多少天?")
print("A:", ask("公司年假是多少天?"))

2. 运行结果(示例)

复制代码
Q: 如何申请报销?
A: 您好,报销流程为:先提交报销申请,待审批通过后,再上传发票和凭证进行报销。

Q: 公司年假是多少天?
A: 您好,公司规定员工每年享有 10 天带薪年假。

👉 可以看到,不同问题都被套进了同一个 礼貌客服风格模板


三、模板还能做什么?

  1. 参数化 Few-shot

    • 把 Few-shot 示例写在模板里,用变量控制问题和答案。
    • 比如 FAQ 系统,可以自动生成几十个 Prompt,而不用手写。
  2. 固定输出格式

    • 可以强制 AI 按 JSON、Markdown、表格输出。

    • 例:

      复制代码
      请用 JSON 格式回答:
      {"答案": "...", "引用": "..."}
  3. 跨角色复用

    • 同一个问题,不同角色可以有不同模板:

      • 客服机器人:礼貌回答
      • 教师助手:分步骤讲解
      • 医疗助手:附带免责声明

四、产品经理思考

1. 为什么 PM 要推动 Prompt 模板化?

  • 可控性:输出风格统一,降低不可控风险。
  • 可维护性:方便团队调试和更新,不依赖个人经验。
  • 可扩展性:适配不同场景(客服、教育、金融),只需切换模板。

2. 在 PRD 中怎么写?

  • 功能需求:系统支持 Prompt 模板化与参数化。
  • 非功能需求:不同部门可以配置自己的模板,输出风格必须统一。
  • 验收标准:相同问题在 10 次调用中,输出格式和风格保持一致。

3. 案例

  • 教育场景:固定输出格式 → "逐步推理 + 总结"。
  • 客服场景:固定语气 → "您好,请您......"。
  • 金融场景:固定免责声明 → "以下信息仅供参考,不构成投资建议"。

五、小结

今天我们学习了:

  • Prompt 模板化和参数化的概念与价值。
  • 用 Python 写了一个小工具,把问题自动填进模板。
  • PM 视角:模板化能让 AI 产品更可控、更统一,也方便迭代和扩展。

相关推荐
陈广亮13 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬13 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia14 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区14 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两17 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪17 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat2325517 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
王鑫星17 小时前
SWE-bench 首次突破 80%:Claude Opus 4.5 发布,Anthropic 的野心不止于写代码
人工智能
lnix17 小时前
当“大龙虾”养在本地:我们离“反SaaS”的AI未来还有多远?
人工智能·aigc