当前位置: 首页 > news >正文

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

from string import Template
from openai import OpenAIclient = 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 产品更可控、更统一,也方便迭代和扩展。


文章转载自:

http://Ti5PzR9x.zLzpz.cn
http://NpaGWaXF.zLzpz.cn
http://E7yuHfk2.zLzpz.cn
http://UoHzNH72.zLzpz.cn
http://iPFyy8dr.zLzpz.cn
http://KEsfG6Q7.zLzpz.cn
http://TmhaR4EW.zLzpz.cn
http://aBvPMIPl.zLzpz.cn
http://AbGyu8IP.zLzpz.cn
http://dp1D2SoL.zLzpz.cn
http://wToXbnJb.zLzpz.cn
http://AXYtUkis.zLzpz.cn
http://YU327v90.zLzpz.cn
http://hDJrxOoL.zLzpz.cn
http://VbbdpgaO.zLzpz.cn
http://hoQdzcAK.zLzpz.cn
http://eQCkW3HB.zLzpz.cn
http://Qm9hEaD2.zLzpz.cn
http://4CbJJFlo.zLzpz.cn
http://7huidGGD.zLzpz.cn
http://0WU8QlbL.zLzpz.cn
http://Hy90ofdx.zLzpz.cn
http://mmExbKrV.zLzpz.cn
http://ae8RKwkU.zLzpz.cn
http://wnM8D5N6.zLzpz.cn
http://42ibhQN0.zLzpz.cn
http://UCWdEeAf.zLzpz.cn
http://0X8w3x7f.zLzpz.cn
http://6Et58NkZ.zLzpz.cn
http://WUDuz4vh.zLzpz.cn
http://www.dtcms.com/a/379208.html

相关文章:

  • 自动化车间无线安灯呼叫系统解决方案
  • Oracle APEX 如何运行页面时跳过登录页
  • list容器
  • Docker Compose:轻松管理多容器应用
  • 云蝠智能大模型呼叫新模型上线,拥抱AGI
  • 网站SEO内部优化一般包括哪些内容和方法
  • 18j621-3通风天窗图集pdf(免费高清版)
  • 以下是UniApp启动速度优化的深度方案
  • GoogLeNet实战:用PyTorch实现经典Inception模块
  • verilog中task的使用
  • SpringDoc OpenAPI集成spring boot3
  • 安卓13_ROM修改定制化-----安卓 13 系统 ROM 定制化与低版本系统的核心区别
  • yolo学习笔记02——yolo简介
  • OpenCV 开发 -- 图像算术运算
  • 字符串-43.字符串相乘-力扣(LeetCode)
  • java properties/反射基础
  • solidity的高阶语法4
  • Vue.js Data定义方式对比 data() { return {...} } 与 data: {} 的区别
  • P11961原根判断(1)
  • 特征空间的转换方法 IPM/LSS/Transformer
  • 【Vue3】05-Options API和Composition API的区别
  • 锁框架-面试
  • 电商 API 爬虫高阶技巧:多线程 / 异步请求结合,突破接口频率限制
  • vue两个组件互相引入时候会报错
  • 《芯片封装后未测试品粘连及边缘残胶的多维度工艺与材料失效分析》
  • MySQL基础全面解析
  • 探索容器技术:从LXC到Podman的演进
  • IntelliJ IDEA 启动项目时配置端口指南
  • java 实现rtsp 直播流下载
  • Python高级编程实战:装饰器、迭代器与生成器的深度应用