news 2026/7/21 16:59:28

第4章 SpringAI提示词工程实战|模板Prompt、少样本、链式提示落地

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第4章 SpringAI提示词工程实战|模板Prompt、少样本、链式提示落地

文章目录

  • 一、为什么后端必须学提示词工程?
  • 二、三大提示词角色:系统|用户|助手
    • 2.1 SystemMessage 系统提示词(规则层)
    • 2.2 UserMessage 用户提示词(输入层)
    • 2.3 AssistantMessage 助手提示词(历史结果层)
  • 三、PromptTemplate 动态模板实战(解决硬编码痛点)
    • 3.1 核心优势
    • 3.2 实战:动态模板问答
  • 四、Few-Shot 少样本提示实战(提升AI精准度神器)
    • 4.1 业务场景
    • 4.2 完整Few-Shot代码实现
  • 五、链式Prompt:复杂问题分步拆解
    • 5.1 适用场景
    • 5.2 链式Prompt实战案例
  • 六、Prompt持久化:yml配置存放提示词(企业规范)
    • 6.1 yml配置提示词
    • 6.2 自定义配置类读取提示词
    • 6.3 业务接口调用(零硬编码)
  • 七、三大通用业务Prompt模板(可直接上线)
    • 7.1 AI文案生成通用模板(生产可用)
    • 7.2 AI内容分类通用模板(生产可用)
    • 7.3 AI文本总结通用模板(生产可用)
  • 八、本章总结
  • 九、下期预告

🔥专栏系列:Spring Boot AI 实战教程

上一章我们彻底吃透了 SpringAI 核心 API:同步、异步、流式对话,解决了能不能调、怎么调、如何稳定调的问题。

但很多开发者上线后发现一个致命问题:模型能调通,但是输出效果极其垃圾

忽左忽右、回答啰嗦、格式不统一、分类不准、答非所问。

其实大模型本身能力固定,上限由提示词(Prompt)决定

算法决定下限,提示词工程决定AI业务落地上限。

本章专门针对后端开发者,不讲虚的话术技巧,只讲可代码化、可工程化、可持久化的提示词方案:Prompt模板、动态变量、Few-Shot少样本、链式拆解、yml持久化、通用业务模板。

读完本章,你可以彻底解决 AI 输出不稳定、格式混乱、业务不精准的生产难题。

本章核心收获

  • 理解后端视角下的提示词工程核心价值(区别前端玩法)

  • 彻底分清系统/用户/助手三类提示词的职责与落地场景

  • 掌握 SpringAI PromptTemplate 动态变量模板开发

  • 掌握 Few-Shot 少样本提示,让AI无脑对齐业务规则

  • 掌握链式Prompt,解决复杂业务无法一次推理的问题

  • 实现提示词yml持久化,告别代码硬编码

  • 拿到文案生成、内容分类、文本总结三套企业通用Prompt模板

一、为什么后端必须学提示词工程?

很多后端同学有一个误区:提示词是产品、运营玩的,后端只需要调接口就行

在 AI 项目中,这个观念致命错误。

大模型是“模糊智能”,业务系统是“精准严格”

如果没有标准化提示词约束,模型输出永远是随机的:

  • 同一问题,两次回答格式不一样

  • 分类任务偶尔对、偶尔错

  • 输出超长文本、废话过多

  • 不按照指定JSON格式返回,导致代码解析报错

提示词工程的后端本质:

用标准化、结构化、可复用的规则,把大模型的随机输出,变成业务可控的确定性输出

这也是企业 AI 项目能否上线、能否稳定运行的核心关键。

二、三大提示词角色:系统|用户|助手

SpringAI 的 Prompt 并不是简单字符串拼接,而是基于角色消息机制,这也是正规提示词工程的基础。

三者职责完全不同,混用会直接导致 AI 逻辑混乱。

2.1 SystemMessage 系统提示词(规则层)

定位:全局规则、角色定义、输出规范、业务约束

作用于整个对话生命周期,优先级最高。用于告诉模型:你是谁、你要怎么做、输出什么格式、禁止什么内容。

适合放置内容

  • 角色定义:你是资深Java工程师、你是智能分类机器人

  • 格式约束:必须输出JSON、必须简洁、禁止冗余描述

  • 行为约束:禁止编造数据、不确定就返回空

特点:一次定义、全局生效、不随用户提问变化

2.2 UserMessage 用户提示词(输入层)

定位:用户真实提问、业务待处理数据

每一次接口请求的动态内容,变量、文本、问题全部放这里。

特点:每次请求都不一样,是动态变化的核心数据

2.3 AssistantMessage 助手提示词(历史结果层)

定位:模型历史回答记录

多用于多轮对话,用来拼接上下文,让模型记住上一轮回答,实现连续对话、上下文理解。

特点:用于记忆链路,单轮对话几乎用不到

三、PromptTemplate 动态模板实战(解决硬编码痛点)

传统写法直接字符串拼接提示词,代码丑陋、无法复用、无法统一管理。

SpringAI 提供PromptTemplate模板机制,支持占位符动态替换,是企业开发的标准写法。

3.1 核心优势

  • 提示词与业务代码解耦

  • 支持多变量动态渲染

  • 支持模板复用、统一维护

  • 为后续yml持久化打下基础

3.2 实战:动态模板问答

需求:传入【用户提问】和【回答风格】,动态生成定制化回复

@RestController@RequestMapping("/ai/prompt")publicclassPromptTemplateController{@AutowiredprivateChatClientchatClient;@GetMapping("/template")publicStringtemplatePrompt(Stringquestion,Stringstyle){// 1. 定义模板,使用 {变量名} 占位StringtemplateStr="请以{style}的风格回答用户问题,回答简洁专业:{question}";PromptTemplatepromptTemplate=newPromptTemplate(templateStr);// 2. 设置动态变量参数Map<String,Object>params=newHashMap<>();params.put("style",style);params.put("question",question);// 3. 渲染生成最终PromptPromptprompt=promptTemplate.create(params);// 4. 调用模型returnchatClient.prompt(prompt).call().content();}}

测试效果

  • style=通俗易懂:大白话讲解

  • style=学术严谨:专业公式、严谨描述

  • style=幽默风趣:轻松趣味回答

四、Few-Shot 少样本提示实战(提升AI精准度神器)

很多业务场景,单纯靠文字描述规则,AI 永远理解不透彻。

描述一百句规则,不如给一个样例。

Few-Shot(少样本提示)就是:在提示词中带入标准答案案例,让AI模仿你的业务逻辑

适合:分类、标签、评分、规则匹配、标准化输出场景。

4.1 业务场景

舆情内容情感分类:分为【正面、中性、负面】

人工给3组标准案例,让AI严格模仿分类逻辑。

4.2 完整Few-Shot代码实现

@GetMapping("/fewshot")publicStringfewShotPrompt(Stringcontent){// 1. 系统规则定义StringsystemRule="你是内容情感分类机器人,仅输出【正面、中性、负面】,不要多余解释\n"+"以下是标准分类案例:\n"+"案例1:内容:今天天气很好,心情不错 => 正面\n"+"案例2:今天正常上班,无特殊事情 => 中性\n"+"案例3:服务太差,体验非常糟糕 => 负面\n";// 2. 用户待分类内容StringuserInput="请对以下内容进行分类:"+content;returnchatClient.prompt().system(systemRule).user(userInput).call().content();}

Few-Shot少样本核心价值(生产必用)

纯文字规则描述属于「抽象约束」,模型理解存在偏差;带入标准样例属于「具象模仿」,让AI精准对齐业务规则,从“猜逻辑”变成“照规则执行”。在分类、标签、风险筛查等精准业务中,少样本提示是提升准确率的最优低成本方案,无需微调模型即可大幅优化输出效果。

五、链式Prompt:复杂问题分步拆解

大模型有一个通病:复杂问题一次性推理容易翻车

如果你的业务需要:先理解、再提取、再判断、再总结、再格式化,一次性提示词极易出错。

链式Prompt思想:把一个复杂大任务,拆成多步简单小任务,分步调用、分步收敛。

5.1 适用场景

  • 长文本解析 + 关键信息提取 + 总结

  • 问题拆解 + 逻辑分析 + 答案生成

  • 需要严格步骤、不可跳跃的业务

5.2 链式Prompt实战案例

需求:对一段用户评论先提取关键信息 -> 判断情感 -> 生成简短总结

@GetMapping("/chain")publicStringchainPrompt(Stringcomment){// 第一步:提取关键信息Stringstep1=chatClient.prompt().system("你是信息提取助手,只提取文本中的关键核心内容,不要多余描述").user("待处理内容:"+comment).call().content();// 第二步:情感判断Stringstep2=chatClient.prompt().system("判断文本情感,仅输出:正面/中性/负面").user(step1).call().content();// 第三步:生成最终总结StringfinalResult=chatClient.prompt().system("根据关键信息和情感,生成一句简短总结").user("关键信息:"+step1+",情感:"+step2).call().content();returnfinalResult;}

链式Prompt核心优势**(企业落地重点)**

  • 降低推理错误率:拆分复杂任务为单一简单步骤,规避大模型一次性推理逻辑混乱、输出翻车问题

  • 全链路可控可回溯:每一步执行结果可打印、可校验、可单独调优,线上问题精准定位

  • 业务扩展性极强:可按需增加校验、过滤、格式化步骤,适配复杂企业级AI业务场景

  • 输出稳定性拉满:分步收敛结果,彻底解决复杂业务输出格式错乱、内容缺失、逻辑矛盾问题

六、Prompt持久化:yml配置存放提示词(企业规范)

绝对不要在代码里写大段硬编码提示词!

后期修改提示词需要重启服务、改代码、重新部署,极其不优雅。

企业标准方案:提示词全部放入yml配置,动态读取、热更新可扩展

6.1 yml配置提示词

# 自定义AI提示词配置ai:prompt:# 通用文案生成提示词article:"你是专业文案生成助手,语言流畅、正式、段落清晰,根据用户主题生成短文,字数控制在300字左右,主题:{topic}"# 内容分类提示词classify:"你是内容分类机器人,严格根据样例输出正面/中性/负面,仅输出结果,无多余解释。待分类内容:{content}"# 文本总结提示词summary:"请对以下文本进行精简总结,保留核心信息,字数精简至100字以内:{text}"

6.2 自定义配置类读取提示词

@ConfigurationProperties(prefix="ai.prompt")@Component@DatapublicclassAiPromptProperties{privateStringarticle;privateStringclassify;privateStringsummary;}

6.3 业务接口调用(零硬编码)

@RestController@RequestMapping("/ai/prompt/biz")publicclassBizPromptController{@AutowiredprivateChatClientchatClient;@AutowiredprivateAiPromptPropertiespromptProperties;// AI文案生成@GetMapping("/article")publicStringgenArticle(Stringtopic){PromptTemplatetemplate=newPromptTemplate(promptProperties.getArticle());returnchatClient.prompt(template.create(Map.of("topic",topic))).call().content();}// AI文本总结@GetMapping("/summary")publicStringsummary(Stringtext){PromptTemplatetemplate=newPromptTemplate(promptProperties.getSummary());returnchatClient.prompt(template.create(Map.of("text",text))).call().content();}}

企业规范核心优势

  • 解耦代码与提示词:彻底告别Java代码硬编码大段Prompt,代码更整洁优雅,符合开发规范

  • 动态可配置化:无需修改业务代码、无需重启服务,仅修改配置即可调整AI输出风格与规则

  • 支持动态热更新:后续可无缝接入Nacos、Apollo配置中心,实现提示词在线热更新,适配生产动态调优场景

  • 统一维护管理:所有业务Prompt集中管理,避免多业务模块提示词混乱、重复、不统一问题

七、三大通用业务Prompt模板(可直接上线)

本章最后送给大家三套企业可直接落地的标准Prompt模板,覆盖90%后端AI业务场景。

7.1 AI文案生成通用模板(生产可用)

适配场景:电商产品文案、公众号短文、活动宣传文案、技术科普内容生成

标准化Prompt模板

【角色】你是一名专业的企业文案生成师,文笔流畅、正式严谨、适配公域发布场景。 【规则】1. 根据用户给定主题生成完整短文,结构清晰,分段展示;2. 字数严格控制在300字左右,误差不超过20字;3. 无废话、无凑数语句、不编造虚假信息;4. 语言通俗易懂,适配大众阅读; 【输入主题】{topic} 【输出要求】直接输出成品文案,无需额外解释、无需标题、无需备注

适配场景:活动文案、产品介绍、短文生成

模板规则:角色定位 + 字数限制 + 风格约束 + 禁止废话

7.2 AI内容分类通用模板(生产可用)

适配场景:用户评论情感分析、内容风险识别、文本标签自动归类、舆情内容筛查

标准化Prompt模板

【角色】你是精准文本分类机器人,严格按照规则执行分类任务,零主观判断。 【分类枚举】仅允许输出:正面、中性、负面,禁止输出其他任何文字 【参考样例】 案例1:内容:今天天气很好,心情不错 => 正面 案例2:今天正常上班,无特殊事情 => 中性 案例3:服务太差,体验非常糟糕 => 负面 【规则】严格模仿上述案例逻辑,只看用户文本表达情绪,不额外拓展、不解释原因 【待分类内容】{content} 【输出要求】仅单独输出分类结果

适配场景:评论情感、内容风险、标签归类

模板规则:固定枚举输出 + Few-Shot样例 + 禁止多余文字

7.3 AI文本总结通用模板(生产可用)

适配场景:长新闻总结、对话记录提炼、文章摘要生成、用户反馈内容汇总

标准化Prompt模板

【角色】你是专业文本摘要助手,擅长精简提炼核心信息。 【规则】1. 保留原文核心观点、关键数据、核心事件;2. 删除冗余话术、重复内容、无效修饰词;3. 总结字数控制在100字以内;4. 语句通顺、逻辑连贯,不改变原文语义; 【待总结文本】{text} 【输出要求】直接输出精简摘要,无多余注释、无铺垫语句

适配场景:长文本提炼、对话总结、内容摘要

模板规则:保留核心信息、剔除无效话术、固定字数上限

八、本章总结

  1. 提示词工程是后端AI项目稳定落地的核心,决定模型输出质量与业务可用性;

  2. System/User/Assistant 三类提示词各司其职,系统管规则、用户管输入、助手管上下文;

  3. PromptTemplate 实现动态变量模板,彻底告别字符串硬编码拼接;

  4. Few-Shot 少样本通过案例模仿,大幅提升分类、规则类任务准确率;

  5. 链式Prompt拆解复杂任务,分步执行解决大模型一次性推理翻车问题;

  6. 提示词yml持久化是企业标准,便于统一维护、动态调整、热更新;

  7. 文案、分类、总结三大通用模板,可直接用于生产业务开发。

九、下期预告

下一章我们将讲解SpringAI 对话记忆与多轮上下文,手把手实现真正的“连续聊天机器人”,解决AI记不住历史对话的痛点!

💡 专栏持续更新企业级SpringAI实战干货,无废话纯落地,欢迎点赞+收藏+关注!


本系列完结时一并上传源码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 13:36:11

DataSphere Studio终极指南:如何构建一站式企业级数据开发平台

DataSphere Studio终极指南&#xff1a;如何构建一站式企业级数据开发平台 【免费下载链接】DataSphereStudio DataSphereStudio is a one stop data application development& management portal, covering scenarios including data exchange, desensitization/cleansing…

作者头像 李华
网站建设 2026/7/21 16:21:02

嵌入式GPMC控制器:时序配置与外部存储器接口实战指南

1. GPMC&#xff1a;嵌入式系统与外部存储器的桥梁在嵌入式系统开发中&#xff0c;处理器与外部存储器的连接是决定系统性能、稳定性和成本的关键一环。无论是运行代码的NOR Flash&#xff0c;存储数据的NAND Flash&#xff0c;还是作为高速缓存的SRAM&#xff0c;它们都需要一…

作者头像 李华
网站建设 2026/7/21 15:29:40

Anthropic IPO信号解读:Claude API开发者应对策略与技术影响分析

这次我们来看一个值得关注的技术公司动态&#xff1a;Anthropic 正在为 IPO 做准备&#xff0c;通过高薪招聘投资者关系总监来推进这一进程。作为 OpenAI 的主要竞争对手&#xff0c;Anthropic 的这一举动不仅反映了 AI 行业当前的资本热度&#xff0c;也预示着技术商业化进入新…

作者头像 李华
网站建设 2026/7/20 13:35:00

鸿蒙 ArkTS 实战:Kitchen Timer Wall 从厨房计时墙到厨房管理工具完整解析

鸿蒙 ArkTS 实战&#xff1a;Kitchen Timer Wall 从厨房计时墙到厨房管理工具完整解析 前言 Kitchen Timer Wall 是一个围绕 菜品计时、多计时器、震动提醒、历史模板和计时状态 的鸿蒙 ArkTS 单页应用。项目用少量状态字段承载真实厨房场景&#xff0c;把记录、计算、提醒和…

作者头像 李华
网站建设 2026/7/20 13:34:20

如何免费享受全网无损音乐?洛雪音乐开源音源终极指南

如何免费享受全网无损音乐&#xff1f;洛雪音乐开源音源终极指南 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 还在为各大音乐平台的会员费用烦恼吗&#xff1f;想要一次性听遍酷我、酷狗、QQ音…

作者头像 李华
网站建设 2026/7/20 13:33:05

C++多线程同步实战:从互斥锁到无锁编程的完整指南

1. 项目概述&#xff1a;为什么多线程同步是C开发的必修课最近在带新人做项目&#xff0c;一个高频出现的调试场景就是&#xff1a;程序在单线程下跑得好好的&#xff0c;一开多线程就间歇性崩溃&#xff0c;或者数据莫名其妙对不上。排查到最后&#xff0c;十有八九是同步没做…

作者头像 李华