当前位置: 首页 > news >正文

SpringAI1-快速⼊⻔

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1. Spring AI 概述
  • 2. 术语介绍
    • 2.1 模型
    • 2.2 LLM
    • 2.3 提⽰词
    • 2.4 词元(Tokens)
  • 3. Spring AI 快速⼊⻔
    • 3.1 环境要求
    • 3.2 DeepSeek介绍
    • 3.3 申请DeepSeek API Keys
    • 3.4 接入deepseek
      • 3.4.1 配置API
      • 3.4.2 配置接口
    • 3.5 接入ChatGpt
  • 总结


前言

1. Spring AI 概述

在这里插入图片描述

2025年 5⽉20⽇ Spring AI官⽅宣布1.0 GA (General Availability) 版本正式发布, 这是Spring 官⽅推出的⾸个稳定版⼈⼯智能(AI)集成框架. 旨在帮助 Java/Spring 开发者更便捷地在企业级应⽤中集成 AI 能⼒ (如⼤语⾔模型、机器学习、向量数据库、图像⽣成等). 它的发布标志着 Spring ⽣态正式进⼊ AI 时代, 为 Java 开发者提供了标准化的 AI 开发⼯具链, AI 技术正式进⼊ Spring ⽣态的核⼼⼯具链.

Spring AI 是⼀个AI⼯程领域的应⽤框架, 它的⽬标是将 Spring ⽣态系统的设计原则 (如可移植性和模块化设计) 应⽤于 AI 领域, 并促进使⽤POJO作为AI领域应⽤程序的构建块.
Spring AI 提供以下功能:
• ⽀持主要的AI模型提供商, ⽐如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama,⽀持的模型种类也⾮常多, ⽐如: 聊天模型, 嵌⼊模型, 图像模型, ⾳频模型, 内容审核等.
• 跨 AI 提供商的可移植 API ⽀持. ⽀持聊天 (Chat) , ⽂本到图像 (text-to-image) 和嵌⼊
(Embedding) 模型的统⼀接⼝, 同时提供同步和流式 API 选项. ⽀持访问模型特定功能.
总之, Spring AI 为 ⾮AI专家的开发者也能快速调⽤⼤语⾔模型, 提供了构建 AI 应⽤的基础抽象层, 允许开发⼈员通过极少的代码修改即可轻松替换组件. 简化集成AI功能的应⽤程序开发, 避免不必要的复杂性.

2. 术语介绍

2.1 模型

模型旨在处理和⽣成信息的算法, 通常模仿⼈类的认知功能. 通过从⼤型数据集中学习模式和洞察, 这些模型可以进⾏预测、⽣成⽂本、图像或其他输出, 从⽽增强各个⾏业的各种应⽤. ⽐如ChatGPT、⽂⼼⼀⾔、通义千问等等. 每种模型能⼒不同, 适合的任务也不同.

可以简单理解为模型是⼀个"超级加⼯⼚", 这个⼯⼚是经过特殊训练的, 训练师给它看了海量的例⼦(数据), 并告诉它该怎么做. 通过看这些例⼦, 它⾃⼰摸索出了⼀套规则, 学会了完成某个"特定任务". 模型就是⼀套学到的"规则"或者"模式",它能根据你给的东西, 产⽣你想要的东西

我们给的东西就称之为: 输⼊
模型产出的结果, 就称之为输出

Spring AI 的作⽤ 就是让我们在 Java/Spring 应⽤中, 能⾮常⽅便地:
• 选择不同的 模型
• 构造和发送 输⼊ (Prompt).
• 接收并处理 输出 (AI 的响应)

2.2 LLM

LLM(Large Language Model), ⼤语⾔模型, 也称⼤型语⾔模型, 是⼈⼯智能模型中专⻔处理⽂本的⼀种类型, 属于语⾔模型的范畴. LLM的特点是规模庞⼤, 包含数⼗亿的参数, 在⼤量的⽂本数据上进⾏训练,学习语⾔数据中的复杂模式, 旨在理解和⽣成⼈类语⾔. 可以执⾏⼴泛的任务, 包括⽂本总结、翻译、情感分析等

简单介绍⼏种⽬前主流的⼤语⾔模型 (LLM) .
• GPT-5(OpenAI)
◦ ⽀持 128K⻓上下⽂, 在多轮复杂推理、创意写作中表现突出—》上下文相关承受128K
• DeepSeek R1(深度求索)
◦ 开源, 专注于逻辑推理与数学求解, ⽀持128K⻓上下⽂和多语⾔ (20+语⾔) , 在科技领域表现突出
• Qwen2.5-72B-Instruct (阿⾥巴巴)
◦ 通义千问开源模型家族重要成员, 擅⻓代码⽣成结构化数据 (如JSON) 处理⻆⾊扮演对话等, 尤其适合企业级复杂任务, ⽀持包括中⽂英⽂法语等29种语⾔
• Gemini 2.5 Pro (Google)
◦ 多模态融合标杆, ⽀持图像/代码/⽂本混合输⼊, 适合跨模态任务 (如图⽂⽣成、技术⽂档解析)

