在不同任务间复用模板
使用参数化模板构建个人提示库
在不同任务间复用模板 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。
从临时处理到提示词库
大多数提示词工程师一开始都会临时编写提示词——每项任务编写一个,随意保存在笔记应用或聊天记录中。这种方式在规模较小时可行,但当您需要在不同任务、团队成员或时间段之间保持一致性时,就会逐渐难以维持。
提示词库是可复用提示词模板的结构化集合,具有组织、命名、版本管理和文档记录等特征。对于任何经常生成 AI 内容的工作流程而言,构建提示词库都是一项能够迅速带来回报的投入。
文件组织:扁平结构
最简单的提示词库是由模板文件组成的扁平目录:
prompts/ email_cold_outreach.j2 email_follow_up.j2 linkedin_post.j2 product_description.j2 blog_post_intro.j2 support_reply.j2
扁平结构在模板数量达到约 30–50 个之前都很实用。超过这个数量后,分类目录结构会更易于查找。
文件组织:分类结构
对于较大的模板库,请按内容类型或使用场景组织模板:
prompts/ marketing/ email_cold_outreach.j2 social_linkedin_post.j2 support/ reply_complaint.j2 reply_question.j2 content/ blog_post.j2 product_description.j2 internal/ meeting_summary.j2 project_update.j2
请根据团队思考任务的方式进行分类,而不要依据提示词工程概念进行分类。
命名约定
模板名称应当让人一眼就能了解其用途。以下是一些好的命名模式:
- 内容类型 + 上下文:
email_cold_outreach、post_linkedin_announcement - 操作 + 对象:
summarize_meeting、analyze_feedback、generate_tagline - 角色 + 任务:
support_reply_complaint、marketing_product_description
请避免使用 template1、prompt_v2 或 new_thing 之类的通用名称。好的名称无需打开文件就能读懂。
模板版本管理
随着您不断发现改进之处,提示词会随时间发生变化。对模板进行版本控制可以防止历史记录丢失和回归问题:
- 将模板存储在 git 中——每次更改都会被记录,并且可以恢复
- 如果不使用 git 进行基于文件的版本管理:
email_cold_outreach_v1.j2、v2.j2、v3.j2 - 标记主要的生产版本:在顶部添加注释,注明哪个版本何时上线
- 绝不要在不保留副本的情况下覆盖文件——上个月运行良好的版本可能需要恢复
Git 是最稳妥的选择:在项目代码库中使用专门的 prompts/ 目录。
模板文档头
每个模板文件都应包含文档头。这是位于文件顶部的注释块,用于记录关键元数据:
# Template: email_cold_outreach.j2
# Version: 2.1
# Author: Sarah Chen
# Created: 2025-03-15
# Last modified: 2025-05-10
# Changes in v2.1: Added 'value_prop' variable, removed generic opener
#
# Purpose:
# Generate personalized cold outreach emails for B2B sales.
#
# Required variables:
# - sender_name: str — Name of the sender
# - recipient_name: str — First name of the recipient
# - company_name: str — Recipient's company
# - value_prop: str — 1-2 sentence value proposition tailored to this prospect
# - cta: str — Specific call to action (e.g., '15-minute discovery call')
#
# Optional variables:
# - tone: str (default: 'professional but warm')
# - word_count: int (default: 120)
#
# Example output: see examples/email_cold_outreach_sample.txt
# Known limitations: Performs best when value_prop is specific to the company.模板注册表
对于团队环境,模板注册表——一个列出所有可用模板的中央索引文件——可以大幅加快查找速度:
# prompts/registry.py
# Central index of all prompt templates
TEMPLATE_REGISTRY = {
'email_cold_outreach': {
'file': 'marketing/email_cold_outreach.j2',
'description': 'Cold outreach email for B2B prospecting',
'required_vars': ['sender_name', 'recipient_name', 'company_name', 'value_prop', 'cta'],
'optional_vars': {'tone': 'professional but warm', 'word_count': 120},
'version': '2.1',
'owner': 'sarah.chen'
},
'linkedin_post': {
'file': 'marketing/linkedin_post.j2',
'description': 'LinkedIn announcement post with professional tone',
'required_vars': ['company', 'announcement', 'cta'],
'optional_vars': {'tone': 'professional and approachable', 'word_count': 180},
'version': '1.0',
'owner': 'marketing_team'
}
}
def get_template_info(name):
return TEMPLATE_REGISTRY.get(name, None)跨任务复用模板
模板库的真正价值在于发现:同一个模板只需稍微更改变量,就能用于多个任务。请寻找跨任务复用的机会:
- 产品描述模板可以通过使用不同的长度和语气变量,同时生成网站文案和应用商店描述
- 摘要模板可以通过更改内容类型变量,用于会议摘要、文章摘要和代码审查摘要
- 比较模板可以通过更改对象和标准变量,用于比较产品、求职者和技术方案
当您发现自己要编写新模板时,请先搜索模板库。
模板组合:基础模板 + 子模板
Jinja2 支持模板继承——基础模板定义通用结构,子模板重写特定代码块。这样可以减少相关模板之间的重复:
# prompts/base_content.j2 — shared structure for all content templates
'''
You are a professional writer for {{company}}.
Style rules (apply to all outputs):
- Active voice
- No jargon unless defined
- Sentences under 25 words
- No passive voice
- Warm, direct tone
{% block task %}{% endblock %}
{% block constraints %}
Length: {{word_count | default(200)}} words.
{% endblock %}
'''
# prompts/blog_post.j2 — inherits base, adds blog-specific instructions
'''
{% extends 'base_content.j2' %}
{% block task %}
Write a blog post about {{topic}} for {{audience}}.
Structure: Hook (1 para) + Problem (1-2 para) + Solution (2-3 para) + Takeaway (1 para).
Include one concrete example.
{% endblock %}
{% block constraints %}
{{ super() }}
Do not mention competitors. Include one pull quote.
{% endblock %}
'''跟踪模板性能
在生产流程中,请跟踪哪些模板版本能够生成最佳输出。一种简单的日志记录方法是:
import json
import datetime
def log_generation(template_name, template_version, variables, output, rating=None):
log_entry = {
'timestamp': datetime.datetime.utcnow().isoformat(),
'template': template_name,
'version': template_version,
'input_vars': {k: str(v)[:50] for k, v in variables.items()}, # truncate for log
'output_length': len(output),
'rating': rating # optional human rating 1-5
}
with open('logs/generation_log.jsonl', 'a') as f:
f.write(json.dumps(log_entry) + '\n')
# Usage after generation
log_generation(
template_name='email_cold_outreach',
template_version='2.1',
variables={'sender_name': 'Alice', 'company_name': 'Acme'},
output='Dear Mr. Smith...',
rating=4
)何时弃用模板
模板会逐渐过时。以下迹象表明模板应当弃用或更新:
- 输出一贯需要大量手动编辑——这说明模板没有捕捉到正确的要求
- 任务发生了变化(新的品牌规范、新的受众或新的格式要求)
- 模型版本发生了变化,模板指令不再按预期工作
- 已经编写了更好的模板,可以取代当前模板
请将弃用的模板归档,而不是删除——在注册表中将其标记为已弃用,并将文件保存在 archive/ 子目录中。您可能需要了解旧输出为何会呈现出当时的样子。
知识检查:提示词库
您的团队有 8 人,为三种不同的用途生成人工智能内容:电子邮件营销活动、产品文档和社交媒体。目前,您将 45 个提示词模板保存在共享的 Google 文档中,但没有统一的命名方式、版本历史记录或文档说明。首先进行哪项改进能够带来最大的影响?
回顾:跨任务复用模板
提示词库可以将临时提示词转变为可复用、易维护的资产。关键实践包括:有组织的文件结构(模板数量不超过 50 个时采用扁平结构,超过时进行分类)、统一的命名约定、包含必需变量和版本说明的文档头,以及使用 Git 进行版本控制。
模板库最有价值的用法是跨任务复用:只需更改变量值,同一个模板结构就能服务于多个用途。通过 Jinja2 继承进行模板组合,可以减少相关模板的重复。请主动跟踪性能并弃用过时模板。
用 AI 导师学习 AI Prompt Engineering — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 53
- 课程
- 199
常见问题解答
「在不同任务间复用模板」课时是免费的吗?
是的 — 「在不同任务间复用模板」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。
「在不同任务间复用模板」这节课中我会学到什么?
使用参数化模板构建个人提示库 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「在不同任务间复用模板」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。