AI Prompt Engineering · 课时

在不同任务间复用模板

使用参数化模板构建个人提示库

第 4 / 4 课13 个步骤

在不同任务间复用模板 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是提示模板
  2. 创建填空模式
  3. 变量替换技巧
  4. 在不同任务间复用模板
← 返回 AI Prompt Engineering