微信扫码
添加专属顾问
我要投稿
Spring AI Alibaba 结合 Nacos 实现 Prompt 动态管理,让 AI 应用开发更高效灵活。核心内容: 1. 传统 Prompt 管理的痛点与挑战 2. Spring AI Alibaba 与 Nacos 的协同工作原理 3. 实现动态 Prompt 管理的具体操作步骤
在 AI 应用开发中,Prompt(提示词) 是连接人类意图与 AI 模型的核心桥梁。例如:
然而,传统 Prompt 管理方式存在明显缺陷:
为解决这些问题,Spring AI Alibaba 提供了 Nacos 动态 Prompt 管理方案,通过 Nacos 配置中心实现 Prompt 的实时更新、统一管理、版本控制,无需重启应用即可调整 AI 模型的输入。
Spring AI Alibaba 是 Spring 生态下的 AI 开发框架,整合了阿里云的 AI 服务(如通义千问)和配置中心(如 Nacos),简化了 AI 应用的开发流程。其核心功能包括:
Nacos 是阿里巴巴开源的动态服务发现、配置管理工具,具备:
sh bin/startup.sh -m standalone
(单机模式);
http://localhost:8848/nacos
(默认用户名/密码:nacos/nacos)。
在 pom.xml
中添加以下依赖(需引入 Spring AI Alibaba Bom 和 Spring Boot Bom):
<!-- Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 阿里云 AI 模型依赖(如通义千问) -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
<!-- Nacos 动态 Prompt 依赖 -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-nacos-prompt</artifactId>
</dependency>
在 application.yml
中配置 Nacos 连接信息和 Prompt 监听:
server:
port: 10010
spring:
application:
name: nacos-demo
# Nacos 配置中心
nacos:
server-addr: 127.0.0.1:8848 # Nacos 服务地址
ai:
# 开启 nacos 的 prompt template 监听功能
nacos:
prompt:
template:
enabled: true
dashscope:
api-key: ${AI_DASHSCOPE_API_KEY}
在 Controller 中使用 ConfigurablePromptTemplateFactory
动态获取 Nacos 中的 Prompt:
"/nacos") (
public class PromptController {
private static final Logger logger = org.slf4j.LoggerFactory.getLogger(PromptController.class);
private final ChatClient client;
private final ConfigurablePromptTemplateFactory promptTemplateFactory;
public PromptController(
ChatModel chatModel,
ConfigurablePromptTemplateFactory promptTemplateFactory
) {
this.client = ChatClient.builder(chatModel).build();
this.promptTemplateFactory = promptTemplateFactory;
}
"/books") (
public Flux<String> generateJoke(
"author", required = false) String authorName, (value =
HttpServletResponse response
) {
// 防止输出乱码
response.setCharacterEncoding("UTF-8");
// 1. 获取模板实例(优先使用Nacos配置)
ConfigurablePromptTemplate template = promptTemplateFactory.getTemplate("author");
// 2. 无配置时使用默认值
if (template == null) {
template = promptTemplateFactory.create(
"author",
"请列出这位{author}最著名的三本书。",
Map.of("author", "鲁迅")
);
}
Map<String, Object> model = new HashMap<>();
if(StringUtils.hasText(authorName)){
// 3. 添加动态参数(覆盖模版变量)
model.put("author", authorName);
}
// 4. 创建Prompt对象
Prompt prompt = template.create(model);
// 5. 记录日志(便于调试)
logger.info("最终构建的 prompt 为:{}", prompt.getContents());
// 6. 调用AI服务
return client.prompt(prompt)
.stream()
.content();
}
}
登录 Nacos 控制台,添加以下配置:
spring.ai.alibaba.configurable.prompt
(参考源码ConfigurablePromptTemplateFactory);
DEFAULT_GROUP
;
[
{
"name": "author",
"template": "列出 {author} 有名的著作,只需要书名清单",
"model": {
"author": "鲁迅"
}
}
]
启动项目后,查看日志:
说明 Nacos 中的 Prompt 已成功加载。
发送 GET 请求:http://127.0.0.1:10010/nacos/books?author=鲁迅
,返回结果:
在 Nacos 控制台修改配置中的 template
:
[
{
"name": "author",
"template": "介绍 {author},列出其生平经历和文学成就",
"model": {
"author": "鲁迅"
}
}
]
点击“发布”后,无需重启应用,再次发送请求,返回结果:
根据用户浏览记录动态调整推荐 Prompt:
[
{
"name": "product_recommendation",
"template": "根据用户最近浏览的 {product_type},推荐 3 款性价比高的产品,包括价格和特点。",
"model": { "temperature": 0.6 }
}
]
根据用户问题类型动态切换回复 Prompt:
[
{
"name": "refund_reply",
"template": "针对用户的退款问题,生成友好的安抚话术,说明退款流程。",
"model": { "temperature": 0.5 }
},
{
"name": "delivery_reply",
"template": "回答用户的物流查询问题,提供预计送达时间和快递单号。",
"model": { "temperature": 0.5 }
}
]
Spring AI Alibaba 结合 Nacos 实现动态 Prompt 管理,解决了传统 AI 应用中 Prompt 静态化的痛点,具备以下优势:
在 AI 应用日益普及的今天,动态 Prompt 管理已成为提升 AI 应用灵活性和开发效率的关键手段。通过 Spring AI Alibaba 和 Nacos 的协同,开发人员可以快速实现动态 Prompt 功能,满足业务的动态需求。
如果觉得这篇文章对你有所帮助,欢迎点个“推荐”或分享给更多的小伙伴!更多技术干货,欢迎关注微信公众号【Fox爱分享】。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-07
借助上下文工程优化任何AI代理框架
2025-08-06
谷歌《提示词工程》白皮书深度解读
2025-08-05
AI 时代的提示工程:打造高效智能代理的系统指南
2025-08-05
限时免费!PromptPilot,字节最新黑科技,让AI学会"学习"!
2025-08-04
Prompt Engineering vs Context Engineering:我们与LLM交互方式的演变
2025-08-04
如何构建生产级Prompt?这四个阶段的工程化方法论值得收藏(by 火山Meetup复盘)
2025-08-04
一文了解提示词、提示词工程和上下文工程
2025-08-04
OpenAI 学习模式提示词深度剖析
2025-05-19
2025-06-27
2025-06-12
2025-06-21
2025-06-10
2025-07-03
2025-05-12
2025-05-17
2025-07-03
2025-05-13
2025-07-24
2025-07-22
2025-07-19
2025-07-08
2025-07-04
2025-06-23
2025-06-14
2025-06-04