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

第1章:初识 Spring AI-Java 开发者的 AI 新纪元

开发过程中遇见不会的怎么办?
 

👉开发喵AI 👈

已集成 GPT-5Claude3.7Gemini 御三家

致力于解决用户魔法上网、答案高要求、内容高标准

已内置 100余种 命令与角色

解决问题的方式有很多种,请试试 开发喵AI 给你的答案🙇🙇‍♀️

后台发送开发喵AI 了解详情 🔎

📢大家都在用的AI工具,在等什么,赶快上车!📌 本章目标:建立对 Spring AI 的整体认知,理解它为什么重要,并快速搭建第一个 AI 应用。

返回目录

1.1 什么是 Spring AI?

你可能已经听说过 LangChain(Python 生态中最流行的 AI 应用开发框架),它让开发者可以轻松地将大语言模型(LLM)与数据、工具和业务逻辑结合起来,构建出强大的 AI 应用。而 Spring AI,正是 Spring 团队为 Java 开发者打造的“LangChain for Java”。

它不是简单地把 LangChain 翻译成 Java,而是基于 Spring 生态(尤其是 Spring Boot)重新设计的一套企业级 AI 集成框架,目标是:

✅ 让 Java 开发者也能像 Python 开发者一样,快速、安全、可维护地构建 AI 增强的应用程序。

1.2 为什么 Java 开发者也需要玩转 AI?

大多数人都觉得,在AI应用开发方面,用Python是最佳的选择,甚至很多 Java 工程师可能会觉得:“AI 是 Python 的天下,我用不到。”

但现实是:

  • 90% 以上的企业核心系统是用 Java(Spring)构建的(ERP、CRM、金融系统等)。
  • 这些系统积累了海量的业务数据和流程。
  • 如果能让这些系统“变聪明”,比如:自动生成报表、智能客服问答、自动化审批、文档摘要提取,那将极大提升企业效率。

而 Spring AI 正是连接 企业级 Java 系统前沿 AI 模型 的桥梁。

1.3 Spring AI 与 LangChain 的异同

LangChain 作为 Python 生态的 “AI 开发瑞士军刀”,以模块化、高灵活性著称,但 Spring AI 在企业级场景中展现出独特价值,核心差异如下:

对比维度

Spring AI 优势体现

LangChain 特点

技术栈适配性

原生支持 Java 技术栈,API 设计符合 Spring 编程习惯(注解、依赖注入),可直接复用 Java 成熟库(如 JDBC、Apache POI),无需跨语言协作。

基于 Python 构建,依赖 Pandas、Matplotlib 等 Python 生态工具,Java 团队需额外维护 Python 服务。

生态集成

与 Spring Boot、Spring Cloud 深度融合,可将 AI 能力直接嵌入 CRM、ERP 等现有系统,避免系统重构,让老系统迅速具备AI 能力

需通过 HTTP 接口与 Java 系统对接,增加跨服务调用复杂度和故障点。

部署与运维

支持打包为 JAR 包或 GraalVM 原生镜像,无缝对接 K8s、Serverless 等企业级环境,与现有 Spring 应用运维体系一致。

依赖 Python 虚拟环境,在企业级运维中兼容性较弱,跨环境部署易出现依赖冲突。

学习与迁移成本

Java 开发者无需学习新范式,可复用 Spring 技术积累;模型切换仅需修改配置,代码复用率高。

需掌握 Python 及 LangChain 特有概念(如 Chain、Agent),跨语言团队沟通成本高。

💡 简单说:LangChain 更适合研究和原型,Spring AI 更适合生产环境。

1.4 开发前准备工作

1.4.1 大模型选型

Spring AI 通过统一接口支持多厂商模型,无需修改代码即可切换,结合 2025 年最新生态支持,推荐选型如下:

模型类型

代表产品

适用场景

优势说明

海外主流模型

OpenAI GPT-3.5/4/4o/5

通用对话、代码生成

生态成熟,支持复杂 Prompt 工程,适合原型验证

Anthropic Claude 3

长文本处理(10 万 + tokens)

上下文窗口大,金融法律文档分析场景适配

国产开源模型

阿里通义千问 QwQ-32B

企业级部署、成本敏感场景

国家超算平台提供免费 100 万 tokens 试用,320 亿参数量性能接近大模型

DeepSeek Chat

代码生成、数学推理

原生支持 Spring AI Starter 依赖,国内访问延迟低

本地部署模型

Ollama + Llama 3

隐私敏感、离线场景

支持 Docker 部署,适配嵌入式向量数据库查询

选型建议:测试阶段优先使用通义千问 QwQ-32B(免费额度),生产环境根据合规要求选择阿里云 / OpenAI 企业版。

当然可选的大模型还有很多。海外模型因为一些原因,我们可能无法直接使用,但AI喵已经为大家清除了这些障碍,请扫描文章最下方二维码。

1.4.2 阿里云百炼

本系列教程将使用阿里百炼平台提供的大模型,需要您到阿里百炼平台注册账号。注册地址: https://bailian.console.aliyun.com/

注册完毕登录控制台,左侧秘钥管理中可以创建 API-KEY, 这样我们就可以在应用中使用了。

1.4.3 本地项目搭建

  • 基础环境要求

组件

最低版本

推荐版本

说明

JDK

17

21(LTS)

Spring AI 1.0.0 + 需 JDK 17+,JDK 21 支持虚拟线程优化 AI 任务调度

