Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例

ops/2025/3/3 22:00:15/

1. 版本说明

springboot 版本 3.3.8
Java 版本 17
spring-ai 版本 1.0.0-M5
deepseek 模型 deepseek-r1:7b

需要注意一下Ollama的使用版本:

在这里插入图片描述

2. springboot项目搭建

可以集成在自己的项目里,也可以到 spring.io 生成一个项目

生成的话,如下图配置

在这里插入图片描述

这里放一个完整pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.8</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><spring-ai.version>1.0.0-M5</spring-ai.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

3. Ollama搭建

到 Ollama官网 需要下载两个,一个是Ollama的安装包,一个是模型。

在这里插入图片描述

下载对应操作系统的Ollama并一路默认安装,安装好后打开Models安装deepseek

在这里插入图片描述
这里选择默认7b,如果电脑配置不高,选择1.5b,当然也可以往上选择。复制右边红框内的命令

在这里插入图片描述
打开cmd,粘贴刚刚复制的命令 ollama run deepseek-r1:7b

在这里插入图片描述

4. 代码部分

a. application.properties

spring.application.name=demo
spring.ai.ollama.chat.options.model=deepseek-r1:latest
spring.ai.ollama.base-url=http://127.0.0.1:11434
spring.ai.ollama.chat.enabled=true
server.port=9091

关于model,填写自己当时下载的,比如上文下载的7b,冒号后面应该是7b,但是我之前下载的变成了latest,所以这里改成了latest,如果不清楚自己的模型,可以输入命令 ollama list 来查看模型,一定要和本机的模型对应上。

在这里插入图片描述

b. DeepSeekService

public interface DeepSeekTestService {String getResponse(String message);
}

c.DeepSeekServiceImpl

@Service
public class DeepSeekServiceImpl implements DeepSeekTestService {private final OllamaChatModel ollamaChatModel;public DeepSeekServiceImpl(OllamaChatModel ollamaChatModel) {this.ollamaChatModel = ollamaChatModel;}@Overridepublic String getResponse(String message) {return ollamaChatModel.call(message);}
}

这里可能会提是无法自动注入,先不需要管它,后面编译正常就行。

在这里插入图片描述

d. controller

@RestController
public class testController {@Autowiredprivate DeepSeekTestService deepSeekTestService;@RequestMapping("/ask1")public String speak(@RequestParam String msg){return deepSeekTestService.getResponse(msg);}
}

编辑好后启动项目并输入问题,我这里在浏览器直接测试

在这里插入图片描述


http://www.ppmy.cn/ops/162878.html

相关文章

MySQL安装多版本与版本切换

起因 今天在将一个项目部署到本地&#xff0c;找到的这个项目使用的MySQL版本是MySQL5.7&#xff0c;应该是比较古早的项目了&#xff0c;但是我现在装的是8.4版本的&#xff0c;所以涉及MySQL的版本切换&#xff0c;这里记录一下操作方法。 如何安全切换版本而不删除原有MySQ…

【算法】【并查集】acwing算法基础837. 连通块中点的数量

题目 给定一个包含 n 个点&#xff08;编号为 1∼n&#xff09;的无向图&#xff0c;初始时图中没有边。 现在要进行 m 个操作&#xff0c;操作共有三种&#xff1a; C a b&#xff0c;在点 a 和点 b 之间连一条边&#xff0c;a和 b 可能相等&#xff1b;Q1 a b&#xff0c;询问…

学习第九天-栈

栈的定义&#xff1a;栈是一种线性表数据结构&#xff0c;仅允许在表的一端&#xff08;栈顶&#xff09;进行插入&#xff08;入栈&#xff09;和删除&#xff08;出栈&#xff09;操作。没有数据元素时为「空栈」&#xff0c;遵循「后进先出&#xff08;LIFO&#xff09;」原…

做表格用什么软件?VeryReport让数据管理更高效!

在日常办公和企业管理中&#xff0c;表格软件是必不可少的工具&#xff0c;无论是财务报表、销售数据、库存管理&#xff0c;还是市场分析&#xff0c;都离不开高效的数据处理和可视化展示。那么&#xff0c;做表格用什么软件最好&#xff1f;市面上有Excel、WPS、Google Sheet…

StrokesPlus【电脑鼠标键盘手势软件】v0.5.8.0 中文绿色便携版

前言 StrokesPlus.net是一个超方便的手势识别软件&#xff0c;它能帮你用手势来代替鼠标和键盘操作。用起来既简单又灵活&#xff0c;功能还特别强大。 操作起来非常简单&#xff0c;它有好多实用的功能&#xff0c;比如智能识别你写的字、设定手势操作的区域、模拟鼠标的各种…

android bp构建编译C++代码

Android BP 编译方式介绍 在 Android 构建系统中&#xff0c;Blueprint&#xff08;简称 BP&#xff09;是一种基于 JSON 的构建配置文件格式&#xff0c;代替了传统的 Android.mk 文件。Blueprint 文件的主要扩展名是 .bp&#xff0c;它是 Android 的 Soong 构建系统所使用的…

长时间目标跟踪算法(2)-LCT目标跟踪算法

LCT算法的原始论文和源码已开源&#xff0c;原始论文和源码打包下载。 目录 算法简介核心思路与基本原理 2.1 任务分解&#xff1a;平移与尺度估计2.2 时间上下文相关滤波模型2.3 目标外观相关滤波模型2.4 在线随机蕨分类器 实现方案 3.1 关键公式与频域加速3.2 伪代码与流程…

webpack5在生产环境屏蔽掉控制台打印 失效处理

常规是使用 const TerserPlugin require(terser-webpack-plugin)const terserUglifyPlugin new TerserPlugin({exclude: [/node_modules/],terserOptions: {parse: {},compress: {warnings: false,drop_console: true,drop_debugger: true},output: {comments: false,beauti…