当前位置: 首页 > 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.jsqmd.com/news/971401/

相关文章:

  • IaaS(Infrastructure as a Service,基础设施即服务)是云计算的三种主要服务模型之一
  • Spring AI 从入门到精通-结构化输出
  • 今日开源[第10期]ds4(DwarfStar) - zhang
  • CAP定理(又称布鲁尔定理)指出:在分布式系统中,**一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)**
  • 看完就会:高效论文写作全流程AI论文工具推荐(2026 最新)
  • 神经渲染:颠覆特效制作的技术革命与实战指南
  • 手把手教你用Overleaf搞定IEEE会议论文(附CAC投稿避坑指南)
  • 2026年网架厂家推荐榜单:体育馆网架、煤棚网架、大跨度网架与螺栓球网架标杆品牌深度解析 - 品牌发掘
  • WorkshopDL:5分钟学会下载Steam创意工坊模组,非Steam平台也能用!
  • 工业用吸尘器厂家佛山排行榜2026:史沃斯稳居第一 - 工业清洁测评社
  • Spring AI 从入门到精通-Embedding
  • Java数据库连接池学习
  • 神经渲染引爆虚拟制片:技术原理、实战应用与未来蓝图
  • 蛋糕美食元服务_我的实现指南
  • 25+图像控制工具:ComfyUI ControlNet Auxiliary Preprocessors如何革新AI绘图预处理工作流
  • Java Agent Premain Agentmain
  • 2026 济南防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南 - 宅安选房屋修缮
  • 德国酷贝漆靠谱吗? - myqiye
  • 水泵隔音降噪技术全解析:新能源噪音治理、新能源隔音降噪、机房噪音治理、水泵房噪音治理、车间噪音治理、车间隔音降噪选择指南 - 优质品牌商家
  • 手机号查QQ终极指南:3个技巧帮你找回遗忘的账号
  • 动平衡机靠谱品牌,中联试验机的口碑怎样 - mypinpai
  • 如何快速掌握ExifToolGui:照片元数据管理的完整指南
  • 2026年托管加盟品牌实测推荐:托管加盟多少钱、托管加盟小饭桌、托管加盟手续、托管加盟推荐、教育加盟哪家好、教育加盟多少钱选择指南 - 优质品牌商家
  • 2026年修补砂浆厂家推荐榜单:快速修补、高强度修补与地面修复砂浆精选指南 - 品牌发掘
  • 关于下载pip install faiss-cpu失败的问题
  • 手绘字画和印刷字画怎么分?一招不再买错 - 深鉴新闻
  • 5个突破性功能:重新定义英雄联盟游戏体验的一站式解决方案
  • 企业品牌声誉管理靠谱之选(2026年6月):AI舆情监测/危机处置/声誉修复三大技术流派全攻略 - 玖叁鹿
  • 2026 东莞防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南(6 月最新) - 宅安选房屋修缮
  • 终极指南:免费快速下载B站4K高清视频的完整教程