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 产品更可控、更统一,也方便迭代和扩展。

相关推荐
山海青风2 小时前
11 Prompt 工程进阶:Few-shot 与 Chain-of-Thought
人工智能·prompt
爱看科技2 小时前
AI/AR智能眼镜步入全球破圈增长期,五大科技大厂入局加剧生态市场角逐
人工智能·科技·ar
人工智能培训2 小时前
AI提示词(Prompt)基础核心知识点
大模型·prompt·提示词·input
人有一心2 小时前
深度学习里的树模型TabNet
人工智能·深度学习
强盛小灵通专卖员2 小时前
边缘计算设备NPU的加速原理
人工智能·深度学习·边缘计算·sci·中文核心·小论文
moz与京2 小时前
【面试向】边缘计算基础介绍
人工智能·边缘计算
ShiMetaPi2 小时前
【ShiMetaPi】基于BM1684X的智能工业视觉边缘计算盒子解决方案
人工智能·边缘计算·bm1684x
强盛小灵通专卖员2 小时前
RK3576边缘计算设备部署YOLOv11
人工智能·深度学习·yolo·边缘计算·sci·rk3576·小论文
Ms_Big3 小时前
ppliteseg改rknn,部署在嵌入式板,加速模型
人工智能·python·深度学习