多模态意思就是可以处理语言,图像,代码等等

2.3 提⽰词

提⽰词是⽤⼾或系统提供给⼤语⾔模型 (LLM) 的指令或⽂本, ⽤于引导模型⽣成特定输出. 可以理解为模型的输⼊, ⽆论是⼀个单词、⼀个问题、⼀段描述, 还是结构化指令, 都可视为提⽰词.

2.4 词元(Tokens)

词元是⼤语⾔模型 (LLM) 处理⽂本时的最⼩语义单位. ⽤于将⽂本拆解为模型可理解的离散单元

词元通过分词器将⽂本拆分⽽来, 不同模型的分词规则不同, 同⼀个词在不同模型中可能被拆分成不同词元

模型的上下⽂窗⼝ (如128K) 实际是词元数量限制, API收费通常按词元数计费(词元=⾦钱), 词元数越多, 计算耗时和内存占⽤越⾼. 所以在使⽤时, 应尽量避免冗余词(如请, 谢谢)

3. Spring AI 快速⼊⻔

3.1 环境要求

JDK
◦ 最低要求:JDK 17+ (Spring Boot 3.x 强制要求)
◦ 推荐版本:
▪ JDK 21 (2023年 LTS 版本, ⽀持虚拟线程/分代 ZGC, 性能提升显著)
▪ JDK 17 (旧项⽬过渡⽅案)

Spring Boot
◦ 最低要求:Spring Boot 3.2+ (Spring AI 1.0.0 起强制依赖)
◦ 推荐版本:
▪ Spring Boot 3.4.x (最新稳定版, 优化企业级特性)
▪ Spring Boot 3.3.x (部分旧项⽬兼容⽅案)

3.2 DeepSeek介绍

⾃2023年成⽴以来, 凭借前沿技术架构与开源策略迅速崛起, 成为全球AI领域的重要⼒量.

DeepSeek-R 系列 (如 R1) : 专注复杂推理的模型, 数学、代码能⼒突出, ⽀持深度思考模式 (⾼智能推理状态)
DeepSeek-R1于2025年1⽉发布, 并同步开源模型权重, 性能逼近OpenAI o1, 推理成本仅为⼏⼗分之⼀, 登顶全球多国应⽤商店下载榜 , 在美区下载榜上超越了ChatGPT.
• DeepSeek-V 系列(如V2, V3): 通⽤语⾔模型, ⽀持⽂本⽣成、多轮对话等任务, 性能对标 GPT-4Turbo4.
DeepSeek V2模型因在中⽂综合能⼒评测中的出⾊表现, 且以极低的推理成本引发⾏业关注, 被称为"AI界的拼多多".
• DeepSeek-Coder:专注于代码⽣成与补全, ⽀持多语⾔编程 (Python, Java等) , 强化学习优化, 训练成本仅为同类模型的 1/30.

DeepSeek的特点:
• 完全开源:模型代码、权重公开, 兼容 OpenAI API 接⼝
• 极致性价⽐:推理成本仅为同类模型的 1/7 (如对⽐ Llama3-70B) , 训练成本低⾄ 560 万美元 (仅为⾏业平均的 1/3) .

DeepSeek 作为国产⼤模型的标杆产品, 其⾼性能与易⽤性吸引⼤量企业进⾏技术整合(涉及领域覆盖通信, 能源, ⾦融, 汽⻋, 科技等). 我们可以通过 Spring AI 框架快速实现 DeepSeek 的能⼒接⼊, 显著降低AI 集成⻔槛.

3.3 申请DeepSeek API Keys

deepseek官网

在这里插入图片描述
点击右上角API开放平台

deepseeek是免费使用的,但是要用开放平台的话–》需要充值
在这里插入图片描述
充值之前要实名制,然后充值一块钱

学习使用的话,一元就够了

然后是申请APIKEYS
在这里插入图片描述

然后记得在创建的时候,保存APIkeys

然后左边还有接口文档可以看

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

3.4 接入deepseek

在这里插入图片描述
创建一个空父项目

然后是完善依赖

    <packaging>pom</packaging><!-- 完善依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.3</version><relativePath/> <!-- lookup parent from repository --></parent>

然后是创建子模块-spring-ai-demo

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

添加spring依赖

