1. SpringAI实战:从零构建智能对话机器人
作为一名长期奋战在一线的Java开发者,我最近深度体验了SpringAI框架在构建智能对话应用方面的强大能力。SpringAI作为Spring生态的新成员,为大模型应用开发提供了开箱即用的解决方案。本文将带你从零开始,基于Ollama平台搭建一个具备完整会话能力的AI对话系统。
1.1 环境准备与项目搭建
1.1.1 创建基础工程
首先创建一个标准的SpringBoot项目,我推荐使用Spring Initializr(start.spring.io)进行初始化:
bash复制# 使用curl快速创建项目骨架
curl https://start.spring.io/starter.zip \
-d dependencies=web,mysql \
-d javaVersion=17 \
-d packaging=jar \
-d type=maven-project \
-d groupId=com.example \
-d artifactId=ai-demo \
-o ai-demo.zip
关键依赖选择:
spring-boot-starter-web:提供Web MVC支持mysql-connector-j:数据库驱动(后续会话持久化使用)- Java 17:SpringAI目前要求的最低JDK版本
注意:不要直接勾选Lombok依赖,某些IDE对Initializr生成的Lombok支持不完善,我们稍后手动添加更可靠。
1.1.2 添加SpringAI依赖
SpringAI采用BOM(Bill of Materials)方式管理版本,我们需要在pom.xml中先添加版本管理:
xml复制<properties>
<spring-ai.version>1.0.0-M6</spring-ai.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后添加Ollama的Starter依赖:
xml复制<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
手动添加Lombok依赖(版本建议与团队保持一致):
xml复制<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
1.1.3 配置Ollama连接
在application.yml中配置Ollama服务信息:
yaml复制spring:
ai:
ollama:
base-url: http://localhost:11434 # Ollama默认端口
chat:
model: deepseek-r1:7b # 使用的模型名称
options:
temperature: 0.8 # 控制生成随机性(0-1)
top-p: 0.9 # 核采样阈值
关键参数说明:
temperature:值越高结果越随机,适合创意场景;值越低越稳定,适合事实问答top-p:限制采样范围,与temperature配合使用可平衡创造性与准确性
1.2 核心功能实现
1.2.1 配置ChatClient
创建配置类初始化ChatClient:
java复制@Configuration
public class AiConfig {
@Bean
public ChatClient chatClient(OllamaChatModel chatModel) {
return ChatClient.builder(chatModel)
.defaultSystem("""
你是专业的技术助手,回答需满足:
1. 使用中文回复
2. 代码示例要完整可运行
