在 MacBook Pro 上本地部署 DeepSeek 模型并使用 Spring AI 访问

I. 引言
  1. 背景介绍
    • 本地运行大型语言模型 (LLM) 的优势(隐私、成本控制、定制化)。
    • DeepSeek 模型简介(如 DeepSeek-Coder, DeepSeek-VL 或特定版本)。
    • Spring AI 项目简介(简化 LLM 集成的 Spring 生态组件)。
    • 目标:在 MacBook Pro (Apple Silicon) 上实现 DeepSeek 的本地部署与 Spring AI 调用。
  2. 读者对象与前置知识
    • 熟悉 Java 基础、Spring Boot 开发。
    • 了解基本的命令行操作。
    • 对机器学习和 LLM 有基本概念。
II. 环境准备与要求
  1. 硬件要求
    • MacBook Pro 型号建议(M1 Pro/Max 或 M2/M3 系列,16GB+ 内存)。本文使用 M5芯片,内存32G。
    • 存储空间需求(模型文件大小)。
  2. 软件要求
    • Java JDK (17+ 推荐)。
    • Maven 开发环境。
    • Homebrew (直接终端运行即可: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。
  3. 关键工具
    • Ollama (本地运行 LLM 的轻量级框架)。
    • DeepSeek 模型文件(GGUF 格式,适用于 Ollama)。
III. 本地部署 DeepSeek 模型 (使用 Ollama)
  1. 安装 Ollama
    • 通过官网或 Homebrew 安装(官网地址:https://ollama.com/)。
    • 验证安装 (ollama --version)。
      在这里插入图片描述
  2. 获取 DeepSeek 模型
    • 可以查看ollama仓库有哪些模型可以下载https://ollama.com/library
    • 选择合适的 DeepSeek 模型版本和量化级别(考虑 Mac 显存/内存)。
      在这里插入图片描述
  • 运行ollama run deepseek-r1即可将模型下载至本地并运行

  • 下载完成后可以使用 ollama list 命令查看本地已下载的模型列表在这里插入图片描述

IV. 使用 Spring AI 访问本地 DeepSeek 模型
  1. Spring AI 项目设置
    • 创建或配置 Spring Boot 项目。
    • 添加 Spring AI Ollama 依赖 (spring-ai-ollama-spring-boot-starter)。
   <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
            <version>${spring-ai.version}</version>
        </dependency>
  1. 配置 Spring AI 连接本地 Ollama
    • application.propertiesapplication.yml 中配置:
      spring.ai.ollama.base-url=http://localhost:11434 # Ollama 默认端口
      spring.ai.ollama.model=deepseek-r1:latest # 在 Ollama 中注册的模型名称
      
  2. 创建访问 DeepSeek 的服务
    • 注入 OllamaChatModel
    • 编写 代码,封装对话请求。
    • 示例代码片段:
@RestController
public class ChatController {

    // Spring AI 自动注入 Ollama 客户端
    @Autowired
    private OllamaChatModel chatModel;

    /**
     * 流式响应 (适合大模型输出)
     */
    @PostMapping(path = "/ai/stream", produces = "text/plain;charset=UTF-8")
    public Flux<String> streamChat(@RequestBody MessageDto message) {
        return chatModel.stream(message.getContent());
    }
}
V. 测试与验证
  1. 启动 Spring Boot 应用。
  2. 通过 API 测试工具 (如 curl, Postman) 或简单前端页面发送请求。
  3. 验证返回内容是否来自本地运行的 DeepSeek 模型。
  4. 观察应用日志和系统资源。
    在这里插入图片描述
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