随着Deepseek的火爆,Spring AI 插上 DeepSeek 的翅膀,飞向智能新高度!DeepSeek 如同 Spring AI的“最强大脑”,将为其注入强大的 AI 能力,开启智能应用的新纪元。
本章采用Ollama本地部署Deepseek,并应用整合到Spring AI中。
01 本地部署Ollama
1.1 进入Ollama官网
链接地址:https://ollama.com/
可以根据自己的需求下载macOS、Linux、Windows版本的Ollama。
本章采用Linux方式部署, 直接复制命令在Linux执行即可。
注意:
这里的Linux系统使用的Centos7,笔者之前在搭建过程中使用过Centos5.x,中间出现了各种问题,无法安装成功。使用Centos7之后就很顺利完成Ollama的安装。
1.2 检查是否安装成功
ollama -v
出现Ollama的版本说明Ollama已经安装完成。
02 本地部署Ollama
Ollama中提供了大量的模型,可以根据自己的需要结合服务器的性能下载。从Ollama官网可以看到Deepseek模型的下载量稳居榜首。
2.1 拉取Deepseek-r1模型
Deepseek-r1模型提供7个不同参数的模型,不同的参数要求的服务器性能也不同,其中 671b 是满血版。笔者采用1.5b的参数部署,方面演示。
2.2 使用Ollama拉取大模型
ollama pull deepseek-r1:1.5b
2.3 查看大模型
ollama list
2.4 运行大模型
ollama run deepseek-r1:1.5b
启动完成之后就可直接和大模型对话了。
2.5 结束对话
/bye
2.6 Ollama 配置远程访问
Ollama 默认时不支持远程访问的,需要增加远程服务的配置。如果不配置就会出现使用IP访问时,无法访问的情况,这也是一种安全机制。
vim /etc/systemd/system/ollama.service
# 增加远程配置项
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
# 重启Ollama服务
systemctl daemon-reload
systemctl restart ollama
03 Spring AI的集成
Spring AI已经有发布了预发布版本。
1.0.0-M6
Spring AI有多种大模型的接入方式:
本章采用Ollama的方式介入。
3.1 依赖引入
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-M6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
3.2 配置
# Ollama服务地址
spring.ai.ollama.base-url=http://10.100.213.25:11434
# 模型选择
spring.ai.ollama.chat.model=deepseek-r1:1.5b
# 模型精度
spring.ai.ollama.chat.options.temperature=0.7
3.3 demo代码展示
这里需要注入OllamaChatModel
/**
* Spring AI
*
* @Author: ws
* @Date: 2025/2/24 15:10
*/
@RestController
public class FooController {
@Autowired
private OllamaChatModel ollamaChatModel;
/**
* @Description: 普通的调用
*
* @Author: ws
* @Date: 2025/2/24 16:32
**/
@GetMapping("/ai/generate")
public Map<String,String> generate(@RequestParam(value = "message", defaultValue = "请给我讲一个笑话") String message) {
return Map.of("generation", this.ollamaChatModel.call(message));
}
/**
* @Description: 响应式调用
*
* @Author: ws
* @Date: 2025/2/24 16:32
**/
@GetMapping("/ai/generateStream")
public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "请给我讲一个笑话") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return this.ollamaChatModel.stream(prompt);
}
}
3.4 效果展示
3.5 注意事项
在使用Spring AI调用大模型时,无需启动Ollama的大模型。调用时会自动调用大模型。
04 终章
如果你的电脑配置足够可以,可以使用671b的满血版,开启新的AI篇章。
博主的微信新开了微信公众号: