您现在的位置是:首页 >技术杂谈 >SpringBoot3+Ollama+DeepSeek-r1模型调用Demo网站首页技术杂谈

SpringBoot3+Ollama+DeepSeek-r1模型调用Demo

wangzheshengcun 2025-02-17 12:01:03
简介SpringBoot3+Ollama+DeepSeek-r1模型调用Demo

如何在SpringBoot项目中使用AI

在如今AI盛行时代,任何一个人都应该懂得模型的基本使用,使其成为我们日常工作、生活的一个利器。
这篇文章记录采用java技术生态进行DeepSeek-r1模型调用记录。

技术栈环境

  • java开发环境(作者环境)
    jdk21、idea2024、manjaro(idea)、windows11(ollama,内存高点)
  • ollama v0.5.7
  • DeepSeek模型
    看机器配置,作者为DeepSeek-r1:1.5b,所需内存为4G
  • 主要技术栈
    SpringBoot3.4.2、vaadin、spring-ai-ollama-spring-boot-starter(AI相关的包)

pom.xml

	<properties>
        <java.version>21</java.version>
        <!-- 最新的24.6可能是有点啥毛病,这次重点不在这里所以也就没在继续折腾 -->
        <vaadin.version>24.3.13</vaadin.version>
        <!-- 注意网上有很多教程是旧版本,可能已经无法使用了 -->
        <spring-ai.version>1.0.0-M5</spring-ai.version>
    </properties>
	<!-- 连接ollama靠的就是这玩意,linux/windiows都可以,注意windows是c盘位置,注意内存 -->
	<dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
     </dependency>
     <!-- 省的写html了...,不是主要的,可以忽略 -->
	<dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-spring-boot-starter</artifactId>
    </dependency>
	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-bom</artifactId>
                <version>${vaadin.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <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>
	<profiles>
        <profile>
            <id>production</id>
            <dependencies>
                <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-core</artifactId>
                    <exclusions>
                        <exclusion>
                            <groupId>com.vaadin</groupId>
                            <artifactId>vaadin-dev</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>

            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.vaadin</groupId>
                        <artifactId>vaadin-maven-plugin</artifactId>
                        <version>${vaadin.version}</version>
                        <executions>
                            <execution>
                                <id>frontend</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>prepare-frontend</goal>
                                    <goal>build-frontend</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

核心代码


import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.stereotype.Service;

@Service
public class DeepSeekLocalServiceImpl implements IDeepSeekLocalService {

	// 注意这个注入,可能一其它帖子不一样
    private final OllamaChatModel ollamaChatModel;

    public DeepSeekLocalServiceImpl(OllamaChatModel ollamaChatModel) {
        this.ollamaChatModel = ollamaChatModel;
    }

    @Override
    public String getCompletion(String message) throws JsonProcessingException {
    	//对话并返回回复
        return ollamaChatModel.call(message);
    }
}

配置文件信息

spring.ai.ollama.chat.enabled=true
spring.ai.ollama.base-url=http://192.168.1.11:11434
spring.ai.ollama.chat.options.model=deepseek-r1:1.5b

调用效果

DeepSeek-r1模型调用样例# 项目地址
gitee链接: deepai

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。