Spring AI(一): Deepseek对话案例快速开始
摘要: Spring AI是面向Java生态的原生生成式AI框架,基于Spring设计理念,提供统一接口支持多模型切换(如OpenAI、DeepSeek等)。本文介绍快速集成Spring AI与DeepSeek模型的步骤:1)创建Spring Boot 3.x项目;2)配置Maven依赖及仓库;3)设置API密钥与模型参数;4)通过ChatClient实现对话接口。开发者只需简单配置即可调用AI能
欢迎关注微信公众号
「思客潘」
文章目录
一、什么是Spring AI
Spring AI是面向 Java 和 Spring 生态的原生生成式人工智能框架。它不是简单地将 Python 中的 LangChain 或 LlamaIndex 移植到 Java,而是依据 Spring 的设计理念——如依赖注入、POJO、模块化和可配置——重构生成式 AI 的全流程。通过 Spring Boot 的自动装配机制,开发者可以像调用数据库或 Web API 一样轻松地接入聊天、嵌入、图像生成、语音处理等 AI 能力,并且能够毫不费力地将企业内部数据与 AI 模型关联起来(如同 RAG 检索增强生成中常用的数据注入方式)。
Spring AI 倡导“一套接口,多种实现”,开发者无须为不同 AI 提供商逐一适配,而是可以通过统一抽象实现轻松切换,比如 OpenAI、Anthropic、Bedrock、Hugging Face、Vertex AI、Ollama 等服务。
二、Spring AI 快速上手
1.环境要求
Spring AI构建在Spring Boot 3.x之上,Spring Boot 3.x系列最低Java要求版本是JDK17,不支持Java8/11/16等低于17的版本,推荐使用Maven3.6及以上版本。
2.创建 Spring Boot 项目
使用 Spring Initializr 创建项目,添加以下依赖:
- Spring Web
- Spring Configuration Processor
3.添加 Maven 依赖
<!-- 导入 Spring AI BOM,用于统一管理 Spring AI 依赖的版本,
引用每个 Spring AI 模块时不用再写 <version>,
只要依赖什么模块 Mavens 自动使用 BOM 推荐的版本 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- deepseek 依赖包-->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-deepseek</artifactId>
</dependency>
</dependencies>
<!-- 声明仓库, 用于获取 Spring AI 以及相关预发布版本-->
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
注意:
将 Maven 与 Spring AI 快照一起使用时,请注意您的 Maven 镜像配置。如果您在settings.xml像下面这样:
<mirror>
<id>my-mirror</id>
<mirrorOf>*</mirrorOf>
<url>https://my-company-repository.com/maven</url>
</mirror>
通配符会将所有存储库请求重定向到您的镜像,从而阻止访问 Spring 快照存储库。要修复此问题,请修改*mirrorOf配置以排除 Spring 存储库:
<mirror>
<id>my-mirror</id>
<mirrorOf>*,!spring-snapshots,!central-portal-snapshots</mirrorOf>
<url>https://my-company-repository.com/maven</url>
</mirror>
4. 配置 application.properties
配置 Deepseek URL、API Key、模型:
spring:
ai:
deepseek:
base-url: https://api.deepseek.com
api-key: your-api-key
chat:
options:
model: deepseek-chat #模型
temperature: 0.7 #配置温度,范围0-2 2 发散
5. 编写配置类
创建一个配置类,用于定义 ChatClient Bean:
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AIConfig {
// Spring AI 会自动根据配置文件创建 ChatClient
// 此处仅做显式声明(非必须,自动装配即可使用)
}
6. 创建 REST 控制器
编写一个简单的接口来测试与 DeepSeek 的对话:
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/ai")
public class DeepSeekController {
private final ChatClient chatClient;
public DeepSeekController(ChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("/chat")
public String chat(@RequestParam(value = "message", defaultValue = "你好,请介绍一下你自己") String message) {
return chatClient.prompt(message).call().content();
}
}
7. 运行与测试
启动 Spring Boot 应用,访问接口:
http://localhost:8080/ai/chat?message=Java中如何实现单例模式?
预期输出
浏览器将显示 DeepSeek 模型返回的关于 Java 单例模式的实现方法。
总结
Spring AI 通过提供一套统一的抽象层,极大地降低了 Java 开发者接入生成式 AI 的门槛。结合 DeepSeek 等强大的国产大模型,开发者可以快速构建出具备智能对话、代码生成、内容创作等功能的企业级应用。
更多推荐


所有评论(0)