来源:互联网 更新时间: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产出有组织、项目符号列表式的回应。无论是生成想法列表、流程步骤还是类别项目,掌握这点都将大幅提升回应的清晰度和可用性。
核心原则有哪些?
我们对比两个提示:一个没有特定的格式化指令,另一个则包含。
__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产出结构化列表的能力自然会越来越强。
接下来这堂课,聚焦于如何指导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生成结构化数据格式,是一项核心技能。无论是处理Web API、配置软件,还是整理数据,掌握这些技巧都能大大增强你的数据操作和自动化能力。
在深入细节之前,先把握几个核心原则:
通过示例来看看效果。
假设你想以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格式,提示可以这样写:
__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完成需要精确数据格式的任务。
终于来到最后一课——可执行代码精通。这堂课聚焦于一个至关重要的技能:构建提示,让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产生干净、可执行的代码。实践出真知,是时候动手试试了。
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
摩托车活塞环性能如何
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
Ondo将于今日上线股票永续合约
电视剧《罗曼诺夫后裔》剧情介绍
暗黑4S14野蛮人终局BD攻略
《三角洲行动》S10赛季卡邮件技巧详解-三种方法及风险提示
如何在火狐浏览器中彻底禁用自动更新功能?
区块链OTC交易所有哪几家比较正规?
手机qq浏览器误删文件如何找回-手机qq浏览器误删除文件怎样恢复
360浏览器如何设置网页缩放比例
《三角洲行动》GTI超人成就解锁攻略-满辐射状态击杀技巧详解
全链网:戴蒙或继续担任摩根大通首席执行官三年
什么是山寨币?山寨币指数如何查看?全球前10大山寨币盘点
Binance新增15种bStocks代币化证券为杠杆抵押资产
Sophon正在关闭其Layer2区块链并迁移到Base
全球十大加密货币APP v3.11.5正版下载
异环1.2前瞻什么时候
《三角洲行动》ASh-12战斗步枪改装攻略-省钱与击杀方案详解
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc