一文掌握 Spring AI:集成主流大模型的完整方案与思考

一文掌握 Spring AI:集成主流大模型的完整方案与思考

Spring AI 是 Spring 生态中一个新兴的框架,旨在简化 Java/Spring Boot 应用与主流大语言模型(Large Language Models, LLM)的集成。它提供了一套统一的抽象接口,让开发者无需纠结于不同 AI 提供商的 API 差异,就能轻松接入 OpenAI、Anthropic (Claude)、Hugging Face、Ollama 等模型。Spring AI 于 2023 年发布,2025-2026 年已进入成熟阶段,支持多模态(文本、图像、语音)和嵌入式 AI 能力,特别适合企业级应用如聊天机器人、智能推荐、内容生成等。

本文基于 Spring Boot 3.x 和 Spring AI 1.x(2025 年最新稳定版),从零到一讲解集成方案,包括安装、配置、代码实战和思考。假设你有 Spring Boot 基础,代码可在 IntelliJ IDEA 或 VS Code 中运行。所有示例使用 Maven 构建。

第一步:Spring AI 的核心概念与优势

核心组件

  • AiClient:统一接口,用于调用 LLM 生成响应。
  • EmbeddingClient:用于文本嵌入(向量表示),支持搜索/推荐。
  • PromptTemplate:模板化提示词,支持变量注入。
  • ChatMemory:会话内存管理,支持上下文保持。
  • Multi-modal:2025+ 新增,支持图像/语音输入(e.g., GPT-4o)。

优势(为什么用 Spring AI 而不是直接调用 API?):

  • 统一抽象:换模型只需改配置,不改代码(e.g., 从 OpenAI 切换到 Hugging Face)。
  • Spring 生态集成:无缝结合 Spring Boot、Security、Data 等。
  • 生产级特性:内置重试、限流、监控、异步支持。
  • 开源免费:基于 Apache License,无需额外付费。
  • 2025-2026 趋势:支持边缘部署(e.g., Ollama 本地模型),降低云依赖;集成 RAG(Retrieval-Augmented Generation)增强知识检索。

局限:计算密集型任务仍需外部 GPU 支持;对自定义模型训练支持有限(需结合 Hugging Face Transformers)。

第二步:安装与项目搭建
  1. 创建 Spring Boot 项目

    • 使用 Spring Initializr(https://start.spring.io):选择 Spring Boot 3.3.x,添加依赖:Web、Lombok。
    • 下载并导入 IDE。
  2. 添加 Spring AI 依赖(pom.xml):

    <dependencies><!-- Spring AI 核心 --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-spring-boot-starter</artifactId><version>1.0.0</version><!-- 查官网最新版 --></dependency><!-- OpenAI 支持 --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0</version></dependency><!-- Anthropic (Claude) 支持 --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-anthropic-spring-boot-starter</artifactId><version>1.0.0</version></dependency><!-- Hugging Face 支持(需本地或远程模型) --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-transformers-spring-boot-starter</artifactId><version>1.0.0</version></dependency></dependencies>
  3. 配置 API Key(application.yml,生产用环境变量避免泄露):

    spring:ai:openai:api-key:sk-xxx# 从 OpenAI 官网获取base-url:https://api.openai.com/v1# 可自定义代理anthropic:api-key:sk-ant-xxx# 从 Anthropic 官网获取huggingface:model:meta-llama/Llama-2-7b-chat-hf# Hugging Face 模型 IDaccess-token:hf_xxx# Hugging Face Token
  4. 启动类(启用 Spring AI):

    @SpringBootApplicationpublicclassAiDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(AiDemoApplication.class,args);}}
第三步:集成主流大模型实战

Spring AI 通过ChatClient接口统一调用不同模型。以下示例展示文本生成、嵌入和多模态。

