deepseek 作为一款卓越的国产 ai 模型,越来越多的公司考虑在自己的应用中集成。对于 java 应用来说,我们可以借助 spring ai 集成 deepseek,非常简单方便!
deepseek 介绍
deepseek 是国内顶尖 ai 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"ai界的六边形战士"。deepseek 最新版本 r1 采用了“思维链”技术,能够展示完整的推理过程,使其在复杂推理任务上表现出色,甚至在某些方面可以与 openai 的 o1 模型相媲美。
deepseek 身上的标签有很多,其中最具代表性的标签有以下两个:
- 低成本(不挑硬件、开源、使用简单无需复杂提示词)。
- 高性能(推理能力极强、回答准确)。
spring ai 是什么?
spring ai 从著名的 python 项目(如 langchain 和 llamaindex)中汲取灵感,解决了 ai 集成中的核心挑战:将企业数据和 api 与 ai 模型连接起来。
你可以将 spring ai 看作是一个适配器或者高层封装,用来帮你更方便地集成和使用不同的 ai 模型。它的核心目标是简化开发流程,降低使用多种 ai 服务时的复杂性,同时提升代码的可维护性和灵活性。
spring ai 的主要功能包括
统一 api:spring ai 提供了一套统一的接口,用来调用不同的 ai 模型(例如 openai、hugging face、deepseek、gemini 等)。开发者只需要学习 spring ai 的 api,就能无缝对接各种 ai 服务,而无需深入了解各家服务的底层实现和差异。
简化配置:spring ai 提供了自动化的配置管理,例如 api 密钥、模型参数等。你只需要简单地在配置文件中定义所需的参数,spring ai 就会自动完成初始化和连接,避免繁琐的手动配置。
易于切换:spring ai 的抽象设计使得更换 ai 提供商变得非常简单。开发者只需要修改少量配置,而不用修改业务代码,从而实现灵活的 ai 服务切换,适应不同场景需求。
1、环境准备
在开始集成之前,确保你的开发环境满足以下要求:
- jdk17 或更高版本
- 高版本才能使用springai,才能调用deepseek;
- deepseekapikey(可通过官网注册获取),申请地址:https://platform.deepseek.com/usage
使用spring initializr 或其他工具创建-一个新的springboot项目,确保版本为3.2.x或更高。
2、构建项目
2.1、pom依赖
在项目的pom.xml文件中添加springai和deepseek的相关依赖。
以下是基于maven的依赖配置示例:
<?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.4.2</version> <relativepath/> <!-- lookup parent from repository --> </parent> <groupid>com.tyron</groupid> <artifactid>spring-ai</artifactid> <version>0.0.1-snapshot</version> <name>spring-ai</name> <description>spring-ai</description> <url/> <properties> <java.version>21</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-openai-spring-boot-starter</artifactid> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </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.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <configuration> <annotationprocessorpaths> <path> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> </path> </annotationprocessorpaths> </configuration> </plugin> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> <configuration> <excludes> <exclude> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
2.2、配置文件
#必填项 spring.ai.openai.api-key=your-api-key spring.ai.openai.base-url=https://api.deepseek.com #模型选择(示例使用对话模型) spring.ai.openai.chat.options.model=deepseek-chat
2.3、接口定义
@restcontroller() @requestmapping("/ai") public class chatcontroller { private openaichatmodel openaichatmodel; @autowired public chatcontroller(openaichatmodel openaichatmodel) { this.openaichatmodel = openaichatmodel; } /** * 生成 * * @param message 输入信息 * @return 输出信息 */ @getmapping("/generate") public map generate(@requestparam(value = "message", defaultvalue = "你是谁?") string message) { return map.of("generation", this.openaichatmodel.call(message)); } }
3、方法调用
接口报错
充值后,方可调用
小天有话说
本文中使用 spring-ai-openai starter
,只要在请求头里加个api_key
,就能假装自己在调 openai。spring ai 的 openai starter 本质上是通过 resttemplate 发请求,访问 deepseek api。
除此之外还可以通过本地化部署的方式进行调用,spring cloud alibaba ai 中也支持这种方式,并且官网上提供了详细的方法:https://java2ai.com/blog/spring-ai-alibaba-ollama-deepseek/ 。
大模型的响应速度是很慢的,为了提升用户体验,流式输出便很有必要了,后续文章会进行样例说明。
题外话
在 2025 年,ai 已深度融入社会各领域,成为推动发展的关键力量。
技术层面,ai 模型市场呈现多元竞争格局,通过多模态融合和轻量化部署实现效率跃升。deepseek等国产模型通过架构创新将训练成本降低,推动ai应用从“工具辅助”向“数字劳动力”转型。
在应用领域,ai 的硬件应用不断拓展,特别是在机器人技术方面,像自动驾驶汽车,以及自主无人机、仓库和制造业机器人等。此外,智能语音助手变得更加智能,能处理复杂查询,根据用户习惯动态管理日程并做出前瞻性建议。
展望未来,ai 将朝着多模态、更个性化、更智能的方向发展。多模态 ai 将整合文本、图像、音频和视频等多源数据,实现更自然的人机交互和更深入的理解。在生成式 ai 方面,除了图像和视频生成,还将拓展到更多创意领域,如音乐创作、文学创作等,成为创作者不可或缺的工具。
对程序员群体呈现“双刃剑”效应:一方面,ai工具通过代码生成、智能调试和个性化学习显著提升效率,例如cursor、deepseek等工具能辅助快速开发项目,甚至帮助新手理解复杂代码;另一方面,初级程序员面临重复性任务被ai替代的压力,需向全栈开发或ai系统设计等深度领域转型。同时,ai推动工作方式革新,程序员角色从编码执行者转向任务规划者,通过多模态大模型实现跨语言协作和智能决策,成为人机协同的“技术赋能者”。整体而言,ai既是生产力跃升的催化剂,也是职业能力重构的驱动力,要求程序员在驾驭技术的同时强化创新思维与跨领域整合能力。
到此这篇关于spring ai集成deepseek:三步搞定java智能应用的文章就介绍到这了,更多相关spring ai集成deepseek内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论