AI PRO·Prompt Day 5 结构化输出与格式控制:让AI输出你想要的格式

作者:

![配图待生成]

一句话总结

结构化输出 = 让AI按照你指定的格式输出,而不是自由发挥。

格式不对,再好的内容也没用。


为什么需要结构化输出?

问题:AI输出格式不一致

`

第一次:苹果是水果

第二次:🍎 苹果 – 水果,红色,甜

第三次:苹果(水果)

`

每次输出格式都不一样,后续处理很麻烦。

解决:指定输出格式

`

请按照以下格式输出:

[emoji] [名称] – [类别],[特征1],[特征2]

输入:苹果

输出:🍎 苹果 – 水果,红色,甜

输入:汽车

输出:🚗 汽车 – 交通工具,四轮,快速

`


常用输出格式

1. JSON格式

基础用法

`

请以JSON格式输出:

{

“标题”: “…”,

“摘要”: “…”,

“关键词”: [“…”, “…”]

}

`

带类型说明

`json

请以JSON格式输出,字段类型如下:

{

“name”: “string – 姓名”,

“age”: “number – 年龄”,

“email”: “string – 邮箱”,

“is_active”: “boolean – 是否激活”

}

`

带示例

`

请以JSON格式输出:

示例:

{

“name”: “张三”,

“age”: 25,

“email”: “zhangsan@example.com”,

“is_active”: true

}

现在请分析:李四,30岁,lisi@example.com,已激活

`

2. Markdown格式

基础用法

`

请用Markdown格式输出,包含:

  • 标题(#)
  • 小标题(##)
  • 列表(- 或 1.)
  • 代码块(`
  • 表格(| | |)

`

文章格式

`

请用Markdown格式写一篇文章,结构如下:

# 标题

引言

[100字左右]

主体

[3-5个小标题,每个200字左右]

总结

[100字左右]

`

技术文档格式

`

请用Markdown格式写技术文档,包含:

# 项目名称

简介

[一句话描述]

安装

`bash

pip install xxx

`

使用

`python

import xxx

`

API参考

方法 参数 返回值

|——|——|——–|

method1 param1 return1

`

3. 表格格式

基础用法

`

请用表格形式列出:

产品 价格 特点

|——|——|——|

A 100
B 200

`

对比表格

`

请用对比表格分析这两个方案:

维度 方案A 方案B

|——|——-|——-|

成本
性能
风险
推荐度 ⭐⭐⭐⭐ ⭐⭐⭐

`

4. 列表格式

无序列表

`

请用无序列表列出:

  • 第一点
  • 第二点
  • 第三点

`

有序列表

`

请用有序列表列出步骤:

  1. 第一步
  2. 第二步
  3. 第三步

`

嵌套列表

`

请用嵌套列表展示:

  • 主题1
  • 子主题1.1
  • 子主题1.2
  • 主题2
  • 子主题2.1
  • 子主题2.2

`

5. 代码格式

Python代码

`

请用Python代码实现,包含:

  • 函数定义
  • 类型注解
  • 注释说明
  • 示例用法

`

代码块

`

请用代码块展示:

`python

def function_name(param: str) -> str:

“””函数说明”””

return result

`

`

6. XML格式

`

请以XML格式输出:

标题

内容

标签1

标签2

`


格式控制技巧

技巧1:明确指定格式

`

❌ 模糊:写个总结

✅ 明确:用3个要点总结,每个要点一句话,使用Markdown列表

`

技巧2:提供模板

`

请按照以下模板写:

[标题]

背景

[100字]

分析

[200字]

结论

[100字]

`

技巧3:使用示例

`

请按照这个格式写:

输入:苹果

输出:🍎 苹果 – 水果,红色,甜

输入:汽车

输出:🚗 汽车 – 交通工具,四轮,快速

现在请写:飞机

`

技巧4:设置约束

`

约束:

  • 必须使用JSON格式
  • 必须包含”title”和”content”字段
  • 不要添加额外字段
  • 不要使用注释

`

技巧5:分步骤指定

`

步骤1:用JSON格式提取数据

步骤2:用Markdown格式写分析

步骤3:用表格格式做对比

`


实战示例

示例1:数据分析报告

`

请分析以下数据,用Markdown格式输出报告:

数据:Q2销售数据

报告结构:

# Q2销售数据分析报告

概览

[用表格展示关键指标]

Top 3产品

[用表格展示,包含:产品名、销量、增长率、原因分析]

趋势分析

[用无序列表列出3个关键趋势]

建议

[用有序列表列出3个行动建议]

`

示例2:API文档

`

请为以下函数写API文档,用Markdown格式:

函数:def search(query: str, limit: int = 10) -> List[dict]

文档结构:

search

描述

[一句话描述]

参数

参数 类型 必需 默认值 描述

|——|——|——|——–|——|

返回值

[描述返回值格式]

示例

`python

result = search(“AI”)

`

`

示例3:产品对比

`

请对比以下两个产品,用表格格式:

产品A:iPhone 15

产品B:Samsung Galaxy S24

对比维度:

维度 iPhone 15 Galaxy S24 推荐

|——|———–|————|——|

价格
性能
拍照
电池
系统

`

示例4:代码生成

`

请用Python写一个排序函数,用代码块格式输出:

要求:

  • 函数名:sort_items
  • 参数:items: List[dict], key: str
  • 返回:排序后的列表
  • 支持升序和降序

代码结构:

`python

def sort_items(items: List[dict], key: str, reverse: bool = False) -> List[dict]:

“””

对字典列表按指定字段排序

Args:

items: 字典列表

key: 排序字段

reverse: 是否降序

Returns:

排序后的列表

“””

# 实现代码

`

`


格式控制的常见问题

问题1:AI不遵守格式

原因: 格式描述不够明确

解决:

`

❌ 请用JSON格式输出

✅ 请严格按照以下JSON格式输出,不要添加任何额外字段:

{

“name”: “string”,

“age”: “number”

}

`

问题2:AI输出多余内容

原因: 没有约束

解决:

`

约束:

  • 只输出JSON,不要有其他文字
  • 不要添加解释
  • 不要添加注释

`

问题3:格式不一致

原因: 没有提供示例

解决:

`

请按照这个示例的格式写:

[示例]

`

问题4:字段缺失

原因: 没有明确要求

解决:

`

必须包含以下字段:

  • name (string)
  • age (number)
  • email (string)

`


🚇 地铁深读:结构化输出的原理

为什么结构化输出有效?

  1. 减少歧义:明确格式减少了AI的自由发挥空间
  2. 便于解析:固定格式便于程序处理
  3. 提高一致性:每次输出格式相同
  4. 降低错误:格式约束减少了格式错误

结构化输出 vs 自由输出

方法 优点 缺点 适用场景

|——|——|——|———-|

结构化 一致、可解析 受限 数据处理、API
自由 灵活、自然 不一致 创意写作

最佳实践

  1. 明确指定:不要假设AI知道你想要什么格式
  2. 提供示例:示例是最直观的格式说明
  3. 设置约束:约束能防止AI偏离格式
  4. 验证输出:检查AI是否遵守了格式要求

今日小结

格式 适用场景 示例

|——|———-|——|

JSON 结构化数据、API {“name”: “张三”}
Markdown 文章、文档 # 标题
表格 对比、清单 A B
列表 步骤、要点 1. 第一步
代码 程序代码 def func():
XML 配置、数据交换 value

一句话记住: 结构化输出 = 让AI按照你指定的格式输出,而不是自由发挥。


下期预告

AI PRO·Prompt Day 6 实战:Prompt设计与优化

我们将从零设计一个完整的Prompt,包括需求分析、Prompt编写、测试优化。


*攀岩者 | 技术总监 | 19年IT全栈实战*

*每天分享AI学习笔记,陪你从零基础到AI达人*

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注