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

兄弟们,今天咱来聊聊一个超有意思的技术组合 ——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 运行在本地,端口是 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 服务和调用就讲到这里啦。

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

### 如何在Spring框架中集成OllamaDeepSeek进行AI开发 #### 使用Spring AIOllama搭建应用并调用DeepSeek模型API 为了使应用程序能够利用先进的AI能力,可以采用Spring AI结合Ollama来构建服务,并通过配置文件指定连接到特定的AI模型如DeepSeek-R1。这不仅简化了开发者的工作流程,还提高了项目的智能化水平[^1]。 #### 应用程序配置设置 具体来说,在`application.yaml`中定义服务器端口服务名称的同时,还需指明用于访问Ollama平台的基础URL以及所选用的具体聊天机器人模型——这里是DeepSeek-R1及其版本号8B(即拥有约8亿参数量级的大规模预训练语言模型)。这样的设定使得整个系统的初始化更加直观易懂[^2]: ```yaml server: port: 10005 spring: application: name: spring-ai-alibaba-ollama-chat-model-example ai: ollama: base-url: http://localhost:11434 chat: model: deepseek-r1:8b ``` #### 利用Docker部署环境 考虑到便捷性一致性,推荐使用Docker容器化技术来进行本地或云端环境中的一键式安装。官方已提供了一个名为`ollama/ollama`的标准镜像供用户下载使用,极大地降低了前期准备工作的复杂度[^3]。 #### 编写代码示例以展示功能实现 下面给出一段简单的Java代码片段作为实例,展示了如何基于上述配置发起一次针对DeepSeek-R1模型的消息请求: ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class ChatController { @Value("${spring.ai.ollama.base-url}") private String baseUrl; @GetMapping("/chat") public String getChatResponse(@RequestParam(value="message") String message){ // 假设这里有一个方法可以直接向baseUrl发送POST请求获取回复 return sendPostRequest(baseUrl, message); } private String sendPostRequest(String url, String content){ // 这里省略具体的HTTP POST逻辑实现细节 return "模拟返回的结果"; } } ``` 此段代码创建了一个RESTful接口 `/chat` ,它接收来自客户端的信息并通过预先设定好的基础地址转发给后台运行着的DeepSeek-R1模型实例;之后再把得到的回答原封不动地反馈回去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值