尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

Spring AI ChatClient五种Prompt使用方式详解(全网最通俗易懂)摘要:Spring AI 中 ChatClient 是调用大模型的核心工
📅 发布时间:2026/6/23 13:37:39

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

全局

支持文件模板参数

企业项目、复杂提示词维护

四、核心知识点总结

  1. 优先级:单次system提示词 > 全局defaultSystem提示词

  2. 动态模板核心:{key}占位符 +.param(key,value)赋值

  3. 最佳实践:简单场景用动态模板,复杂项目用外部文件加载Prompt,彻底解耦代码

  4. 伪系统Prompt是兼容方案,优先使用标准的system层级提示词

五、结语

以上五种Prompt写法覆盖了 Spring AI 开发中99%的业务场景,从基础固定人设、临时对话配置,到动态参数渲染、企业级文件解耦,层层递进。掌握这五种用法,即可熟练完成AI对话角色定制、提示词优化、动态问答等核心功能开发。

相关新闻

  • GitHub周趋势2026W25 | Headroom 压缩 95% Token、NVIDIA 开源 AI Agent 安全扫描器、Apple macOS 原生 Linux 容器、…
  • 2010年-2024年上市公司参与数字技术标准制定情况
  • ATF1508AS(L) CPLD开发全解析:从硬件架构到JTAG调试实战

最新新闻

  • 前端测试框架选型指南:Jest、Mocha、Cypress核心对比与实战场景解析
  • 煤气灯效应下语音钓鱼协同防控体系实证研究 —— 以韩国济州警政联动实践为样本
  • Selenium+Pytest+PO模式:电商项目UI自动化测试实战架构与避坑指南
  • 如何在Blender中实现3MF格式的完美导入导出:3D打印工作流终极指南
  • 工业级 RTU 深度解析:水利、能源、工控场景下数据传输枢纽选型指南
  • GitHub中文化插件终极指南:5分钟告别英文困扰,专注代码开发

日新闻

  • Arduino-ESP32项目深度解析:解锁隐藏芯片支持与架构演进
  • 2026年 系统窗厂家/品牌推荐榜单:隔音系统窗+高端系统门窗的核心优势与选购指南 - 品牌发掘
  • NVBench:首个双语非言语发声语音合成评测基准详解与实践

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号