Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言

  随着人工智能技术的飞速发展,大语言模型(LLM)在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型,凭借其强大的自然语言处理能力和丰富的知识储备,迅速成为业界关注的焦点。无论是文本生成、代码编写,还是智能问答、数据分析,DeepSeek 都展现出了巨大的潜力。

  为了更好地将 DeepSeek 的强大能力赋能到实际项目中,本文将介绍如何利用 Spring AI 和 Ollama 实现 DeepSeek 模型的调用。Spring AI 作为 Spring 生态系统中用于构建 AI 应用的框架,提供了便捷的 API 和丰富的功能,能够帮助我们快速集成各种 AI 模型。而 Ollama 则是一个轻量级的工具,可以方便地在本地运行和管理大型语言模型,为开发者提供了更加灵活和高效的模型部署方案。

  通过本文的学习,您将掌握如何使用 Spring AI 和 Ollama 搭建一个简单的应用,并实现对 DeepSeek 模型的调用,从而为您的项目注入更强大的 AI 能力。

二、Spring AI介绍

  Spring AI 是 Spring 生态系统中的一个新兴项目,旨在为开发者提供一套简单、统一的 API 和工具,以便更轻松地将人工智能(AI)能力集成到 Spring 应用中。随着 AI 技术的快速发展,越来越多的企业希望将大语言模型(LLMs)、机器学习模型和其他 AI 功能融入自己的业务系统。Spring AI 应运而生,为开发者提供了一个标准化的方式来访问和调用各种 AI 模型和服务。

在这里插入图片描述

主要功能:

1.大语言模型(LLMs)集成

支持调用 OpenAI、DeepSeek、Hugging Face 等主流大语言模型。
提供统一的 API 进行文本生成、对话、翻译等任务。

2.向量数据库支持

集成向量数据库(如 Pinecone、Weaviate),用于存储和检索高维向量数据,支持语义搜索和推荐系统。

3.提示词工程(Prompt Engineering)

提供工具和模板,帮助开发者优化与大语言模型的交互,提升模型输出的准确性和相关性。

4.数据预处理和后处理

提供数据清洗、格式化等功能,确保输入数据符合模型要求,并对模型输出进行后处理。

5.可扩展性

支持自定义模型和算法,开发者可以根据需求扩展 Spring AI 的功能。

三、Ollama介绍

  Ollama 是一个轻量级、开源的工具,旨在帮助开发者更轻松地在本地运行和管理大型语言模型(LLMs)。它专注于简化模型的部署和使用流程,使得开发者无需复杂的配置即可快速上手。Ollama 支持多种流行的开源大语言模型(如 LLaMA、Mistral、DeepSeek 等),并提供了简单易用的命令行工具和 API,方便开发者将模型集成到自己的应用中。

  关于Ollama本地部署 DeepSeek 模型,参考我之前的文章 DeepSeek-R1本地部署详细指南: 《DeepSeek-R1本地部署详细指南!(Ollama+Chatbox AI+Open WebUI)》。

一定要先在本地部署 DeepSeek 模型,不然后面项目中无法使用。

四、SpringBoot项目中使用本地DeepSeek模型(代码实战)

整体版本SpringBoot 版本3.4.2 + JDK 17 + Ollama版本1.0.0-M6

1. 依赖引入

在这里插入图片描述

  <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency>

2. 添加配置

spring.ai.ollama.base-url=http://localhost:11434spring.ai.ollama.chat.model=deepseek-r1:14b

3. 调用模型测试

@SpringBootTest(classes = AIdemoApplication.class)
public class OllamaTestDemo {@Autowiredprivate OllamaChatModel ollamaChatModel;@Testpublic void startOllama() {String prompt = "hello";System.out.println("开始。。。");String callResult = ollamaChatModel.call(prompt);System.out.println(callResult);}
}

4. 测试结果

Hello! How can I assist you today?

在这里插入图片描述

5. 在测试一个问题

@SpringBootTest(classes = AIdemoApplication.class)
public class OllamaTestDemo {@Autowiredprivate OllamaChatModel ollamaChatModel;@Testpublic void startOllama() {String prompt = "请将下面的文字翻译成英文:";String message = "今天天气真好。";System.out.println("开始。。。");String callResult = ollamaChatModel.call(prompt + " " + message);System.out.println(callResult);}
}

在这里插入图片描述

五、总结

  Spring AI作为Spring生态系统中的一个重要组成部分,专注于提供人工智能相关的服务和支持,为开发者提供了便捷的开发环境和丰富的功能接口。而Ollama工具则以其强大的大型语言模型(LLMs)支持能力而著称,使得用户能够在本地环境中轻松运行各种LLMs,并享受其带来的高效和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23615.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.3 变量

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 变量是用来存放某个值的数据&#xff0c;它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型&#xff0c;然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库&#xff1a;在 Dify 平台上&#xff0c;通过普通编排的方式&#xff0c;创建了基于…

ESP32S3:参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路 (实现各个平台移植使用该方式)

目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…

工程师 - VSCode的AI编码插件介绍: MarsCode

