SpringAI 结合 Ollama 本地部署 Deepseek 实现对话机器人
在上一节中我们完成了 Ollama、Open WebUI 和 Docker 的本地可视化部署。本节将深入实战,演示如何在 Java 项目中通过 SpringAI 调用本地运行的 Deepseek 模型,并扩展 RAG 检索、PDF 解析及多模态功能。
Java 调用 Deepseek
首先确保本地已安装 Ollama 并拉取模型。在命令行执行以下命令:
ollama run deepseek-r1:7b
本地测试
启动 Docker Desktop 运行 Open WebUI,选择 deepseek-r1 模型进行基础对话测试,确认服务正常响应。
集成 SpringAI
依赖配置 移除原有的 Moonshot 相关依赖,引入 Ollama Starter:
<!-- 引入 Ollama 依赖 -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
配置类编写 定义 ChatClient 和 ChatMemory Bean,设置系统提示词以模拟特定角色(如特朗普语气),并启用内存对话记忆。
package com.yan.springai;
import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@RequiredArgsConstructor
public class Init {
final OllamaChatModel model2;
ChatClient {
ChatClient.builder(model2)
.defaultSystem()
.defaultAdvisors( (chatMemory))
.build();
}
ChatMemory {
();
}
}


