热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >提示工程中的格式控制之旅

提示工程中的格式控制之旅

来源:互联网 更新时间:2026-07-28 15:24

从格式化基础说起,打造精确提示——这听起来可能是提示工程里最基础的东西,但恰恰是决定成败的关键一环。接下来的几节课,我们一起拆解如何让大型语言模型(LLM)的输出,按照我们想要的样子呈现。不管是简单的列表,还是结构化的JSON,掌握这些技巧,能让LLM的回答变得真正好用。

提示工程中的格式控制之旅

本文要点

  • 格式化基础:打造精确提示

  • 清晰要点:在提示工程中构建列表回应

  • Markdown标题在输出格式化中的应用

  • 结构化数据精通:LLM回应中的JSON和YAML格式

  • 可执行代码精通:确保LLMs仅产生可运行的输出


格式化基础:打造精确提示

先来看第一个主题:格式化基础,打造精确提示。这可不是那种枯燥晦涩的理论课,而是实实在在能拿来就用的实战技巧。一句话概括就是——你如何提问,决定了你得到什么回答。把提示写得清楚、具体,LLM才知道你究竟想要哪种格式的输出。

理解提示格式化基础

我们向LLM提出请求的方式,极大地影响着回应的质量。正确的格式化,就像给出一份清晰的说明书。来看个直观的例子:

__ASK__
List the top three benefits of using LLMs.
列出使用LLMs的前三大好处。

__CONSTRAINTS__
- Use bulleted list format.
- 使用项目符号列表格式。

示例输出:

- 提高内容生成效率:LLMs可以快速生成书面材料,加速报告撰写、网站内容创建和电子邮件起草等任务。
- 信息获取的改善:它们可以总结复杂文档,翻译语言,并提供即时问题答案,使信息对用户更加可获取。
- 个性化学习和协助:LLMs可以适应个人用户需求,提供教育环境中的定制辅导或个性化内容推荐,从而增强用户体验。

详细指令的作用

就好比做菜需要食谱,提示里的详细指令决定了LLM能不能产出你想要的确切格式。指定使用项目符号、编号列表,还是像JSON这样的复杂数据结构,都是它的用武之地。为什么是JSON?因为有时候输出是给电脑读的,而不是给人看的。结构化格式对计算机来说更容易处理。

看这个例子:

__ASK__
Generate a JSON object representing a simple to-do list.
生成一个表示简单待办事项列表的JSON对象。

__CONSTRAINTS__
- Include keys for "task" and "priority".
- 包括“任务”和“优先级”的键。
- Limit to three items.
- 限制为三项。

然后,你可能会收到类似这样的输出:

[
  {
    "task": "完成提示工程课程",
    "priority": "高"
  },
  {
    "task": "准备会议议程",
    "priority": "中等"
  },
  {
    "task": "预约兽医",
    "priority": "低"
  }
]

瞧,三个待办事项清清楚楚,任务和优先级一目了然。这种输出格式,人和机器都能轻松理解。

小结

掌握格式化提示的艺术,绝不只是为了追求美观。它是增强与LLM沟通效率的关键,让我们能得到最有效、最可用的输出。随着课程的深入,请记住这个核心原则:我们如何提问,与我们提问什么同样重要。有了正确的格式化基础,我们在提示工程这片天地里就有了十足的底气。


清晰要点:在提示工程中构建列表回应

进入第二课:清晰要点。理解并掌握引导模型以特定格式生成回应的技能,是提示工程里的一门必修课。这堂课重点讲的是如何构建提示,让LLM产出有组织、项目符号列表式的回应。无论是生成想法列表、流程步骤还是类别项目,掌握这点都将大幅提升回应的清晰度和可用性。

格式化项目列表的核心原则

核心原则有哪些?

  • 明确格式要求

    :直接告诉LLM,你希望输出是项目符号列表格式。

  • 情境化提问

    :提供足够的背景信息,确保回应的准确性和相关性。

  • 简洁是关键

    :提示要简单直接,避免让模型产生困惑。

我们对比两个提示:一个没有特定的格式化指令,另一个则包含。

没有格式化指令:

__ASK__
List the health benefits of drinking water.
列出喝水的健康益处。

这个提示会返回一个相当长且结构松散的回应,可能包含引言和结论,但核心信息埋没在文字里。

带有格式化指令:

__ASK__
Provide a bulleted list of the health benefits of drinking water.
提供喝水的健康益处的项目符号列表。