@SpringBootApplication
public class SpringAiApplication {public static void main(String[] args) {SpringApplication.run(SpringAiApplication.class,args);}
}

然后是启动类

spring:application:name: spring-ai-demo

然后是配置application.yml

springai快速上手

springai已经添加到maven仓库—》可以直接添加依赖

<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-SNAPSHOT</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

使用这个就和springboot是一样的,springboot中也有一个bom,帮我们弄好版本信息管理
dependencyManagement这个spring-ai-bom<也是管理好了spring-ai的版本信息

从 1.0.0-M6 开始,Maven Central 中已提供发布版本。无需更改构建文件。

所以版本应该使用1.0.0-M6

    <dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-M6</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

在这里插入图片描述
我们调用deepseek的接口,就要这样,很麻烦,但是springai给我们分装好了

Spring AI ⽣态专⻔为OpenAI及兼容API服务(如DeepSeek)设计了Starter spring-ai-openaispring-boot-starter , ⽤于快速集成⼤语⾔模型能⼒到 Spring Boot 应⽤中.
核⼼价值包括:
• 简化配置:⾃动封装 OpenAI API 的请求/响应等逻辑
• 统⼀接⼝:提供 ChatClient 等标准化接⼝, ⽀持⽆缝切换不同模型提供商
• Spring ⽣态集成:与 Spring Boot 的⾃动配置、依赖注⼊等特性深度整合

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

添加依赖,版本可以不要
因为dependencyManagement引入了springai的bom的版本管理

3.4.1 配置API

spring:ai:openai:api-key:base-url: https://api.deepseek.comchat:options:model: deepseek-chattemperature: 0.7

在这里插入图片描述

baseurl其实就是在这里获取的
在这里插入图片描述
然后model其实出自这里

springai配置项参考

在这里插入图片描述
temperature配置出自这里,可以看出temperature值越高,每次输出的随机性就越高–——》每次就很多不一样

3.4.2 配置接口

在这里插入图片描述
看这个,我们的配置还差messages

@RestController
@RequestMapping("/ds")
public class DeepSeekController {@Autowiredprivate OpenAiChatModel openAiChatModel;@RequestMapping("/chat")public String chat(String message){return openAiChatModel.call(message);}
}

OpenAiChatModel 就来自于我们配置的springai-starter

然后就可以运行了
在这里插入图片描述

在这里插入图片描述

3.5 接入ChatGpt

这一部分不重要,虽然我写了相应博客,但是发布不了

总结

http://www.dtcms.com/a/520221.html

相关文章:

  • 本地局域网邮件管理系统:从原理到实现的完整指南
  • 面向小样本蜂窝网络故障诊断的模型与知识互增强方法
  • 上海网站推广方法河北石家庄属于几线城市
  • 专业购物网站建设哪家好免费找客户网站
  • 受欢迎的网站开发php源码搭建网站流程
  • 第八章 排序——课后习题解练【数据结构(c语言版 第2版)】
  • 如果有大量的key需要设置同一时间过期,一般需要注意什么?
  • 【nvidia-GB200】(2) 18 台 GB200 服务器集群 NCCL All-to-All 性能深度测评:72 张 GPU 多对多通信的效率与潜力
  • MYSQL数据库--基本练习
  • Harbor VS Hadess,开源制品管理工具一文详细对比分析
  • 查找企业信息的网站哪个好广州网站外包
  • 基于3D激光点云的障碍物检测与跟踪---(3)基于匈牙利算法的障碍物跟踪
  • 虚拟化技术实践指南:KVM 与 VMware ESXi 部署全流程
  • 你的地图,你做主!视频汇聚平台EasyCVR解锁多源地图自由,打造监控“全域一张图”
  • Prometheus(四)—— Alertmanager完整部署指南:邮件+钉钉告警全流程落地
  • Fakebook.
  • (11)(2.1.7) FETtec OneWire ESCs
  • 红⿊树实现
  • HTML DOM 简介
  • 介绍东莞网站建设的ppt济南网站建设方案咨询
  • wordpress仿站入门wap网站不流行
  • Andrej Karpathy《Neural Networks: Zero to Hero》:从反向传播到GPT的实战课程
  • 舆情监测的技术内核:Infoseek 如何用分布式架构与多模态技术实现全网捕捉?
  • 影石Insta360发展史:从深圳公寓到全球影像创新标杆
  • 心理学网站的建设网站建设公司怀化
  • 欧姆龙plc内置 EIP 口实现 TCP SOCKET 通讯
  • 渲染相关(Markdown、ByteMD、ReactMarkdown)
  • 安庆信德建设咨询有限公司网站wordpress商城建站
  • esp8266初始化流程
  • SymPy矩阵到NumPy数组转换的深度解析:解决lambdify广播陷阱