Spring AI入门:调用本地Ollama部署的DeepSeek模型,打造高效AI解决方案
在本地环境中高效运行大语言模型(LLM)正成为开发者探索的热门方向。本文将手把手教你如何通过Spring AI框架,无缝集成本地部署的Ollama服务,调用强大的DeepSeek模型来解决实际问题。无论你是想快速搭建智能问答系统、自动化文本分析,还是探索私有化AI部署,本文将从环境配置、代码实战到优化技巧,带你完整走通技术闭环,实现低延迟、高可控的AI应用开发。springAI调用deepseek
在本地环境中高效运行大语言模型(LLM)正成为开发者探索的热门方向。本文将手把手教你如何通过Spring AI框架,无缝集成本地部署的Ollama服务,调用强大的DeepSeek模型来解决实际问题。无论你是想快速搭建智能问答系统、自动化文本分析,还是探索私有化AI部署,本文将从环境配置、代码实战到优化技巧,带你完整走通技术闭环,实现低延迟、高可控的AI应用开发。
springAI调用deepseek API接口实现部署集成会在下一篇博客中介绍
快捷跳转
一、为什么选择Spring AI + Ollama + DeepSeek
1. 技术栈优势
- Spring AI:简化AI集成的Java生态工具
- Ollama:本地化部署LLM的轻量级方案
- DeepSeek:高性能开源模型的适用场景
2. 本地化部署的价值
- 数据隐私保障
- 低延迟响应
- 模型定制化潜力
二、本地部署DeepSeek模型
这里的具体实现流程可以参考我写的这一片博客
零门槛本地部署AI模型:基于Ollama实现DeepSeek全攻略
三、Spring AI集成Ollama API
1. 创建一个Spring AI项目
这里我们可以直接勾选AI中的ollama,除此之外,需要一个web服务器和数据库
或者添加这个依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>
2.修改配置文件 application.yml
spring:
ai:
ollama:
base-url: http://localhost:11434 # 模型地址
chat: # 模型类型
model: deepseek-r1:1.5b # 模型名称

3.配置客户端
创建配置包,创建配置客户端类

package com.wjd.config;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class CommonConfiguration {
@Bean
public ChatClient chatClient(OllamaChatModel model) {
return ChatClient
.builder(model)
.build();
}
}
四、测试集成是否成功
创建controller层代码,创建ChatController进行测试
1. 阻塞式生成

这里调用/ai/call

2. 流式生成


3. controller层代码
package com.wjd.controller;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
@RestController
@RequestMapping("/ai")
public class ChatController {
private final ChatClient chatClient;
@Autowired
public ChatController(ChatClient chatClient) {
this.chatClient = chatClient;
}
@RequestMapping("/call")
public String chat(String prompt) {
/**
* 阻塞式调用
*/
return chatClient.prompt()
.user(prompt)
.call()
.content();
}
@RequestMapping(value = "/stream", produces = "text/html;charset=utf-8")
public Flux<String> stream(String prompt) {
/**
* 流式调用
*/
return chatClient.prompt()
.user(prompt)
.stream()
.content();
}
}
五、补充
1. 设置deepseek提示词

可以通过defaultSystem来获取提示词

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)