Spring AI Alibaba 提示词入门:从零开始掌握AI对话技巧
本文介绍了Spring AI Alibaba中提示词的核心用法,帮助开发者快速掌握与AI对话的技巧。文章从提示词的概念和重要性讲起,指出清晰的提问能获得更精准的回答。接着详细说明了环境准备步骤,包括获取阿里云API Key和创建Spring Boot项目。重点讲解了三种提示词用法:基础对话、角色设定和结构化提示,每种方式都配有Java代码示例和测试方法。通过本文,读者可以学会如何有效构建提示词,优
Spring AI Alibaba 提示词入门:从零开始掌握AI对话技巧
本文专为AI初学者设计,通过简单易懂的方式介绍Spring AI Alibaba中提示词的核心用法,带你快速上手AI应用开发。
什么是提示词?为什么它很重要?
提示词(Prompt)就是我们与AI模型对话时输入的问题或指令。想象一下,你向一位聪明的朋友提问:
- ❌ 模糊提问:“给我讲讲编程”
- ✅ 清晰提问:“用简单的语言给10岁孩子解释什么是Python编程”
显然,第二种方式会得到更好的回答。这就是提示词工程的核心——学会如何与AI有效沟通。
在Spring AI Alibaba中,提示词不仅仅是字符串,而是结构化的对话指令,能够指导AI生成更精准的回答。
环境准备:5分钟快速开始
1. 环境要求
在开始之前,请确保你的开发环境满足以下要求:
- JDK 17及以上(本文使用JDK 17)
- Spring Boot 3.x及以上(本文使用Spring Boot 3.5.7)
- Maven 3.6及以上
2. 获取API Key
- 访问阿里云百炼平台并登录你的账号
- 开通"百炼大模型"服务(新用户通常有一定免费额度)
- 在控制台中生成API Key并保存

使用某个模型时,建议开启该模型的"免费额度用完即停"功能,防止测试中超额扣费。
语音合成模型可以在这里找:
创建Spring Boot项目
1. 初始化项目
访问 start.spring.io 快速创建项目,配置如下:
- Project: Maven
- Language: Java
- Spring Boot: 3.5.7
- Group: com.example
- Artifact: spring-ai-demo
- Java: 17
- Dependencies: Spring Web
点击"Generate"下载项目压缩包并解压到本地。
2. 配置pom.xml
在pom.xml中添加Spring AI Alibaba依赖和仓库配置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.7</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>spring-ai-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-ai-tts-demo</name>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter</artifactId>
<version>1.0.0-M5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 添加Spring Milestones仓库 -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
由于Spring AI相关依赖尚未发布到中央仓库,所以需要添加Spring Milestones仓库。
配置应用参数
1. 配置API Key
在src/main/resources/application.yml中添加配置:
spring:
application:
name: spring-ai-demo
ai:
dashscope:
api-key: ${AI_DASHSCOPE_API_KEY:}
chat:
options:
model: qwen3-max # 设置默认的对话模型
安全提示:不建议将API Key直接写在代码中,可以通过环境变量设置:
Windows系统:
set AI_DASHSCOPE_API_KEY=你的API_KEY
Mac/Linux系统:
export AI_DASHSCOPE_API_KEY=你的API_KEY
核心功能:三种常用的提示词用法
用法一:基础对话(最简单)
这是最直接的用法,适合快速测试:
package com.example.spring_ai_demo.controller;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/prompt")
public class PromptController {
private final ChatClient chatClient;
public PromptController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/simple/chat")
public String chat(String question) {
return chatClient.prompt()
.user(question) // 用户提问
.call() // 调用AI
.content(); // 获取回答
}
}
测试:
http://localhost:8080/prompt/simple/chat?question=什么是Spring框架?

用法二:角色设定(更精准的回答)
通过设定AI角色,让回答更加专业:
@GetMapping("/expert/chat")
public String expertChat(String question) {
return chatClient.prompt()
.system("你是一位资深的Java开发专家,用简单易懂的方式回答技术问题。")
.user(question)
.call()
.content();
}
测试:
http://localhost:8080/prompt/expert/chat?question=什么是Spring框架?