Spring Boot

3.2.x

3.4.5

需与 Spring AI 版本匹配(如 Spring AI 1.0.2 适配 Spring Boot 3.4.5)

构建工具

Maven 3.6+ / Gradle 8.0+

Maven 3.9.6

推荐 Maven 管理依赖,通过 BOM 统一版本控制

开发工具

IntelliJ IDEA 2023+

2024.2

安装 Spring Assistant 插件快速创建项目

可选依赖

Docker 20.10+

25.0.0

用于本地部署向量数据库(如 Milvus)或 Ollama 模型

  • 项目说明

本系列教程采用maven父子项目,每个章节作为一个子项目(模块),并放到 github上。所有版本将采用基础环境要求的推荐版本。

 

<!-- 
这里只给出重要部分,完整文件请移步
https://github.com/kaiwill/kaifamiao/blob/master/pom.xml
-->
<properties>...<java.version>21</java.version><!-- Spring AI --><spring-ai.version>1.0.2</spring-ai.version><!-- Spring Boot --><spring-boot.version>3.4.5</spring-boot.version><!--阿里百炼提供了SDK,为了方便这里引入了 Alibaba Cloud AI --><spring-ai-alibaba.version>1.0.0.3</spring-ai-alibaba.version><fastjson.version>2.0.51</fastjson.version>...
</properties>
...
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>${fastjson.version}</version></dependency><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter-dashscope</artifactId><version>${spring-ai-alibaba.version}</version></dependency></dependencies>
</dependencyManagement>
...
<!--  完整文件请查看  -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 模型依赖:根据选型替换(如openai/deepseek/qwq) --><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter-dashscope</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
</dependencies>

本章节将会在 chapter01 中配置Spring AI基础环境,选择的是 阿里云百炼平台。

  • 获取API Key,参考文档 https://bailian.console.aliyun.com/?tab=api#/api
  • 测试环境中,我们可以将 API Key 配置到环境变量中。参考文档:https://bailian.console.aliyun.com/?tab=api#/api/?type=model&url=2803795
  • 这里选择用阿里百炼提供的SDK,所以引入了 spring-ai-alibaba-starter-dashscope这个starter

,如果使用spring-ai-starter-model-openai则需要配置 base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 即可,因为spring-ai-starter-model-openai默认访问的是 openai

spring:ai:dashscope:api-key: ${AI_BAI_LIAN_API_KEY} # 必填,在操作系统环境变量中设置这个变量后,重启IDEA才能生效。因为IDEA启动的时候会缓存这个变量chat:options:model: qwen-plus# 这个值0~1,值越大代表生成的结果随机性越强。如果是一个聊天,这个值可以大一点。如果是一些严谨的规划,则这个值可以设置小一些temperature: 0.7
// chapter01/src/main/java/com/kaifamiao/chapter01/Application.java
@SpringBootApplication
@Slf4j
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

如果项目能正常启动,那么说明基本环境已经搭建好了。

下一章预告:第2章《核心 API 入门 —— 使用 ChatClient 与大模型对话》

在下一章中,我们将深入 ChatClient API,学习:

  • 如何发送结构化消息(User/System/Assistant)
  • 如何使用流式响应(Streaming)实现“打字机效果”
  • 如何使用 PromptTemplate 构建动态提示词
  • 实战:构建一个“AI 写周报”功能

准备好了吗?我们下一章继续!🚀

源代码地址:https://github.com/kaiwill/kaifamiao

👉开发喵AI工具 👈

 

 

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

相关文章:

  • 北京餐饮品牌设计公司保定seo建站
  • 2025年SEVE SCI2区,具有局部和全局参数自适应差分进化算法,深度解析+性能实测
  • 32位ubuntu14.0.4安装chrome
  • geo Counts 数据 ,机器学习 模型的外部验证 ROC外部验证数据处理流程
  • 深圳网站建设制作企业dw做网站背景图片设置
  • h5生成济南关键词优化费用情况
  • sae 网站备案信息运营主要做什么工作
  • 谈谈如何建设企业人力资源网站广州南沙建设网站
  • 10.4 双指针
  • 关于举办中国国际大学生创新大赛(2025)总决赛现场比赛通知
  • 山西商城网站建设网络推广网址
  • 【苍穹外卖日记】Day1-环境搭建与apifox文档建立
  • 宁波建站模板厂家wordpress文字logo
  • 【Qt】事件
  • 数字人民币钱包抉择:匿名自由与实名安全的法律风险评估
  • 做网站需要用到什么北京养老网站开发
  • 专门做电商的网站有哪些广告推广策略
  • Java EE初阶启程记06---synchronized关键字
  • QT(c++)开发自学笔记:1.串口
  • 最小外接矩形2显示四条边缘
  • 什么是网站建设与维护潘嘉严个人网站
  • 天津做网站哪家好如何申请域名后缀
  • MCP(trae)+ wireshark-提高干活效率
  • 机器视觉3D检测中,.ply(Polygon File Format) 3D点云格式
  • 如何网站优化排名做兼职比较正规的网站
  • 兰亭妙微高端网站设计案例:品牌官网如何做到美学与转化并重
  • 网站主机提供商:选择与您业务相匹配的托管服务
  • Linux学习笔记--insmod 命令
  • 做树状图的网站html全屏网站
  • 网站页面设计师如何编辑网站模板