趋近智
虽然大型语言模型擅长生成人类可读的文本,但许多应用需要更可预测、机器可解析的输出格式。直接处理自由格式文本可能脆弱且易出错。请求结构化输出,例如JSON或Markdown,是构建更可靠应用的一个基本步骤,这些应用能够以编程方式使用模型生成的信息。引导LLM生成这些特定格式回复的方法将得到介绍。
设想构建一个从电子邮件中提取联系信息并将其添加到数据库的应用。如果LLM返回一个句子,例如“联系人是John Doe,他的电子邮件是[email protected],电话是123-456-7890”,你的应用代码需要解析这个字符串以找到相关部分。这种解析逻辑可能变得复杂,并且如果LLM的措辞略有改变,可能会出现问题。
然而,如果你可以指示LLM返回:
{
"name": "John Doe",
"email": "[email protected]",
"phone": "123-456-7890"
}
处理变得非常简单。你可以直接将JSON字符串解析为原生数据结构(例如Python字典),并可预测地访问字段。类似地,请求Markdown输出对于生成旨在支持富文本格式的用户界面中呈现的内容也很有用。
优点包括:
实现结构化输出很大程度上依赖于清晰的指令,有时还包括提示中的示例。以下是常用策略:
明确指令: 最直接的方法是在提示指令中清晰说明所需格式。具体说明格式(例如,“JSON对象”、“Markdown列表”),如果可能,还要说明该格式内的结构。
模式描述(特别是针对JSON): 对于JSON,明确描述预期的键、每个键关联的数据类型(字符串、数字、布尔值、列表),以及字段是必需还是可选。你甚至可以描述嵌套结构。
提供示例(少样本学习): 在提示中包含一个或多个你期望的确切输出格式示例。这能强化指令,并为模型提供清晰的遵循模板。
使用分隔符: 指示模型将结构化输出置于特定分隔符内,例如三个反引号。这有助于将所需输出与模型可能生成的任何对话前言或解释区分开。例如:“提取实体并将它们作为JSON对象返回,用 json ... 包裹。”
让我们细化联系信息提取任务。我们希望LLM处理一段文本并返回一个包含姓名、电子邮件和公司的JSON对象。
提示:
从以下文本中提取姓名、电子邮件地址和公司名称。将信息作为JSON对象返回,键为“contact_name”、“contact_email”和“company”。如果缺少任何信息,则使用null作为其值。
文本:
“Reach out to Jane Smith from TechCorp Inc. at [email protected] regarding the project update.”
输出JSON:
预期LLM回复:
{
"contact_name": "Jane Smith",
"contact_email": "[email protected]",
"company": "TechCorp Inc."
}
变体与注意事项:
{
"contact_name": "Jane Smith",
"contact_email": "[email protected]",
"company": null
}
Markdown对于生成格式化文本很有用,例如摘要、列表或简单文档。
提示:
根据提供的上下文,总结大型语言模型用于客户支持的主要优点。按照以下格式总结:
- 一个主标题(H2级别),标题为“LLM在客户支持中的优点”。
- 一个无序列表,详细列出至少三个不同的优点。
- 将每个项目符号中的主要要点加粗。
上下文:
[在此插入描述LLM优点的文本:更快的响应时间、24/7可用性、处理常见查询、多语言支持、一致的语气等。]
格式化摘要:
预期LLM回复:
## LLM在客户支持中的优点
* **更快的响应时间**:LLM可以立即回复客户咨询,显著减少等待时间。
* **全天候可用**:与人工客服不同,由LLM驱动的机器人可以持续运行,提供全天候支持。
* **可扩展处理常见查询**:模型高效处理大量重复性问题,使人工客服得以处理复杂事务。
* **一致的沟通**:LLM在所有互动中保持既定的品牌声音和语气。
变体与注意事项:
#、##)、列表(*、-、1.)、粗体(**文本**)、斜体(*文本*)、代码块(````` ```````)和表格。掌握结构化输出生成是LLM应用开发者的实用技能。通过精心设计指定所需格式(如JSON或Markdown)并提供清晰示例的提示,可以显著提高LLM回复在软件系统中的可靠性和实用性。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造