大型语言模型基础之 Prompt Engineering:打造稳定输出 JSON 格式的天气预报 Prompt - 教程

news/2025/11/23 16:44:44/文章来源:https://www.cnblogs.com/yangykaifa/p/19260797

引言:Prompt Engineering 的时代意义

在大型语言模型 (LLM) 如 GPT、Claude、文心一言等快速发展的今天,我们与 AI 的交互方式正在发生深刻变革。Prompt Engineering(提示词工程)作为连接人类意图与 AI 能力的桥梁,其重要性日益凸显。

简单来说,Prompt Engineering 是指设计和优化输入文本(提示词),以引导大型语言模型产生更准确、更有用、更符合预期的输出。一个精心设计的 Prompt 能让 AI 发挥出远超预期的能力,而一个粗糙的 Prompt 则可能导致结果杂乱无章。

本文将通过一个实用案例 —— 设计一个能稳定输出 JSON 格式天气预报信息的 Prompt,深入探讨 Prompt Engineering 的核心原则与实践技巧。

Prompt Engineering 核心原则

在深入实践之前,我们先来了解 Prompt Engineering 的几个核心原则:

  1. 明确性:提示词应当清晰、具体,避免模糊和歧义
  2. 结构性:合理组织信息层级,使用标题、列表等增强可读性
  3. 指令性:明确告知模型需要执行的任务和输出格式
  4. 约束性:设定输出范围和边界,避免无关信息
  5. 示例性:适当提供示例,帮助模型理解预期输出

这些原则将指导我们设计出高效的 Prompt,尤其是在需要结构化输出(如 JSON 格式)的场景中。

实践案例:设计天气预报 JSON 输出 Prompt

需求分析

我们需要设计一个 Prompt,让 AI 模型能够:

  • 生成指定城市的天气预报信息
  • 输出格式必须严格遵循 JSON 规范
  • 包含必要的天气要素(日期、温度范围、天气状况、风力风向等)
  • 确保输出稳定,不包含额外的解释性文字

逐步构建 Prompt

版本 1:基础指令

请提供北京市未来3天的天气预报,用JSON格式输出。

这个版本看似直接,但存在诸多问题:

  • 没有明确定义 JSON 结构,模型可能使用不同的字段名
  • 没有指定需要包含的具体天气信息
  • 可能会在 JSON 前后添加解释性文字
  • 日期格式不统一
版本 2:明确结构
请提供北京市未来3天的天气预报,严格按照以下JSON格式输出,不要添加任何额外内容:
{"city": "城市名称","forecast": [{"date": "日期,格式YYYY-MM-DD","weather": "天气状况,如晴、多云等","temp_min": "最低温度,单位℃","temp_max": "最高温度,单位℃","wind": "风向风力,如东北风3级"}]
}

这个版本有了明显改进,指定了 JSON 结构和字段,但仍有优化空间:

  • 没有提供示例,模型可能对某些字段的取值范围理解不一致
  • 缺乏错误处理机制
  • 没有说明当某些数据不确定时的处理方式
版本 3:添加示例
请提供指定城市的未来3天天气预报,严格按照以下要求输出:
1. 输出格式:仅包含JSON数据,不要添加任何额外内容
2. JSON结构:
{"city": "城市名称","update_time": "更新时间,格式YYYY-MM-DD HH:MM","forecast": [{"date": "日期,格式YYYY-MM-DD","weekday": "星期几","weather": "天气状况,如晴、多云、小雨等","temp_min": "最低温度,单位℃,仅数字","temp_max": "最高温度,单位℃,仅数字","wind_dir": "风向,如东北、南等","wind_scale": "风力等级,仅数字","humidity": "湿度,百分比,仅数字"}]
}
3. 示例:
{"city": "北京","update_time": "2023-06-15 08:30","forecast": [{"date": "2023-06-15","weekday": "星期四","weather": "晴","temp_min": 22,"temp_max": 35,"wind_dir": "北","wind_scale": 2,"humidity": 45},{"date": "2023-06-16","weekday": "星期五","weather": "多云","temp_min": 23,"temp_max": 33,"wind_dir": "东北","wind_scale": 3,"humidity": 50},{"date": "2023-06-17","weekday": "星期六","weather": "小雨","temp_min": 21,"temp_max": 28,"wind_dir": "东南","wind_scale": 4,"humidity": 75}]
}
请提供上海市的未来3天天气预报。

