
Spring AI 是 Spring 团队开发的开源框架,旨在简化 Java 开发者在应用中集成人工智能 (AI) 功能的过程。它本身不是 AI 模型,而是通过提供统一的工具和抽象接口,帮助开发者便捷地接入并使用 OpenAI、Google Gemini、Mistral AI 等多种 AI 服务,其定位类似于 Spring Boot 在 Web 开发中的作用。
简而言之,Spring AI 如同 Java 世界的一座“桥梁”,它将复杂的 AI 技术变得易用,使开发者能运用熟悉的 Spring 生态系统来构建智能应用。
随着 ChatGPT 等大模型的兴起,AI 已成为众多应用的核心需求。传统 AI 开发多依赖 Python(如 LangChain、LlamaIndex),Java 开发者在接入 AI 时可能面临不便。Spring AI 的出现,为 Java 开发者拥抱 AI 提供了新的可能。作为 Spring 生态系统的新成员,Spring AI (官方文档) 通过提供统一接口、支持集成多种 AI 服务商和模型、以及 RAG 知识库、工具调用等常用 AI 开发特性,简化了 AI 应用的开发,使开发者能更专注于业务逻辑,从而提高效率。

Spring AI 的官方文档也较为清晰易懂。
Spring AI 的核心特性如下(参考官方文档):
Ollama 是一个开源平台,能帮助用户轻松地在本地运行和管理大语言模型 (LLM)。
Ollama 的主要特点包括:
访问官网 https://ollama.com 下载 Windows 版本安装程序。





打开 PowerShell 或 CMD,执行以下命令:
ollama --version
若返回版本号,则表示安装成功。
运行一个基础模型,例如:
ollama run deepseek-r1:671b如果您的设备资源不足以运行 671b 参数的模型,可以根据实际算力选择参数量更小的版本,命令如下:
ollama run deepseek-r1:1.5b
ollama run deepseek-r1:7b
ollama run deepseek-r1:8b
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b
ollama run deepseek-r1:70b更多相关信息请查阅:https://ollama.com/library/deepseek-r1
下面以一个较小参数的模型为例进行简单演示:

首先,在项目中引入 Maven 依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>接下来,创建一个配置类来设置 Ollama API 和指定要使用的模型:
@Configuration
public class OllamaConfig {
@Bean
public OllamaApi ollamaApi() {
return new OllamaApi();
}
@Bean
public OllamaChatModel deepseekChatModel(OllamaApi ollamaApi) {
OllamaOptions options = OllamaOptions.builder()
.model("deepseek-r1:1.5b") // 指定使用的模型名称
.build();
return OllamaChatModel.builder()
.ollamaApi(ollamaApi)
.defaultOptions(options)
.observationRegistry(ObservationRegistry.NOOP) // 可根据需要配置监控
.modelManagementOptions(ModelManagementOptions.defaults())
.build();
}
@Bean
public OllamaEmbeddingModel deepseekEmbeddingModel(OllamaApi ollamaApi) {
OllamaOptions options = OllamaOptions.builder()
.model("deepseek-r1:1.5b") // 指定用于嵌入的模型名称
.build();
return OllamaEmbeddingModel.builder()
.ollamaApi(ollamaApi)
.defaultOptions(options)
.observationRegistry(ObservationRegistry.NOOP)
.modelManagementOptions(ModelManagementOptions.defaults())
.build();
}
}然后,创建一个 REST API 控制器来处理聊天请求:
@RestController
@RequestMapping("/api/chat")
public class ChatController {
@Resource
private OllamaChatModel chatModel; // 注入配置好的 OllamaChatModel
@PostMapping
public ChatResponseDto chat(@RequestBody ChatRequest request) {
// 使用 UserMessage 封装用户输入
String result = chatModel.call(new UserMessage(request.getPrompt()));
return new ChatResponseDto(result);
}
}定义数据传输对象 (DTO) 用于 API 请求和响应:
public class ChatRequest {
private String prompt;
// 省略getter/setter
public String getPrompt() {
return prompt;
}
public void setPrompt(String prompt) {
this.prompt = prompt;
}
}public class ChatResponseDto {
private String response;
public ChatResponseDto(String response) {
this.response = response;
}
// 省略getter/setter
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
}最后,编写一个测试类来验证 Spring AI 与 Ollama 的集成效果:
@SpringBootTest(classes = AiNexusApplication.class) // 替换为您的Spring Boot主类
public class OllamaTest {
@Autowired
private OllamaChatModel deepseekChatModel;
@Test
public void testChatModel() {
String systemPrompt = "你是一个精通中文和英文的翻译大师。如果我给你英文就翻译成中文,给你中文就翻译成英文。";
String message = "Ollama now supports tool calling with popular models such as Llama 3.1.";
// 将系统提示和用户消息结合后发送给模型
String result = deepseekChatModel.call(new UserMessage(systemPrompt + ":" + message));
System.out.println(result);
}
}
单元测试的响应结果通常包含两部分:首先是 <think> 标签内的内容,这里展示了模型根据输入提示进行的思考过程;其次是模型最终给出的翻译结果。

Gitee 地址:https://gitee.com/FutureFusion-BNTang/ai-nexus
下表总结了 Spring AI 和 Ollama 的关键特性,帮助开发者更好地理解它们各自的定位和适用场景:
特性 | Spring AI | Ollama |
|---|---|---|
主要功能 | AI 应用开发框架,集成多种 AI 服务 | 在本地运行和管理大语言模型 (LLM) |
支持的模型 | 支持 OpenAI、Google、Ollama 等多种模型 (详见官方文档) | 支持 Llama 3、DeepSeek-R1、Phi-4 等多种模型 (详见官方文档) |
部署方式 | 通过 Spring Boot 集成到应用中 | 通过本地命令行或 Docker 独立部署 |
数据隐私 | 数据隐私取决于所选服务商,部分模型支持本地部署 | 模型完全在本地运行,数据隐私性高 |
适合场景 | 构建企业级 AI 应用 | 个人研究、开发及对数据隐私有高要求的项目 |