0Pricing
AI Prompt Engineering · 课时

页眉—正文—页脚提示模式

采用可扩展到复杂多任务提示的一致提示结构

页眉—正文—页脚提示模式 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。

将提示词视为文档

长篇文档——报告、文章、电子邮件——采用标头/正文/页脚结构,因为这种结构便于认知和导航。读者知道每个区域应包含什么内容。

同样的原则也适用于提示词。当提示词超过几句话时,标头/正文/页脚结构可以让提示词更易浏览、更易维护,也更一致。

这种模式适用于不同模型,并且可以从简单提示词扩展到高度复杂的提示词。

标头部分

标头回答两个问题:您是谁?以及任务是什么?

它设定模型的身份(角色或职责),并说明提示词的主要目标。其他所有内容都建立在这个基础之上。

优秀的标头应当简洁——通常为2到4句话。其中不包含示例、约束或输出规则。

header = '''
<header>
You are an expert technical writer specializing in API documentation.
Your task is to write clear, developer-friendly documentation
for the API endpoint described in the body of this prompt.
</header>
'''

print(header)

正文部分

正文包含模型完成任务所需的内容或上下文。这是主要的数据区域:

  • 要处理的源文档
  • 对话历史
  • 结构化数据(JSON、CSV 片段)
  • 参考材料
  • 用户的实际输入

正文是最大的部分,而且最常在运行时动态注入。

def build_body(endpoint_spec):
    return f'''
<body>
<endpoint_specification>
{endpoint_spec}
</endpoint_specification>
</body>
'''

spec = 'POST /api/v2/users\nRequest body: {email: string, role: admin|user}\nReturns: {id: string, created_at: ISO8601}'
print(build_body(spec))

页脚部分

页脚包含格式指令和输出模式。它之所以放在最后,是因为:

  • 模型从上到下阅读,并将格式规则应用于刚刚处理的内容
  • 靠近末尾的格式指令不太容易被忽略
  • 对于输出类型相同的提示词,页脚通常可以重复使用

页脚应当明确:返回一个包含这些字段的 JSON 对象,而不是格式美观。

footer = '''
<footer>
Format your response as a JSON object with these fields:
{
  "endpoint": "string",
  "summary": "string (one sentence)",
  "parameters": [{"name": "string", "type": "string", "required": true|false, "description": "string"}],
  "response_example": "string (JSON)",
  "error_codes": [{"code": "number", "meaning": "string"}]
}
Do not include any text outside the JSON object.
</footer>
'''

print(footer)

组合完整模式

将标头、正文和页脚组合成完整且可复用的提示词函数:

def build_api_doc_prompt(endpoint_spec):
    header = '<header>\nYou are an expert technical writer. Document the API endpoint in the body.\n</header>'
    body = f'<body>\n<endpoint>\n{endpoint_spec}\n</endpoint>\n</body>'
    footer = '<footer>\nReturn JSON: {"summary": str, "parameters": [...], "response_example": str}\nNo text outside JSON.\n</footer>'
    return '\n\n'.join([header, body, footer])

spec = 'GET /api/products/:id\nReturns product details by ID'
print(build_api_doc_prompt(spec))

这种顺序为何有效

标头/正文/页脚的顺序反映了模型处理上下文的方式:

  1. 首先是标头 — 建立身份和目标,为模型理解后续内容做好准备
  2. 其次是正文 — 模型现在会通过已确定的角色和任务来处理内容
  3. 最后是页脚 — 格式指令紧接在模型生成响应之前,从而最大限度地影响输出结构

将格式指令放在标头中(最前面),会导致模型在写出响应时已经部分遗忘这些指令。

扩展到复杂提示词

当提示词变得复杂时,页眉/正文/页脚模式可以自然扩展:

def build_complex_prompt(persona, task, context_docs, constraints, output_schema):
    header = f'<header>\n{persona}\nTask: {task}\n</header>'

    docs = '\n'.join(f'<document id="{i+1}">\n{d}\n</document>' for i, d in enumerate(context_docs))
    body = f'<body>\n{docs}\n</body>'

    constraint_list = '\n'.join(f'- {c}' for c in constraints)
    footer = f'<footer>\n<constraints>\n{constraint_list}\n</constraints>\n<output_schema>\n{output_schema}\n</output_schema>\n</footer>'

    return '\n\n'.join([header, body, footer])

复用页脚模板

由于页脚定义了输出结构,它是最容易复用的部分。常见的页脚模板包括:

FOOTER_JSON = '<footer>\nReturn a valid JSON object. No text outside JSON. No markdown code fences.\n</footer>'

FOOTER_MARKDOWN = '<footer>\nFormat your response as markdown.\nUse ## for section headers.\nUse bullet points for lists.\nMaximum 500 words.\n</footer>'

FOOTER_STRUCTURED = '<footer>\nRespond using this exact structure:\n1. Summary (1 sentence)\n2. Key Findings (bullet list)\n3. Recommendation (1 paragraph)\n</footer>'

print('Footer templates ready for reuse.')

在正文中注入动态内容

正文通常是在运行时动态构建的部分。动态注入正文的最佳实践:

  • 始终将注入的内容包裹在带名称的 XML 标签中
  • 在注入前清理用户输入,以防止提示词注入
  • 截断过长的文档,并在正文中注明已截断
  • 清晰标记每一段注入的内容(文档_1、用户查询、聊天历史)
def safe_inject(user_content, max_chars=3000):
    safe = user_content.replace('<', '&lt;').replace('>', '&gt;')
    if len(safe) > max_chars:
        safe = safe[:max_chars] + '... [TRUNCATED]'
    return f'<user_input>\n{safe}\n</user_input>'

raw = 'User provided text here. Could be very long.'
print(safe_inject(raw))

在整个代码库中保持一致的结构

当您的整个应用程序始终一致地使用同一模式时,页眉/正文/页脚模式才能真正发挥作用。优点包括:

  • 新团队成员可以立即理解任何提示词
  • 在代码审查中更容易审查提示词——审查者确切知道应该查看哪里
  • 自动化测试可以分别验证每个部分
  • 在不同模型之间迁移提示词非常直接——只需更改内容,而不必更改结构

页眉/正文/页脚中的常见错误

会破坏该模式有效性的常见错误:

  • 将格式说明放在页眉中——距离生成响应太远;模型会部分忽略它们
  • 将任务描述埋在正文中——模型可能会把它当作要处理的数据,而不是指令
  • 将约束拆分到不同部分——难以审查,并会导致矛盾
  • 没有页脚——随着提示词复杂度提高,输出结构会变得不可预测

快速检查

在页眉/正文/页脚模式中,输出格式说明应放在哪里?为什么?

页眉/正文/页脚——要点回顾

页眉/正文/页脚模式将文档结构规范带入了提示词工程:

  • 页眉:您是谁以及任务是什么——为后续所有内容设定框架
  • 正文:内容和上下文——动态注入,并包裹在具有语义的 XML 标签中
  • 页脚:格式说明和输出模式——放在最后,以最大程度影响输出结构
  • 该模式可以自然地从简单提示词扩展到高度复杂的提示词
  • 对于输出类型相同的提示词,页脚模板可以复用
  • 在整个代码库中保持一致性,可以让提示词更易于审查、测试和维护

常见问题解答

「页眉—正文—页脚提示模式」课时是免费的吗?

是的 — 「页眉—正文—页脚提示模式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。

「页眉—正文—页脚提示模式」这节课中我会学到什么?

采用可扩展到复杂多任务提示的一致提示结构 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Prompt Engineering 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「页眉—正文—页脚提示模式」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Prompt Engineering 课中编写并运行代码吗?

能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 XML 标签作为分隔符
  2. 模块化提示部分
  3. 页眉—正文—页脚提示模式
  4. 提示组织最佳实践
← 返回 AI Prompt Engineering