这个版本增加了示例,明确了各字段的格式要求,但还可以进一步优化:

  • 可以增加数据验证规则
  • 可以指定异常情况的处理方式
  • 可以增加更多约束条件

版本 4:最终版
任务:生成指定城市未来3天的天气预报,输出格式为严格的JSON。
要求:
1. 仅输出JSON数据,不包含任何解释、说明或其他文本。
2. 必须使用UTF-8编码,确保中文正常显示。
3. 所有数值类型字段必须使用数字类型,而非字符串。
4. 日期格式必须严格遵循YYYY-MM-DD,时间格式为HH:MM。
5. 当某些数据不确定时,使用null值填充,不省略字段。
6. 天气状况使用标准中文描述(如:晴、多云、阴、小雨、中雨、大雨、雷阵雨、小雪、中雪、大雪、雾、霾)。
7. 风力等级为0-18的数字,风向使用8个基本方向(东、南、西、北、东南、东北、西南、西北)。
JSON结构:
{"city": "城市名称,字符串","update_time": "数据更新时间,格式YYYY-MM-DD HH:MM","forecast": [{"date": "日期,格式YYYY-MM-DD","weekday": "星期几,如星期一、星期二","weather": "天气状况,字符串","temp_min": "最低温度,摄氏度,数字","temp_max": "最高温度,摄氏度,数字","wind_dir": "风向,字符串","wind_scale": "风力等级,数字","humidity": "相对湿度,百分比,数字","uv_index": "紫外线指数,0-10的数字,越高表示紫外线越强"},{// 第二天数据,结构同上},{// 第三天数据,结构同上}]
}
示例:
{"city": "北京","update_time": "2023-06-15 08:30","forecast": [{"date": "2023-06-15","weekday": "星期四","weather": "晴","temp_min": 22,"temp_max": 35,"wind_dir": "北","wind_scale": 2,"humidity": 45,"uv_index": 8},{"date": "2023-06-16","weekday": "星期五","weather": "多云","temp_min": 23,"temp_max": 33,"wind_dir": "东北","wind_scale": 3,"humidity": 50,"uv_index": 6},{"date": "2023-06-17","weekday": "星期六","weather": "小雨","temp_min": 21,"temp_max": 28,"wind_dir": "东南","wind_scale": 4,"humidity": 75,"uv_index": 3}]
}
请生成广州市未来3天的天气预报。

这个最终版本综合考虑了各种细节,增加了数据验证规则和异常处理机制,能够稳定地引导模型输出符合要求的 JSON 格式天气预报。

测试与验证

使用最终版 Prompt 进行测试,我们可以得到类似以下的稳定输出:

{"city": "广州市","update_time": "2023-06-15 09:15","forecast": [{"date": "2023-06-15","weekday": "星期四","weather": "雷阵雨","temp_min": 26,"temp_max": 32,"wind_dir": "东南","wind_scale": 3,"humidity": 85,"uv_index": 4},{"date": "2023-06-16","weekday": "星期五","weather": "中雨","temp_min": 25,"temp_max": 30,"wind_dir": "南","wind_scale": 4,"humidity": 90,"uv_index": 2},{"date": "2023-06-17","weekday": "星期六","weather": "多云","temp_min": 26,"temp_max": 33,"wind_dir": "西南","wind_scale": 2,"humidity": 75,"uv_index": 7}]
}

这个输出完全符合我们的要求,结构清晰、格式正确、内容完整,没有多余的解释文字,可以直接被程序解析和使用。

Prompt Engineering 进阶技巧

除了上述案例中用到的技巧外,还有一些进阶的 Prompt Engineering 方法可以帮助你设计出更高效的提示词:

  1. 角色设定:给模型分配一个特定角色(如 "你是一位资深气象学家"),引导其从特定视角思考
  2. 思维链(Chain of Thought):引导模型逐步推理,先分析再结论
  3. 少样本学习(Few-Shot Learning):提供少量示例,帮助模型理解任务
  4. 温度参数调整:通过调整模型的 temperature 参数控制输出的随机性
  5. 系统化测试:建立测试集,对不同版本的 Prompt 进行量化评估

总结与展望

Prompt Engineering 是充分发挥大型语言模型能力的关键技能,尤其在需要结构化输出的场景中显得尤为重要。通过本文的天气预报 JSON 输出案例,我们可以看到一个精心设计的 Prompt 能够显著提升模型输出的质量和一致性。

随着 AI 技术的发展,Prompt Engineering 将成为一项越来越重要的技能,不仅限于开发者,产品经理、内容创作者等都可以通过掌握这项技能来更有效地利用 AI 工具。

未来,随着模型能力的提升和工具链的完善,Prompt Engineering 可能会变得更加自动化和智能化,但对人类意图的精准表达和任务需求的深刻理解,始终是设计高效 Prompt 的基础。

掌握 Prompt Engineering,让我们在 AI 时代更高效地工作和创造!

附录:相关资源推荐

  1. OpenAI 官方 Prompt 设计指南
  2. 《Prompt Engineering for Developers》- DeepLearning.AI
  3. PromptBase - 优质 Prompt 交易平台
  4. Awesome Prompts - GitHub 开源项目
  5. Prompt Engineering 研究所官方博客

希望本文能帮助你深入理解 Prompt Engineering,并在实际工作中应用这些技巧。如果你有更好的 Prompt 设计经验,欢迎在评论区分享交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:阮一峰《TypeScript 教程》学习笔记——泛型

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

人工智能之数据分析 numpy:第一章 学习链路

人工智能之数据分析 numpy:第一章 学习链路人工智能之数据分析 numpy 第一章 学习链路@目录人工智能之数据分析 numpy前言一、顶层设计:理解人工智能全景图1.1 什么是人工智能?1.2 AI 技术栈分层模型(自上而下)二…

GRAPH RAG

GRAPH RAG https://github.com/fanqingsong/graphrag/blob/main/docs/GRAPH_RAG_EXPLAINED.md实际应用示例场景设置假设你上传了三个文档: 文档1:Microsoft投资新闻Microsoft宣布向OpenAI投资100亿美元,这是AI领域最…

2025 年 11 月一力油漆厂家权威推荐榜:醇酸油漆/环氧富锌底漆/丙烯酸聚氨酯油漆,专业防护与持久耐候的工业涂装解决方案

2025 年 11 月一力油漆厂家权威推荐榜:醇酸油漆/环氧富锌底漆/丙烯酸聚氨酯油漆,专业防护与持久耐候的工业涂装解决方案 随着工业制造水平的不断提升,工业涂装作为设备防护与外观装饰的重要环节,其技术要求和产品性…

2025 年 11 月上海装修公司精选推荐榜:老房翻新/毛胚改造/局部翻新/设计施工/现代简约/奶油法式/全包半包/自住出租/婚房公寓/别墅大宅/办公室餐饮装修,匠心品质与空间美学完美融合

2025 年 11 月上海装修公司精选推荐榜:匠心品质与空间美学完美融合 随着城市化进程的不断推进和居民生活水平的持续提升,上海装修市场正迎来新一轮的发展机遇。作为国际化大都市,上海的建筑风格多样,居住需求各异,…

iptables怎样配置以保护MySQL

使用iptables保护MySQL数据库主要涉及配置防火墙规则,限制对MySQL端口的访问,并确保MySQL本身的安全性。以下是一些建议的步骤和规则,以帮助你配置iptables保护MySQL:默认拒绝所有访问:在配置iptables之前,默认情…

2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务特色深度解析

2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务特色深度解析 行业背景与发展现状 随着社会经济水平的提升和人们生活方式的改变,宠物在家庭中的地位日益重要。南…

SpringBoot+SmartDoc - unknown

SpringBoot+SmartDoc 简介 SmartDoc是一款支持Java Rest Api 、Java WebSocket、Apache Dubbo RPC和gRPC接口文档生成的工具。它对环境的需求是Mavne3.8+以及JDK1.8+。 SmartDoc率先提出了基于java泛型定义来推导接口文…

iptables怎样保护Linux服务器免受攻击

iptables是Linux系统中一款强大的防火墙工具,通过设置规则来过滤和控制网络流量,从而保护服务器免受攻击。以下是iptables保护Linux服务器免受攻击的方法: 基础配置允许本地回环接口流量:iptables -A INPUT -i lo …

毕业论文神器!9款免费AI工具推荐,轻松搞定论文写作

本文分享9款免费AI工具助力论文写作。2025年11月,作者写论文陷入困境,经室友介绍接触到[图灵论文AI写作助手](https://turingpub.com/?df=cnblogs_ipapers)。文中详细介绍各工具,如前者可30分钟生成5万字初稿,覆盖…

2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务详情

2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务详情 行业背景与发展趋势 随着社会经济的发展和人们生活水平的提高,中国宠物医疗行业正迎来快速发展期。作为长三…

2025 年 11 月 PFA 隔膜阀厂家推荐排行榜,耐腐蚀 PFA 隔膜阀,高纯应用隔膜阀,实验室级隔膜阀,化工专用隔膜阀品牌精选

2025 年 11 月 PFA 隔膜阀厂家推荐排行榜:耐腐蚀、高纯应用与实验室级隔膜阀品牌精选 在半导体、生物医药、精细化工等高技术产业中,流体输送系统的可靠性与洁净度直接决定了生产质量与工艺安全。PFA(全氟烷氧基烷烃…

6、JDBC-实体类和ORM

1、实体类和ORM2、ORM思想封装单个对象3、ORM思想封装集合 以上仅供参考,如有疑问,留言联系

4、JDBC-PreparedStatement-CRUD

1、查询单行单列2、查询单行多列3、查询多行多列4、新增5、修改6、删除 以上仅供参考,如有疑问,留言联系

2025 年 11 月精密机床厂家权威推荐榜:滚珠丝杠磨床,精密丝杆旋风铣床,碳电极加工设备,螺纹磨床,高效稳定与精度保障的工业利器

2025 年 11 月精密机床厂家权威推荐榜:滚珠丝杠磨床,精密丝杆旋风铣床,碳电极加工设备,螺纹磨床,高效稳定与精度保障的工业利器 随着制造业向高端化、智能化转型,精密机床作为工业母机的重要性日益凸显。滚珠丝杠…

2025 年 11 月彩钢瓦翻新厂家实力推荐榜:专业喷漆保养与厂房翻新一站式解决方案,持久防护高效省心!

2025 年 11 月彩钢瓦翻新厂家实力推荐榜:专业喷漆保养与厂房翻新一站式解决方案,持久防护高效省心! 随着工业建筑使用年限的增长,彩钢瓦作为常见的工业厂房建筑材料,其维护保养需求日益凸显。彩钢瓦翻新、喷漆保养…

2025 年 11 月石墨坩埚加工设备厂家推荐排行榜,石墨电极加工设备,石墨接头加工设备,高效耐高温石墨制品加工设备公司精选

2025 年 11 月石墨坩埚加工设备厂家推荐排行榜,石墨电极加工设备,石墨接头加工设备,高效耐高温石墨制品加工设备公司精选 石墨材料因其优异的耐高温性、导电性和化学稳定性,在冶金、电子、航空航天等领域得到广泛应…

算法学习——寻找两个正序数组中位数

寻找两个正序数组中位数 这题难度比较大,记一下详细的思路 由于灵神的解析里面写的数组名字是a和b,题目里面又是nums1和nums2,我下面写的名字两种都有写,知道是一样的就行。 首先明确中心思想:将两个数组内的元素…

5、JDBC-常见问题

1、资源管理,及时释放资源2、sql语法异常3、sql未设置参数4、账号或密码错误5、通信异常以上仅供参考,如有疑问,留言联系

博客3

作业①: 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如:中国气象网(http://www.weather.com.cn)。实现单线程和多线程的方式爬取。通过解析htlm,找到所有<img>标签,爬取所有图片 。 完整代码:…