用法三:提示词模板(动态内容)
当需要根据变量生成提示词时,使用模板:
@GetMapping("/template/chat")
public String templateChat(String name, String topic) {
// 创建模板
String template = "为{name}用故事的方式讲解{topic},故事要生动有趣。";
// 设置变量
Map<String, Object> variables = Map.of(
"name", name,
"topic", topic
);
// 生成提示词
PromptTemplate promptTemplate = new PromptTemplate(template);
Prompt prompt = promptTemplate.create(variables);
return chatClient.prompt(prompt).call().content();
}
测试:
http://localhost:8080/prompt/template/chat?name=小明&topic=人工智能

PromptController完整代码
package com.example.spring_ai_demo.controller;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.prompt.PromptTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/prompt")
public class PromptController {
private final ChatClient chatClient;
public PromptController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/simple/chat")
public String chat(String question) {
return chatClient.prompt()
.user(question) // 用户提问
.call() // 调用AI
.content(); // 获取回答
}
@GetMapping("/expert/chat")
public String expertChat(String question) {
return chatClient.prompt()
.system("你是一位资深的Java开发专家,用简单易懂的方式回答技术问题。")
.user(question)
.call()
.content();
}
@GetMapping("/template/chat")
public String templateChat(String name, String topic) {
// 创建模板
String template = "为{name}用故事的方式讲解{topic},故事要生动有趣。";
// 设置变量
Map<String, Object> variables = Map.of(
"name", name,
"topic", topic
);
// 生成提示词
PromptTemplate promptTemplate = new PromptTemplate(template);
Prompt prompt = promptTemplate.create(variables);
return chatClient.prompt(prompt).call().content();
}
}
提示词设计小技巧
1. 明确具体
- ❌ “帮我写代码”
- ✅ “用Java写一个计算两个数字之和的方法,包含异常处理”
2. 提供上下文
- ❌ “优化这个”
- ✅ “我有一个用户注册方法,请检查代码并优化性能:[代码内容]”
3. 指定格式
- ❌ “列出学习步骤”
- ✅ “用Markdown列表格式列出学习Java的5个步骤”
4. 设定角色
- ❌ “解释这个概念”
- ✅ “作为一位有10年经验的架构师,向新人解释微服务架构”
常见问题解决
Q1: 依赖下载失败?
确保在pom.xml中添加了Spring Milestones仓库:
<repositories>
<repository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
Q2: API密钥错误?
- 检查环境变量是否设置正确
- 确认百炼服务平台已开通
- 验证API密钥是否有剩余额度
Q3: 响应速度慢?
- 检查网络连接
- 确认使用的是合适的模型(如qwen-plus)
- 避免过长的提示词内容
总结
通过本教程,你已经掌握了:
✅ 提示词的基本概念 - 学会如何与AI有效沟通
✅ 环境搭建 - 5分钟创建Spring AI项目
✅ 三种核心用法 - 基础对话、角色设定、模板生成
✅ 完整示例 - 构建了自己的学习助手
✅ 实用技巧 - 设计高质量提示词的方法
核心要点记住:
- 提示词越明确,回答越精准
- 角色设定让AI更专业
- 模板让动态内容生成更简单
完整项目结构:
spring-ai-demo
├── src/main/java
│ └── com/example/spring_ai_demo
│ ├── controller
│ │ └── PromptController.java
│ └── SpringAiDemoApplication.java
├── src/main/resources
│ └── application.yml
└── pom.xml
现在你已经具备了使用Spring AI Alibaba进行基础AI对话开发的能力。继续实践,尝试为你的项目添加智能对话功能吧!
本项目代码已上传至github《https://github.com/zhaohualuo/spring-ai-demo.git》
下图是Spring AI Alibaba官方对提示词相关的实现,供参考学习;具体官方文档如下:《提示词 (Prompt)》
进一步学习:
如有问题,欢迎在评论区讨论!
更多推荐



所有评论(0)