Spring AI + Ollama 实现 deepseek-r1 的API服务和调用

兄弟们,今天咱来聊聊一个超有意思的技术组合 ——Spring AI Ollama 实现 deepseek - r1 的 API 服务和调用。 咱都知道,人工智能这几年那可是火得一塌糊涂,各种大模型你方唱罢我登场。 deepseek - r1 就是其中一个挺厉害的模型,那怎么把它用起来,让它为咱们的项目服务呢?

兄弟们,今天咱来聊聊一个超有意思的技术组合 ——Spring AI + Ollama 实现 deepseek - r1 的 API 服务和调用。咱都知道,人工智能这几年那可是火得一塌糊涂,各种大模型你方唱罢我登场。deepseek - r1 就是其中一个挺厉害的模型,那怎么把它用起来,让它为咱们的项目服务呢?这就轮到 Spring AI 和 Ollama 闪亮登场啦!

一、啥是 Spring AI、Ollama 和 deepseek - r1

(一)Spring AI

Spring AI 呢,它就像是一个超级助手,专门为咱们开发人工智能应用提供各种便利。它基于咱们熟悉的 Spring 框架,有一套现成的工具和组件,能让咱快速搭建起人工智能相关的功能。比如说,它能帮咱们轻松地集成各种大模型,管理模型的调用,处理输入输出啥的,就像给咱们的项目装上了一个智能引擎,让开发 AI 应用变得简单又高效。

(二)Ollama

Ollama 又是什么呢?它是一个运行和管理大语言模型的平台。它的好处就在于,咱们不用费老大劲去自己部署和管理模型了,Ollama 帮咱们把这些麻烦事都搞定。它支持好多主流的大模型,而且提供了简单易用的 API,咱们可以通过这些 API 很方便地和模型进行交互,让模型给咱们干活。

(三)deepseek - r1

deepseek - r1 可是个实力派选手,它是一个功能强大的大模型,在自然语言处理方面表现相当出色。能帮咱们做文本生成、问答系统、智能客服等等好多实用的功能。今天咱就来看看怎么把它和 Spring AI、Ollama 一起搭配,发挥出最大的威力。

二、准备工作

在开始动手之前,咱得先把环境搭好。首先,你得确保你的开发环境里有 Java。要是没有的话,赶紧去下载安装一个,现在 Java 最新版都挺好用的,安装过程也不难,按照提示一步一步来就行。

然后呢,咱们得安装 Maven。Maven 是干啥的呢?它就像是一个大管家,帮咱们管理项目里用到的各种依赖。比如说,咱们要用 Spring AI 和 Ollama,就可以通过 Maven 很方便地把它们加到咱们的项目里。安装 Maven 也很简单,去 Maven 的官网下载安装包,解压之后配置一下环境变量就搞定啦。

接下来,咱们还得安装 Ollama。Ollama 的安装也不复杂,它支持好几种操作系统。你可以去 Ollama 的官网,按照它给的安装指南,根据你自己的操作系统来安装。安装好之后,启动 Ollama,确保它在正常运行。

三、创建 Spring Boot 项目

环境搭好之后,咱就可以开始创建 Spring Boot 项目啦。打开你喜欢的 IDE,比如说 IntelliJ IDEA 或者 Eclipse。在 IDE 里创建一个新的 Spring Boot 项目,这里选择 Maven 项目,然后在项目的pom.xml文件里添加 Spring AI 和 Ollama 相关的依赖。

复制
<dependencies>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <!-- Spring AI -->
    <dependency>
        <groupId>io.micronaut.ai</groupId>
        <artifactId>micronaut-ai-openai</artifactId>
        <version>1.0.0</version>
    </dependency>
    <!-- Ollama -->
    <dependency>
        <groupId>com.github.jillesvangurp</groupId>
        <artifactId>ollama-java</artifactId>
        <version>0.1.0</version>
    </dependency>
</dependencies>

这些依赖就是咱们项目的 “弹药库”,有了它们,咱们才能在项目里使用 Spring AI 和 Ollama 的各种功能。添加好依赖之后,Maven 会自动帮咱们下载这些依赖包,耐心等一会儿就行。

四、配置 Ollama 客户端

接下来,咱们得配置一下 Ollama 客户端,这样咱们的 Spring Boot 项目才能和 Ollama 进行通信。在 Spring Boot 项目的src/main/resources目录下创建一个application.properties文件,然后在里面添加 Ollama 的配置信息。

复制
ollama.url=http://localhost:11434
ollama.url=http://localhost:11434

这里咱们假设 Ollama 运行在本地,端口是 11434,要是你安装的时候改了端口,记得把这里的端口号也改成你自己的。

五、编写代码调用 deepseek - r1

配置好之后,就到了最关键的部分啦,编写代码来调用 deepseek - r1。咱们先创建一个 Java 类,比如说叫OllamaService,在这个类里编写调用 Ollama 和 deepseek - r1 的方法。

复制
import com.github.jillesvangurp.ollama.OllamaClient;
import com.github.jillesvangurp.ollama.api.ChatCompletionRequest;
import com.github.jillesvangurp.ollama.api.ChatCompletionResponse;
import com.github.jillesvangurp.ollama.api.Message;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@Service
publicclass OllamaService {

    @Value("${ollama.url}")
    privateString ollamaUrl;

    publicString generateText(String prompt) {
        OllamaClient client = new OllamaClient(ollamaUrl);
        List<Message> messages = new ArrayList<>();
        messages.add(new Message("user", prompt));

        ChatCompletionRequest request = new ChatCompletionRequest("deepseek - r1", messages);
        ChatCompletionResponse response = null;
        try {
            response = client.createChatCompletion(request);
        } catch (IOException e) {
            e.printStackTrace();
        }
        assert response != null;
        return response.getChoices().get(0).getMessage().getContent();
    }
}

在这段代码里,咱们首先创建了一个OllamaClient对象,用来和 Ollama 进行通信。然后创建了一个ChatCompletionRequest对象,这里指定使用deepseek - r1模型,并且把用户的输入(也就是prompt)作为一条消息传进去。接着通过OllamaClient发送这个请求,得到ChatCompletionResponse,最后从响应里取出模型生成的文本返回。

六、在 Controller 中使用服务

代码写好了,怎么让它跑起来呢?咱们还得创建一个 Controller,在 Controller 里调用这个OllamaService。创建一个OllamaController类。

复制
import org.springframework.beans.factory.annotation.Autowired;
importorg.springframework.web.bind.annotation.GetMapping;
importorg.springframework.web.bind.annotation.RequestParam;
importorg.springframework.web.bind.annotation.RestController;

@RestController
public class OllamaController {

    @Autowired
    private OllamaService ollamaService;

    @GetMapping("/generate")
    public String generateText(@RequestParam String prompt) {
        returnollamaService.generateText(prompt);
    }
}

在这个 Controller 里,咱们通过@Autowired注解把OllamaService注入进来,然后创建了一个/generate的接口,当用户访问这个接口并且传入一个prompt参数的时候,就会调用OllamaService的generateText方法,返回模型生成的文本。

七、测试一下

现在,咱们的项目基本上就大功告成啦!启动 Spring Boot 项目,等项目启动成功之后,打开浏览器,输入http://localhost:8080/generate?prompt=你好,给我讲一个笑话(这里假设你的 Spring Boot 项目端口是 8080)。然后回车,稍等一会儿,你就能看到浏览器里返回了一段由 deepseek - r1 模型生成的笑话。

怎么样,是不是挺简单的?通过 Spring AI 和 Ollama,咱们轻轻松松就实现了对 deepseek - r1 模型的 API 服务和调用。当然啦,这只是一个简单的示例,在实际项目中,你可以根据自己的需求对代码进行扩展和优化,比如说增加更多的参数配置,处理更复杂的输入输出等等。

好啦,今天关于 Spring AI + Ollama 实现 deepseek - r1 的 API 服务和调用就讲到这里啦。

相关资讯

Deepseek4j再更新:Java应用一行代码集成DeepSeek

deepseek4j 是什么deepseek4j() 是一个专为 Java 开发者打造的 DeepSeek 模型集成框架。 通过优雅的 API 设计,只需一行代码,即可实现接入 DeepSeek,并获得以下核心能力:完整思维链保留:完美保留 DeepSeek 模型的推理过程,让 AI 的思考过程可追溯流式输出体验:基于 Reactor 实现的流式响应,带来类 ChatGPT 的打字机效果复制使用 deepseek4j,您可以专注于业务逻辑开发,而无需关心底层细节。 一、v1.3 更新内容1.1 联网搜索支持1739118403新版本最重要的更新是引入了联网搜索能力,这一功能带来三个关键优势:突破时间边界:模型不再受限于预训练数据的时间范围,可以获取和处理最新信息实时信息获取:通过高质量信息源获取实时资讯,提供更精准的问答服务差异化竞争:在大模型同质化严重的当下,联网搜索成为关键的差异化竞争点复制1.2 智能系统提示词1739118117系统提示词(System Prompt)是基于模型开发的应用程序内置的指令,让决定了模型在特定上下文中的表现方式、回答风格和功能范围。

Spring 宣布接入 DeepSeek

DeepSeek 是深度求索公司发布的大模型,是国产之光。 大家应该学会如何使用 DeepSeek 大模型,下面我们将看下如何开发基于 DeepSeek 大模型的智能应用。 DeepSeek 大模型DeepSeek 推出两款模型;DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chatDeepSeek R 系统,对于R系统主要 推理, 模型名称:deepseek-reasonerDeepSeek 官方更新日志,可以看到模型发布和演化的过程。

如何用 Spring AI + Ollama 构建生成式 AI 应用

一、故事背景:Java 老炮儿与 AI 新秀的较量上周,产品经理拍着桌子说:"三天内必须上线智能客服! 要能回答订单查询、退换货政策,还要会讲冷笑话! " 我盯着需求文档陷入沉思:传统规则引擎就像老黄牛,拉不动这么重的活;调用 OpenAI 又怕数据泄露——这不是让 Java 程序员在钢丝上跳霹雳舞吗?