当前位置: 首页 > news >正文

Spring AI 从入门到精通-Prompt 工程

5. Prompt 工程:不是玄学,是手艺

5.1 什么是 Prompt?

Prompt 是你发给 AI 的"指令包"。它不只是"一句问题",而是由多个 Message 组成的结构化数据:

Prompt

SystemMessage
系统指令:你是谁、怎么回答

UserMessage
用户输入:实际问题

AssistantMessage
历史回答:之前的对话

ToolMessage
工具结果:函数调用返回

5.2 SystemMessage:给 AI 定"人设"

Stringreply=chatClient.prompt().system(""" 你是一个经验丰富的 Java 面试官。 规则: 1. 每次只问一个问题 2. 根据回答的深度追问 3. 不要直接给答案,引导思考 4. 回答用中文 """).user("我想练习 Java 并发相关的面试题").call().content();

5.3 模板变量:动态 Prompt

// 基本用法Stringreply=chatClient.prompt().user(u->u.text("列出 {count} 部由 {composer} 配乐的电影").param("count",5).param("composer","久石让")).call().content();// 多个参数Stringreply2=chatClient.prompt().user(u->u.text("比较 {lang1} 和 {lang2} 在 {aspect} 方面的差异").param("lang1","Java").param("lang2","Kotlin").param("aspect","协程支持")).call().content();

底层原理:ChatClient内部用PromptTemplate+StTemplateRenderer(基于 StringTemplate 引擎)做模板替换。默认用{}作为占位符,如果你想在 Prompt 里放 JSON,可以换分隔符:

Stringreply=chatClient.prompt().user(u->u.text("翻译下面的话:<text>").param("text","Hello World")).templateRenderer(StTemplateRenderer.builder().startDelimiterToken('<').endDelimiterToken('>').build()).call().content();

5.4 一个 Prompt 模板的实战案例

假设你要做一个"根据用户输入生成 SQL"的功能:

@ServicepublicclassSqlGenerator{privatefinalChatClientchatClient;publicSqlGenerator(ChatClient.Builderbuilder){this.chatClient=builder.defaultSystem(""" 你是一个 SQL 生成器。根据用户的自然语言描述生成 SQL 语句。 规则: 1. 只输出 SQL,不要解释 2. 表名是 users(id, name, email, age, city, created_at) 3. 使用标准 SQL 语法 4. 默认 LIMIT 100 """).defaultOptions(OpenAiChatOptions.builder().temperature(0.0)// SQL 需要精确,不要创意.build()).build();}publicStringgenerateSql(StringnaturalLanguage){returnchatClient.prompt().user(naturalLanguage).call().content();}}// 使用Stringsql=sqlGenerator.generateSql("找出北京所有年龄大于 25 岁的用户,按注册时间倒序");// 输出:SELECT * FROM users WHERE city = '北京' AND age > 25 ORDER BY created_at DESC LIMIT 100

5.5 Prompt 设计原则(Head First 精华版)

  1. 说人话,说清楚。不要模棱两可。"列出 5 个"比"列一些"好。
  2. 给角色。"你是一个 XX 专家"能让 AI 切换知识库。
  3. 给规则。明确告诉 AI 什么能做、什么不能做。
  4. 给例子。Few-shot prompting 是提升质量的最快方式。
  5. 给格式。如果期望 JSON,就明确说"输出 JSON,不要有其他内容"。
  6. 分步骤。复杂任务分解成"首先…然后…最后…"。

http://www.gsyq.cn/news/1483130.html

相关文章:

  • 今日开源[第10期]ds4(DwarfStar) - zhang
  • Spring AI 从入门到精通-结构化输出
  • 2026年网架厂家推荐榜单:体育馆网架、煤棚网架、大跨度网架与螺栓球网架标杆品牌深度解析 - 品牌发掘
  • CAP定理(又称布鲁尔定理)指出:在分布式系统中,**一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)**
  • 手把手教你用Overleaf搞定IEEE会议论文(附CAC投稿避坑指南)
  • 水泵隔音降噪技术全解析:新能源噪音治理、新能源隔音降噪、机房噪音治理、水泵房噪音治理、车间噪音治理、车间隔音降噪选择指南 - 优质品牌商家
  • 德国酷贝漆靠谱吗? - myqiye
  • 工业用吸尘器厂家佛山排行榜2026:史沃斯稳居第一 - 工业清洁测评社
  • 关于下载pip install faiss-cpu失败的问题
  • 企业品牌声誉管理靠谱之选(2026年6月):AI舆情监测/危机处置/声誉修复三大技术流派全攻略 - 玖叁鹿
  • 5个突破性功能:重新定义英雄联盟游戏体验的一站式解决方案
  • 动平衡机靠谱品牌,中联试验机的口碑怎样 - mypinpai
  • 手绘字画和印刷字画怎么分?一招不再买错 - 深鉴新闻
  • 2026年薄型气凝胶价格,哪家更实惠 - mypinpai
  • 为什么Flameshot成为开发者最爱的开源截图工具?探索其技术架构与高效工作流
  • 语音钓鱼引发的数据泄露事件溯源与全域防御研究
  • 基于 Harmony 6.0 应用的孕期管理助手实现
  • 采光板推荐哪家,质量控制严格且口碑好? - mypinpai
  • 2026年Q2成都高新区代理记账公司选型技术指南:成都武侯区营业执照代办公司推荐、成都营业执照代办公司推荐、成都金牛区工商代办公司注册推荐选择指南 - 优质品牌商家
  • 2026年Q2成都靠谱卫浴玻璃厂家综合实力排行:成都防火玻璃厂家、成都中空玻璃厂家、成都亮彩玻璃厂家、成都单向玻璃选择指南 - 优质品牌商家
  • JoyCon-Driver:Windows平台上的Switch控制器终极驱动解决方案
  • 今日开源[第9期]graphify - zhang
  • 工程师视角下的《海奥华预言》:从系统思维看文明迭代与精神进化
  • 饲料粉碎机设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 江阴高端腕表回收技术拆解与正规渠道指南:江阴高端礼品回收/江阴黄金回收/江阴黄金等贵金属回收/江阴K金回收/江阴名表回收/选择指南 - 优质品牌商家
  • 3步掌握OBS多平台推流:免费插件让直播效率提升300%
  • 如何将B站缓存视频变成你的永久数字收藏
  • 牛客周赛Round147总结
  • 2026年6月市面上企业变更公司排行推荐榜,企业变更代理、工商变更代办、公司变更全套服务公司选择指南 - 海棠依旧大
  • 2026年6月市面上进口发电机回收厂家哪家好推荐榜,柴油型、静音型、移动应急型公司选择指南 - 海棠依旧大