__CONSTRAINTS__
- Do not include an introduction or a conclusion
- 不包括引言或结论
- Use a bulleted list to organize the list
- 使用项目符号列表组织列表

示例输出:

- 维持体液平衡
- 帮助控制卡路里
- 激活肌肉
- 支持皮肤健康与美容
- 确保肾脏功能正常
- 维持正常的肠道功能

对比一目了然——加了格式化指令后,输出更专注、结构更好。

获取介绍性子项目符号

如果还想更精细,加入子项目符号,可以通过约束和示例来实现。

__ASK__
Provide a bulleted list of the health benefits of drinking water.
提供喝水的健康益处的项目符号列表。

__CONSTRAINTS__
- Do not include an introduction or a conclusion
- 不包括引言或结论
- Use a bulleted list to organize the list.
- 使用项目符号列表组织列表。
- Include only a few top-level bullets but go one or more level deeper to add sub-bullets.
- 只包括少数顶级项目符号,但深入一个或多个级别以添加子项目符号。


__FORMAT EXAMPLE__
- **Hydration and Physical Health**
- **水分补充与身体健康**
    - **Maintains balance of body fluids**
    - **维持体液平衡**
        - Aids in digestion
        - 帮助消化
        - Regulates body temperature
        - 调节体温
        - Transports nutrients
        - 运输营养
    - **Energizes muscles**
    - **激活肌肉**
        - Prevents muscle fatigue
        - 预防肌肉疲劳
        - Enhances exercise performance
        - 提高运动表现
    - **Ensures proper kidney function**
    - **确保肾脏功能正常**
        - Helps flush out toxins
        - 帮助排出毒素
        - Reduces risk of kidney stones
        - 降低患肾结石的风险 22...

注意,这里用的是__FORMAT EXAMPLE__而不是__EXAMPLE__,这是为了说明它不是一个精确的例子,而是一个格式示范。另外,即便我们没有在请求中明确指定顶级项目符号需要加粗,但有了格式示例,LLM依然能理解并执行。

小结

获取项目符号列表回应,需要精确性、清晰度以及对格式的深入理解。明确表达对项目符号列表的需求,并提供清晰上下文,能显著提高AI输出的有效性和可用性。这项技能在许多场景下都极具价值——从生成报告,到将信息总结为易于消化的格式。多练练不同提示,你引导LLM产出结构化列表的能力自然会越来越强。


Markdown标题在输出格式化中的应用

接下来这堂课,聚焦于如何指导LLM用Markdown标题来结构化输出。加班加点写报告时,如果内容能直接用Markdown格式组织好,那该多省事?这堂课就是教你怎么做到的。

核心原则

成功的关键在于提示中包含明确的指令和示例。直接看实例。

基本提示,没有格式化请求:

假设你正在写一份生物学报告,希望LLM帮忙完善,但又希望内容能以Markdown格式良好地结构化。初始提示可能像这样:

__ASK__
Describe the process of photosynthesis.
描述光合作用的过程。

这个提示只会产生一段叙述或列表,毫无结构层级可言。

增强提示,带有格式化请求:

__ASK__
Outline the process of photosynthesis using markdown headers for each main step.
使用Markdown标题概述光合作用过程的每个主要步骤。

__FORMAT EXAMPLE__
# Photosynthesis Process
# 光合作用过程
## Light Absorption
## 光吸收
Description...
描述...
## Carbon Dioxide Fixation
## 二氧化碳固定
Description...
描述...
...

通过包含明确的格式化请求和结构示例,提示更有可能引发一个组织良好、易于导航的回应。

高级结构:

如果只想用特定标题,比如只用h2类型标题(在Markdown中是##),怎么办?

__ASK__
Detail the journey of a red blood cell through the human body using markdown headers for each organ system it passes through.
使用Markdown标题详细描述红细胞在人体中的旅程,它通过的每个器官系统。

__CONSTRAINTS__
- Only use h2 type headers (`##`) in the markdown.
- 只在Markdown中使用h2类型标题(`##`)。
- Also include markdown tables for better information organization.
- 还包括Markdown表格以更好地组织信息。

__FORMAT EXAMPLE__
## Journey of a Red Blood Cell
## 红细胞的旅程
## Heart
## 心脏
## Right Atrium to Right Ventricle
## 右心房到右心室
## Lungs
## 肺部
## Gas Exchange
## 气体交换
...

这个提示展示了如何通过添加约束部分,让输出更加可控。

小结

制作能引导出Markdown标题组织的回应的提示,其实很直接,关键在于明确的格式化请求。可以尝试不同级别的标题规范,来达到期望的信息结构深度。熟练度来自实践,提示越精确,得到的输出就越结构化、越有用。


结构化数据精通:LLM回应中的JSON和YAML格式

进入结构化数据精通这一课。在数据交换和系统集成的世界里,指导LLM生成结构化数据格式,是一项核心技能。无论是处理Web API、配置软件,还是整理数据,掌握这些技巧都能大大增强你的数据操作和自动化能力。

获取正确格式的核心原则

在深入细节之前,先把握几个核心原则:

  • 指令的精确性

    :清晰地表达你期望的具体格式,无论是JSON、YAML还是其他。

  • 情境清晰性

    :提供足够的情境信息,让LLM明白数据该是什么结构。

通过示例来看看效果。

获取JSON格式

假设你想以JSON格式检索用户数据:

__ASK__
Generate sample user information in JSON format.
生成JSON格式的样本用户信息。

__CONSTRAINTS__
- The information should include name, age, and email of the user.
- 信息应包括用户的姓名、年龄和电子邮件。

__EXAMPLE__
{
  "name": "Jane Doe",
  "age": 28,
  "email": "jane.doe@example.com"
}

输出:

{
  "name": "Jane Doe",
  "age": 28,
  "email": "jane.doe@example.com"
}

获取YAML格式

如果需要YAML格式,提示可以这样写:

__ASK__
Generate sample user information in YAML.
生成YAML格式的样本用户信息。

__CONSTRAINTS__
- The information should include name, age, and email of the user.
- 信息应包括用户的姓名、年龄和电子邮件。
- Include example for 5 users different from the examples provided by me.
- 包括5个与我提供的示例不同的用户的示例。
- Pay careful attention to spacing consistency shown in the __EXAMPLE__ to ensure proper YAML syntax.
- 注意在__EXAMPLE__中显示的间距一致性,以确保正确的YAML语法。

__EXAMPLE__
- name: Jane Doe
  age: 28
  email: jane.doe@example.com

- name: John Smith
  age: 32
  email: john.smith@example.com

这里的关键是:我们包含了一个具备特定间距指南的示例,还明确了需要的样本数量,并提醒LLM注意示例部分的间距——因为YAML对空格极度敏感。

小结

精通特定格式的提示艺术,是在提示工程中装备的一项强大技能。这一课提供了所需的知识和示例,让你有信心从LLM请求并接收像JSON和YAML这样的结构化数据。把这些原则和示例用到提示构建中,就能充分利用LLM完成需要精确数据格式的任务。


可执行代码精通:确保LLMs仅产生可运行的输出

终于来到最后一课——可执行代码精通。这堂课聚焦于一个至关重要的技能:构建提示,让LLM生成的不仅仅是代码,而且是可执行的代码。关于可运行代码的提示工程,不依赖于复杂性,而在于清晰和精确。

理解可运行代码

在LLM的语境下,可运行代码意味着代码可以立即执行,无需任何修改或纠正。它是即时的、可操作的,而且最重要的是——正确的。要获得这样的代码,你需要深刻理解你正在请求的语言以及预期执行环境。

__ASK__
Generate a Python function that adds two numbers.
生成一个添加两个数字的Python函数。

__CONSTRAINTS__
- Use Python 3 syntax.
- 使用Python 3语法。
- Ensure the code can be run without any modifications.
- 确保代码可以无需任何修改即可运行。

这个提示会返回我们想要的函数,但很可能还包含一些介绍或结尾的文字。这意味着,如果我们想把这个输出直接输入到代码编译器中运行,会遇到麻烦。

完善提示

如何完善提示,只返回代码,其他一概不要?

__ASK__
Generate a Python function that adds two numbers.
生成一个添加两个数字的Python函数。

__CONSTRAINTS__
- Use Python 3 syntax.
- 使用Python 3语法。
- Ensure the code can be run without any modifications.
- 确保代码可以无需任何修改即可运行。
- Do not include an introduction or a conclusion, just give me the code.
- 不包括介绍或结论,只给我代码。

示例输出:

def add_numbers(a, b):
    return a + b

通过添加这个约束,LLM理解了你只想要可运行的代码。不过,你仍然可能得到用Markdown反引号包裹的代码——如果想完全跳过这些,可以考虑在提示中加入一个示例来说明。

小结

直接从LLM获取可运行的代码,提示的精确性和清晰性至关重要。明确指定代码的要求,同时强调简洁性、排除非代码元素的需求,就能引导LLM产生干净、可执行的代码。实践出真知,是时候动手试试了。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc