Spring AI ChatClient五种Prompt使用方式详解(全网最通俗易懂)摘要:Spring AI 中 ChatClient 是调用大模型的核心工

发布时间:2026/6/23 13:37:53
Spring AI ChatClient五种Prompt使用方式详解(全网最通俗易懂)摘要:Spring AI 中 ChatClient 是调用大模型的核心工 Spring AI ChatClient五种Prompt使用方式详解全网最通俗易懂摘要Spring AI 中 ChatClient 是调用大模型的核心工具而 Prompt 提示词是控制大模型输出效果的关键。很多新手分不清全局系统提示词、单次对话提示词、动态模板Prompt、伪系统Prompt、外部文件Prompt五种用法。本文基于实战测试代码手把手拆解五种Prompt写法、区别、适用场景看完彻底搞懂Spring AI Prompt编程。标签Spring AI、ChatClient、Prompt、AI大模型、Java实战一、前言在 Spring AI 开发中ChatClient 封装了大模型的调用逻辑无需手动拼接HTTP请求、无需适配不同模型的API。而 Prompt提示词是我们和大模型沟通的桥梁合理使用不同的Prompt写法可以实现固定AI角色、动态修改提示词、解耦硬编码、统一角色配置等功能。本文基于 SpringBoot SpringAI 单元测试代码详解五种主流Prompt使用方式全部可直接运行适合入门学习与项目落地。二、五种Prompt实战用法详解2.1 方式一全局默认系统提示词defaultSystem核心特点构建全局唯一的ChatClient实例系统提示词固定所有对话都生效适合固定AI角色、全局统一人设的场景实战代码Test public void testPrompt() { //直接给ChatClient设置系统提示词 ChatClient client chatClient.defaultSystem(你是一位热情、专业的导游熟悉各种旅游目的地的风土人情和景点信息。你的任务是根据用户的需求为他们规划一条合理且有趣的旅游路线。).build(); String c client.prompt().user(你是谁).call().content(); System.out.println(c c); }运行结果说明AI会固定以专业导游的身份回答问题无论用户提问什么都会优先遵循全局系统提示词的人设。2.2 方式二单次对话系统提示词system核心特点不修改全局ChatClient配置仅当前本次对话生效优先级高于全局默认提示词灵活切换AI角色适合不同接口、不同测试场景需要不同AI人设实战代码Test public void testPrompt2() { //直接给当前对话设置设置系统提示词 ChatClient client chatClient.build(); String c client.prompt().system(你是一个导购).user(你是谁).call().content(); System.out.println(c c); }核心区别和defaultSystem不同system()是临时生效只对当前这一次prompt请求有效不会污染其他对话。2.3 方式三系统提示词动态模板param动态传参核心特点支持模板占位符 动态参数拼接系统提示词通过{变量名}定义模板.param()动态赋值适合人设风格可变、提示词动态配置场景实战代码//动态模板 Test public void testPrompt3() { ChatClient client chatClient.build(); String c client.prompt().system(u-u.text(你是一个{voice}语气的陪玩).param(voice,高冷)).user(你是谁).call().content(); System.out.println(c c); }执行逻辑模板渲染后真实系统提示词你是一个高冷语气的陪玩可通过修改param参数随意切换高冷、温柔、活泼等语气。2.4 方式四伪系统提示词User模板模拟系统人设核心特点无system层级提示词将角色设定写入用户提问中同样支持动态模板param传参双变量替换适用部分不支持独立system参数的老旧大模型接口实战代码Test public void testPrompt4() { ChatClient client chatClient.build(); String c client.prompt().user(u-u.text(你是一个{voice}语气的老师,请回答{question}).param(voice,温柔).param(question,你是谁)).call().content(); System.out.println(c c); }场景说明部分模型对system提示词支持不完善可通过这种伪系统提示词的方式把角色设定嵌入用户prompt达到同样效果。2.5 方式五外部文件加载Prompt解耦硬编码核心特点将Prompt提示词写入独立.st模板文件彻底解耦代码支持统一管理大量、复杂的提示词便于维护修改企业级项目最推荐的写法步骤1创建模板文件在resources目录下新建prompt.st文件写入自定义系统提示词你是一名专业的Java技术博主回答问题简洁、专业、通俗易懂。步骤2代码加载外部Prompt//外部文件作为提示词 Test public void testPrompt5(Value(classpath:/prompt.st) Resource resource) { ChatClient client chatClient.defaultSystem(resource).build(); String c client.prompt().user(你是谁).call().content(); System.out.println(c c); }三、五种Prompt方式核心区别总结Prompt方式生效范围是否支持动态参数适用场景defaultSystem 全局系统词全局所有对话否固定AI全局人设system 单次系统词仅当前对话否临时切换AI角色system param 动态模板仅当前对话是动态修改AI人设、语气User伪系统Prompt仅当前对话是兼容不支持system的模型外部文件Prompt全局支持文件模板参数企业项目、复杂提示词维护四、核心知识点总结优先级单次system提示词 全局defaultSystem提示词动态模板核心{key}占位符 .param(key,value)赋值最佳实践简单场景用动态模板复杂项目用外部文件加载Prompt彻底解耦代码伪系统Prompt是兼容方案优先使用标准的system层级提示词五、结语以上五种Prompt写法覆盖了 Spring AI 开发中99%的业务场景从基础固定人设、临时对话配置到动态参数渲染、企业级文件解耦层层递进。掌握这五种用法即可熟练完成AI对话角色定制、提示词优化、动态问答等核心功能开发。