豆包 MarsCode MarsCode AI: Coding Assistant Code and Innovate Faster with AI 豆包 MarsCode - 编程助手 安装完成并使能后&#xff0c;会在下方状态栏上显示MarsCode AI。 安装完并重启VSCode后&#xff0c;要使用这个插件&#xff0c;需要注册一下账号。然后授权VSCod…

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控&#xff0c;通过监控后端服务对外部请求的响应情况&#xff0c;判断服务器是否可用。 DPVS的被动监测&#xff0c;并不能获取后端服务器的详细情况&#xff0c;仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…

Tag标签的使用

一个非常适合运用在vue项目中的组件&#xff1a;Tag标签。 目录 一、准备工作 1、安装element-plus库 2、配置element-plus库 二、Tag标签入门 1、打开element官网&#xff0c;搜索tag标签 2、体验Tag标签的基础用法 三、Tag标签进阶训练1 1、定义一个数组&#xff0c;…

算法-图-数据结构(邻接矩阵)-BFS广度优先遍历

邻接矩阵广度优先遍历&#xff08;BFS&#xff09;是一种用于遍历或搜索图的算法&#xff0c;以下是具体介绍&#xff1a; 1. 基本概念 图是一种非线性的数据结构&#xff0c;由顶点和边组成&#xff0c;可分为无向图、有向图、加权图、无权图等。邻接矩阵是表示图的一种数…

Ryu:轻量开源,开启 SDN 新程

1. Ryu 控制器概述 定位&#xff1a;轻量级、开源的SDN控制器&#xff0c;专为开发者和研究人员设计&#xff0c;基于Python实现。开发者&#xff1a;由日本NTT实验室主导开发&#xff0c;遵循Apache 2.0开源协议。核心理念&#xff1a;简化SDN应用开发&#xff0c;提供友好的…

内容中台架构下智能推荐系统的算法优化与分发策略

内容概要 在数字化内容生态中&#xff0c;智能推荐系统作为内容中台的核心引擎&#xff0c;承担着用户需求与内容资源精准匹配的关键任务。其算法架构的优化路径围绕动态特征建模与多模态数据融合展开&#xff0c;通过深度强化学习技术实现用户行为特征的实时捕捉与动态更新&a…

【odoo18-文件管理】在uniapp上访问odoo系统上的图片

在uniapp上访问odoo系统上的图片 1、以url的形式访问 a&#xff1a;以odoo本身的域名&#xff0c;比如http://127.0.0.1:8069/web/image/product.template/3/image_128?unique1740380422000&#xff0c;这种方式需要解决跨域的问题。 b&#xff1a;以文件服务器的形式&…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

将maya模型物体材质转化为面材质

将maya模型物体材质转化为面材质&#xff0c;以在导出abc时继承材质信息&#xff1b; 运行一下python代码&#xff1a; import maya.cmds as cmds objListcmds.ls(slTrue) for obj in objList:shapeNodeNamecmds.listRelatives(obj, shapesTrue)sgNodesListcmds.listConnecti…

数据库面试题(基础常考!!!)

在数据库领域&#xff0c;无论是日常开发还是面试场景&#xff0c;都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述&#xff0c;帮助大家更好地应对面试和实际工作中的挑战。 面试题一&#xff1a;三范式详解 什么是三范式 三范式是关…

论文笔记(七十二)Reward Centering(三)

Reward Centering&#xff08;三&#xff09; 文章概括摘要3 基于值的奖励中心化4 案例研究&#xff1a; 以奖励为中心的 Q-learning5 讨论、局限性与未来工作致谢 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan…

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)

鸿蒙开发深入浅出01&#xff08;基本环境搭建、页面模板与TabBar&#xff09; 1、效果展示2、下载 DevEco Studio3、创建项目4、新建页面模板5、更改应用信息6、新建以下页面7、Index.ets8、真机运行9、图片资源文件 1、效果展示 2、下载 DevEco Studio 访问官网根据自己的版本…

蓝桥杯第十六届嵌入式模拟编程题解析

由硬件框图可以知道我们要配置LED 和按键 LED 先配置LED的八个引脚为GPIO_OutPut&#xff0c;锁存器PD2也是&#xff0c;然后都设置为起始高电平&#xff0c;生成代码时还要去解决引脚冲突问题 按键 按键配置&#xff0c;由原理图按键所对引脚要GPIO_Input 生成代码&#xf…

二叉树的遍历知识点及习题

一、知识点 1二叉树的遍历理解为按照预先定好的搜索路径访问树里的每个节点&#xff0c;且每个节点仅访问一次 2假设根节点为N&#xff0c;左子树为L&#xff0c;右子树为R&#xff0c;常见的三种遍历方法分别是先&#xff08;前&#xff09;序遍历NLR 根左右&#xff0c;中序…

“conda”不是内部或外部命令,也不是可运行的程序或批处理文件

有的时候&#xff0c;我们发现在cmd黑框中输入conda时&#xff0c;cmd会显示“conda”不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件&#xff0c;那这时候该怎么解决呢&#xff1f; Step01&#xff1a;我们找到Anconda的安装目录。然后找到里面的bin文件夹&am…

特辣的海藻!3

基础知识点 判断一个数是否是2的幂次 方法一&#xff1a;位运算 所有2的幂次数的二进制表示中有且仅有一个1&#xff0c;进行位运算 n&(n-1) 后结果为0 检查正数&#xff1a;n > 0&#xff08;负数和0不是2的幂次&#xff09;位运算&#xff1a; n & ( n -1) 会…