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

相关推荐
IT_陈寒9 分钟前
JavaScript性能优化:这7个V8引擎技巧让我的应用速度提升了50%
前端·人工智能·后端
拉姆哥的小屋21 分钟前
突破传统!基于SAM架构的双模态图像分割:让AI“看见“红外与可见光的完美融合
人工智能·架构
AI数据皮皮侠2 小时前
中国上市公司数据(2000-2023年)
大数据·人工智能·python·深度学习·机器学习
我爱计算机视觉2 小时前
ICCV 2025 (Highlight) Being-VL:师夷长技,用NLP的BPE算法统一视觉语言模型
人工智能·算法·语言模型·自然语言处理
FunTester3 小时前
人工智能:技术分类、核心领域与应用全景
人工智能·语言模型·分类
xwz小王子3 小时前
首个零样本跨本体泛化开源具身模型:智源RoboBrain-X0 技术细节全解析
人工智能·团队开发
ggaofeng4 小时前
深度学习基本函数
人工智能·深度学习
XINVRY-FPGA5 小时前
XCVU9P-2FLGA2104E Xilinx AMD Virtex UltraScale+ FPGA
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发·射频工程·fpga
Elastic 中国社区官方博客6 小时前
Elasticsearch MCP 服务器:与你的 Index 聊天
大数据·服务器·人工智能·elasticsearch·搜索引擎·ai·全文检索
virtual_k1smet8 小时前
#等价于e * d ≡ 1 mod φ(n) #模逆元详解
人工智能·算法·机器学习