3.1 集成 OpenAI(GPT-4o 等)
@ServicepublicclassOpenAiService{privatefinalChatClientchatClient;publicOpenAiService(ChatClient.BuilderchatClientBuilder){this.chatClient=chatClientBuilder.build();// 自动注入 OpenAI 配置}publicStringgenerateResponse(Stringprompt){PromptaiPrompt=newPrompt(newUserMessage(prompt));ChatResponseresponse=chatClient.call(aiPrompt);returnresponse.getResult().getOutput().getContent();}// 示例:生成代码publicStringgenerateCode(Stringdescription){Stringprompt="请用 Python 写一个函数:"+description;returngenerateResponse(prompt);}}// Controller 示例@RestControllerpublicclassAiController{@AutowiredprivateOpenAiServiceopenAiService;@GetMapping("/generate")publicStringgenerate(@RequestParamStringquery){returnopenAiService.generateResponse(query);}}

测试:访问/generate?query=解释 Spring AI,返回 AI 生成的解释。

3.2 集成 Anthropic(Claude 系列)

配置类似 OpenAI,只需换依赖和 yml 中的 api-key。代码几乎相同,因为 Spring AI 抽象统一:

// 在 yml 中配置 anthropic.api-key 后,ChatClient 会自动切换(或指定 provider)publicStringclaudeResponse(Stringprompt){// 如需指定模型:chatClientBuilder.defaultOptions(AnthropicChatOptions.builder().withModel("claude-3.5-sonnet").build())returngenerateResponse(prompt);// 复用以上方法}

优势:Claude 在代码生成和逻辑推理上往往优于 GPT,尤其长上下文处理。

3.3 集成 Hugging Face(开源模型,如 Llama、Mistral)

Hugging Face 支持本地部署或远程 API。需安装 Transformers 库(额外依赖)。

@ServicepublicclassHfService{privatefinalEmbeddingClientembeddingClient;// 用于向量嵌入publicHfService(EmbeddingClientembeddingClient){this.embeddingClient=embeddingClient;// 自动注入 Hugging Face 配置}// 嵌入示例(用于搜索/推荐)publicList<Double>embedText(Stringtext){EmbeddingResponseresponse=embeddingClient.embed(text);returnresponse.getResult().getOutput();}// 生成文本(需配置生成模型)publicStringgenerateWithHf(Stringprompt){// 类似 ChatClient,但 Hugging Face 更偏向嵌入和自定义模型return"Generated by Hugging Face: "+prompt;// 简化示例,实际用 TransformersOnnxEmbeddingClient}}

本地运行:下载模型(e.g.,huggingface-cli download meta-llama/Llama-2-7b-chat-hf),配置spring.ai.transformers.onnx.model-uri为本地路径。

优势:免费、隐私保护;2025 年开源模型性能已接近闭源前沿。

3.4 多模型集成与切换

在 Spring AI 中,通过@ConditionalOnProperty或动态配置切换模型:

@Bean@ConditionalOnProperty(name="spring.ai.provider",havingValue="openai")publicChatClientopenAiChatClient(){// 配置 OpenAI}@Bean@ConditionalOnProperty(name="spring.ai.provider",havingValue="anthropic")publicChatClientanthropicChatClient(){// 配置 Anthropic}
第四步:高级应用与优化
  1. RAG 集成:结合向量数据库(如 Pinecone 或本地 Faiss)增强知识检索。

    // 示例:嵌入 + 检索List<Double>queryEmbedding=embeddingClient.embed("查询文本");// 用向量搜索数据库,返回相关文档,再注入 Prompt
  2. 异步 & 流式响应:用StreamingChatClient支持实时输出(e.g., 聊天界面)。

    StreamingChatResponseresponse=streamingChatClient.stream(prompt);response.getResults().forEach(System.out::println);// 流式打印
  3. 监控与限流:集成 Micrometer/Prometheus 监控调用;用 Resilience4J 限流/重试。

  4. 多模态:OpenAI 支持图像输入(ImageMessage)。

    Promptprompt=newPrompt(List.of(newImageMessage("描述图像","image_url")));
第五步:思考与 2025-2026 趋势

优势思考

  • Spring AI 让 Java 开发者快速进入 AI 时代,避免从零学 Python/ML 框架。
  • 与 Spring Cloud 集成,实现分布式 AI 服务(e.g., 微服务调用 LLM)。
  • 成本控制:开源模型(如 Hugging Face)降低依赖云厂商。

挑战与风险

  • 隐私与合规:API 调用泄露数据风险,用本地模型(Ollama)解决。
  • 性能瓶颈:LLM 调用延迟高,用缓存(Redis)+ 异步优化。
  • 模型选择:OpenAI 强于通用,Claude 强于代码,Hugging Face 强于自定义。
  • 未来趋势(2025-2026):Spring AI 将深化 Agent 支持(多步推理)、边缘 AI(手机/设备部署)、联邦学习(隐私保护)。

学习建议:从官方文档(https://spring.io/projects/spring-ai)起步,实践一个聊天机器人项目。生产前评估模型偏置/幻觉风险。

这份指南覆盖了从入门到落地的核心。如果你想看完整代码仓库或特定模型的扩展示例,直接告诉我,我再细化!

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

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

相关文章

入门篇--人工智能发展史-10-从MCP协议到AI Agent:从静态知识到动态智能,智能体的全面演进之路

入门篇 | 人工智能发展史 - 第10讲 从 MCP 协议到 AI Agent&#xff1a;从静态知识到动态智能&#xff0c;智能体的全面演进之路 这一讲的主题跨越了大约 1970 年代到 2025–2026 年的半个多世纪&#xff0c;但核心线索非常清晰&#xff1a; 从「人类把知识写进机器」 → 到「…

2026主流GEO服务商全景图谱,GEO机制深度解析与服务商选型权威指南

随着生成式AI全面渗透用户信息获取路径,AI搜索平台正成为To B企业不可忽视的新流量入口。据艾瑞咨询2026年初数据显示,国内主流AI对话平台(DeepSeek、豆包、Kimi、腾讯元宝等)月活跃用户总规模已突破5亿,其中企业…

2026年山东短视频制作服务商权威推荐榜单:短视频策划 /短视频运营 /短视频引流/ 短视频文案 /短视频脚本源头服务商精选

在数字化转型浪潮中,短视频已成为工业制造企业与B2B品牌实现营销破局、精准获客的核心工具。一份专业调研显示,超过80% 的制造业企业已认识到线上内容营销的重要性,但其中大部分机构的宣传内容仍停留在简单的“数据…

Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下

最低频率最省电最省钱 三部曲&#xff1a; 1 sudo apt install -y cpufrequtils linux-tools-common linux-tools-generic 2 sudo cpupower frequency-set -g powersave 3 cpufreq-info 性能对比 https://blog.csdn.net/ZhangRelay/article/details/157299108 最高性…

linux下如何通过与AI对话设置thinkpad电池充电阈值

结论acpi配置/etc/tlp.confsudo gedit /etc/tlp.conf修改前&#xff1a;修改参数&#xff1a;保存并使配置生效&#xff1a;50 80全部&#xff1a;ros2mobile:~$ sudo tlp-stat -b [sudo] password for ros2: --- TLP 1.6.1 -------------------------------------------- Bat…

如何更环保(更省钱)的使用各类电子耗材/消耗品/易损件~电池为例

信息 ros2mobile:~$ acpi -V Battery 0: Not charging, 79% Battery 0: design capacity 3609 mAh, last full capacity 1461 mAh 40% Adapter 0: on-line Thermal 0: ok, 34.0 degrees C Thermal 0: trip point 0 switches to mode critical at temperature 97.0 degrees C C…

深入解析:STM32——按钮实验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

论文答辩时,评审组导师一旦开始问问题,通常会问哪些问题?

先说一句你可能不爱听、但非常重要的话&#xff1a;评审组导师一问问题&#xff0c; 其实已经在心里对你的论文有了一个初步判断。接下来的提问&#xff0c; 不是临时发挥&#xff0c; 而是围绕几个固定维度&#xff0c;快速确认三件事&#xff1a;这篇论文是不是你真正理解的研…

多线程核心知识

多线程核心知识 1. 线程的创建方式继承Thread方法:继承 java.lang.Thread 类,重写 run() 方法。 启动:创建子类实例,调用其 start() 方法。 特点:简单,但Java单继承限制了扩展性。class MyThread extends Thread…

2025年有实力的户外led大屏广告公司承包商找哪家,公交广告/地铁广告/广播电台广告,户外led大屏广告公司排行

随着城市数字化进程加速,户外LED大屏广告凭借高曝光、强互动、精准触达的特性,成为品牌抢占消费者心智的核心战场。据行业数据显示,2024年全国户外LED广告市场规模突破1200亿元,其中一线及新一线城市占比超60%,但…

一个月内面了30家公司,薪资从18K变成28K,真行啊····

工作3年&#xff0c;换了好几份工作&#xff08;行业流行性大&#xff09;&#xff0c;每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心&#xff0c;而且特别不喜欢请假面试&#xff0c;对自己负责也对公司负责。 但是这次没想到市场环境非常不好&#xff0c;…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的&#xff0c;这里我收集整理了185道高频面试题&#xff0c;希望对在找工作或者准备跳槽的各位小伙伴有所帮助&#xff01; 一. 测试基础 1.如何制定测试计划 参考答案&#xff1a; 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

2026年深圳企业邮箱注册公司推荐:深圳市聚诚在线科技有限公司,企业邮箱/企业域名/网易企业邮箱/企业邮箱管理公司精选

在全球电子通信技术日新月异的背景下,企业邮箱的效能边界不断拓展,其技术架构已从单一邮件服务器发展为整合云存储、协同办公与安全审计的综合性通信中台。 一份行业报告显示,企业邮箱的安全防护等级提升直接作用于…

嵌入式 C++ 高性能流式架构的设计

嵌入式 C 高性能流式架构的设计 摘要&#xff1a;在算力受限的嵌入式 SoC 平台上&#xff0c;高带宽传感器数据的实时处理是一个挑战。传统的基于多线程与操作系统原语的架构&#xff0c;往往受限于调度抖动、内存拷贝开销及锁竞争。 本文提出了一种平台无关的**“流式架构&am…

河南鑫味源之源:匠心调味,香飘万家 docx

河南鑫味源之源:匠心调味,香飘万家河南鑫味源之源:匠心调味,香飘万家在被誉为 “中国最有香味的城市” 的河南驻马店,调味品产业高地蓬勃崛起。这里孕育了王守义十三香等国民品牌,更诞生了坚守匠心的新锐企业 —…

主流GEO服务商能力全景图谱,垂直行业GEO解决方案商

随着用户信息获取习惯从传统搜索引擎向DeepSeek、豆包、Kimi等生成式AI平台迁移,AI问答已成为To B企业不可忽视的新流量入口。当前主流AI平台虽未开放官方广告系统,但通过生成式引擎优化(GEO)技术,企业可使其品牌…

2026高中辅导大揭秘:靠谱机构全解析

2026高中辅导大揭秘:靠谱机构全解析一、高中辅导的重要性 高中,无疑是学生求学生涯中至关重要的阶段。在这个时期,学业负担陡然加重,九门科目齐头并进,每一门都不容有失 ,对学生的综合能力和时间管理能力提出了巨…

河南鑫味源之源调味品:豫南味魂,调出百味鲜香

河南鑫味源之源调味品:豫南味魂,调出百味鲜香引言:豫南沃土崛起河南调味品新锐力量在 “中原粮仓”“芝麻王国” 河南驻马店,河南鑫味源之源调味品有限公司于 2018 年 7 月 10 日成立,注册资金 398 万元。企业深耕…

2026年湖北短视频拍摄制作服务商权威推荐榜:短视频运营 /短视频拍摄 /短视频拍摄运营 /短视频运营方案 /短视频拍摄合作 /短视频运营技巧服务商精选

黄石市商务局公布的一份官方名单中,从电商产品设计到短视频拍摄制作,首批15家精选企业覆盖了产业从内容到渠道的全链条。 在短视频主导的营销时代,超过85%的互联网用户通过短视频获取信息。如何选择一家既能把握创意…

河南鑫味源之源调味品:大盘鸡料领衔 豫味调味新标杆

河南鑫味源之源调味品:大盘鸡料领衔 豫味调味新标杆在 “芝麻之乡” 河南驻马店,河南鑫味源之源调味品有限公司以 398 万元注册资金为基石,自 2018 年 7 月 10 日成立以来,便扎根泌阳这片农产品沃土,成为河南调味…