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 小时前
智慧警务图像融合大数据
大数据·图像处理·人工智能·目标检测·计算机视觉·目标跟踪
QxQ么么3 小时前
移远通信(桂林)26校招-助理AI算法工程师-面试纪录
人工智能·python·算法·面试
愤怒的可乐3 小时前
从零构建大模型智能体:统一消息格式,快速接入大语言模型
人工智能·语言模型·自然语言处理
每天一个java小知识5 小时前
AI Agent
人工智能
猫头虎5 小时前
如何解决 pip install 编译报错 fatal error: hdf5.h: No such file or directory(h5py)问题
人工智能·python·pycharm·开源·beautifulsoup·ai编程·pip
龙赤子5 小时前
人工智能AI的大框架
人工智能
比奥利奥还傲.5 小时前
本地+AI+大模型自由用!Cherry+Studio打破局域网限制
人工智能
雪碧聊技术5 小时前
深度学习、机器学习、人工智能三者的关系
人工智能·深度学习·机器学习
β添砖java5 小时前
机器学习初级
人工智能·机器学习
陈奕昆5 小时前
n8n实战营Day3:电商订单全流程自动化·需求分析与流程拆解
大数据·开发语言·人工智能·自动化·需求分析·n8n