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

news/2025/2/22 6:09:43

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;
    }

    @Override
    public String getResponse(String message) {
        return ollamaChatModel.call(message);
    }
}

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

在这里插入图片描述

d. controller

@RestController
public class testController {

    @Autowired
    private DeepSeekTestService deepSeekTestService;

    @RequestMapping("/ask1")
    public String speak(@RequestParam String msg){
        return deepSeekTestService.getResponse(msg);
    }
}

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

在这里插入图片描述


http://www.niftyadmin.cn/n/5861744.html

相关文章

如何实现使用DeepSeek的CV模型对管道内模糊、低光照或水渍干扰的图像进行去噪、超分辨率重建。...

要使用 DeepSeek 的 CV 模型对管道内模糊、低光照或水渍干扰的图像进行去噪、超分辨率重建&#xff0c;一般可以按照以下步骤实现&#xff1a; 1. 准备工作 1.1 获取 API 访问权限 首先&#xff0c;你需要从 DeepSeek 官方获取 API 访问权限和相应的 API 密钥。这通常需要在 De…

Django-Vue 学习-VUE

主组件中有多个Vue组件 是指在Vue.js框架中&#xff0c;主组件是一个父组件&#xff0c;它包含了多个子组件&#xff08;Vue组件&#xff09;。这种组件嵌套的方式可以用于构建复杂的前端应用程序&#xff0c;通过拆分功能和视图&#xff0c;使代码更加模块化、可复用和易于维…

微服务即时通信系统---(二)框架学习

目录 gflags 介绍 安装 使用 头文件包含 编译时指明库 宏定义参数 启动时设置命令行参数来设置参数值 使用配置文件来设置参数值 初始化所有参数 访问参数 程序B访问程序A定义的参数 gflags提供的特殊参数标识 使用案例 代码编写 样例运行 gtest 介绍 安装…

Minio分布式多节点多驱动器集群部署

Minio分布式多节点多驱动器集群部署 Minio分布式多节点多驱动器集群部署节点规划先决条件开放防火墙端口设置主机名更新域名映射文件时间同步存储要求内存要求 增加虚拟机磁盘(所有机器都要执行)部署分布式 MinIO测试上传与预览测试高可用MinIO 配置限制模拟单节点磁盘故障模拟…

网络空间安全(1)web应用程序的发展历程

前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷&#xff0c;从简单的文档共享系统到如今复杂、交互式、数据驱动的平台&#xff0c;经历了多个重要阶段。 一、起源与初期发展&#xff08;1989-1995年&#xff09; Web的诞生&#xff1a; 1989年&#xff0c;欧洲…

深蕾科技智能多媒体SoC产品助力“DataEye剧查查之夜”微短剧盛会

深蕾科技助力微短剧盛会 深圳湾“DataEye剧查查之夜”微短剧盛会&#xff0c;于2025年2月20日18:00点&#xff0c;在深圳湾盛大开启。作为第十四届中国国际新媒体短片节的重要组成部分&#xff0c;“剧查查之夜”汇聚了微短剧行业的顶尖力量&#xff0c;吸引了众多大咖齐聚一堂…

ip属地是电话号码吗怎么改

在数字化时代&#xff0c;IP属地作为网络身份的一部分&#xff0c;对于许多互联网用户来说并不陌生。然而&#xff0c;关于IP属地的具体含义以及如何更改它&#xff0c;却常常让一些用户感到困惑。特别是当提到IP属地与电话号码之间的关系时&#xff0c;更是容易让人产生误解。…

超多目标优化:基于导航变量的多目标粒子群优化算法(NMOPSO)的无人机三维路径规划,MATLAB代码

一、基于导航变量的多目标粒子群优化算法&#xff08;NMOPSO&#xff09;介绍 基于导航变量的多目标粒子群优化算法&#xff08;Navigation variable-based multi-objective particle swarm optimization&#xff0c;NMOPSO&#xff09;是2025年提出的一种用于无人机路径规划的…