轻松入门SpringAI-SpringAI实战入门案例

Spring AI 实战入门案例
(2026年初 · 零基础到能跑完整小应用的路径)

目标:用最短时间让你能自己跑通一个包含以下功能的 Spring AI 小应用:

  • 普通聊天
  • 流式输出(打字机效果)
  • 带记忆的对话
  • 简单 RAG(知识库问答)
  • 结构化输出(JSON → Java 对象)

推荐起点技术栈(2026年1月最友好组合)

Spring Boot 3.3.x / 3.4.x Spring AI 1.0.x ~ 1.1.x (稳定版已发布很久) 模型选择 DeepSeek-V3 / DeepSeek-R1(硅基流动中转)或 Ollama 本地 向量存储 内存(SimpleVectorStore)→ 先体验,后面可换 PGVector/Redis/Chroma

极简起步项目(5分钟能跑起来)

  1. 使用 start.spring.io 创建项目

    • Dependencies:Spring Web + Spring AI OpenAI Starter(后面改配置即可兼容 DeepSeek)
    • Java 21(推荐)/ 17
  2. application.yml 最简配置(硅基流动 + DeepSeek-R1 示例)

spring:ai:openai:base-url:https://api.siliconflow.cn/v1# 硅基流动(性价比最高)api-key:sk-你的硅基流动key(新用户送很多免费token)chat:options:model:deepseek-ai/DeepSeek-R1# 强推理# model: deepseek-ai/DeepSeek-V3 # 更万能/快temperature:0.7max-tokens:4096

综合入门案例 - 单文件 Controller(复制粘贴就能跑)

@RestController@RequestMapping("/ai/easy")@RequiredArgsConstructorpublicclassEasyAiController{privatefinalChatClientchatClient;privatefinalEmbeddingModelembeddingModel;// 用于 RAG// 内存向量存储(最简单,启动即有)privatefinalVectorStorevectorStore=newSimpleVectorStore(embeddingModel);// 启动时自动加载一点知识(模拟知识库)@PostConstructpublicvoidloadSomeKnowledge(){vardocs=List.of("Spring AI 是 Spring 官方出品的大模型集成框架,目标让 Java 开发者用最熟悉的方式玩 AI。","ChatClient 是核心高层抽象,像 RestClient 一样好用。","目前最受欢迎的国内模型组合:DeepSeek-R1(推理强)+ DeepSeek-V3(综合最强)。","2025年下半年 Spring AI 正式 1.0,2026年已经非常稳定成熟。");vectorStore.add(docs.stream().map(content->newDocument(content,Map.of("type","spring-ai-intro"))).toList());}// 1. 最基础聊天@GetMapping("/chat")publicStringchat(@RequestParamStringq){returnchatClient.prompt().user(q).call().content();}// 2. 流式输出(前端打字机神器)@GetMapping(value="/stream",produces=MediaType.TEXT_EVENT_STREAM_VALUE)publicFlux<String>stream(@RequestParamStringq){returnchatClient.prompt().user(q).stream().content();}// 3. 带记忆 + 系统角色(最实用写法)privatefinalChatMemorymemory=newMessageWindowChatMemory(8);// 保留最近8轮@GetMapping("/memory")publicStringmemoryChat(@RequestParamStringsession,// 区分不同会话@RequestParamStringq){returnchatClient.prompt().system(""" 你是一个说话很幽默、爱用表情、非常接地气的「资深Java老鸟」 尽量用 markdown 排版,喜欢用生活化比喻 """).user(q).advisors(MessageChatMemoryAdvisor.builder().chatMemory(memory).sessionId(session)// 重要:按会话隔离记忆.build()).call().content();}// 4. 简单 RAG(基于上面加载的知识库)@GetMapping("/rag")publicStringrag(@RequestParamStringquestion){// 检索最相似的3段知识varresults=vectorStore.similaritySearch(SearchRequest.query(question).withTopK(3));Stringcontext=results.stream().map(Document::getContent).collect(Collectors.joining("\n\n---\n\n"));returnchatClient.prompt().system("你现在是基于以下文档知识回答问题的专家助手:\n\n"+context+"\n\n只用给出的信息回答,不要编造。如果不知道就说不知道。").user(question).call().content();}// 5. 结构化输出(最推荐的生产用法之一)publicrecordJokeResponse(Stringsetup,Stringpunchline,Stringemoji,Integerdifficulty// 1~10){}@GetMapping("/joke")publicJokeResponsestructuredJoke(@RequestParam(defaultValue="程序员")Stringtheme){varconverter=newBeanOutputConverter<>(JokeResponse.class);StringjsonSchema=converter.jsonSchema;Stringprompt=""" 请讲一个关于「%s」的笑话。 必须严格按照以下 JSON Schema 输出,不要多一个字: %s """.formatted(theme,jsonSchema);Stringjson=chatClient.prompt(prompt).call().content();returnconverter.convert(json);}}

快速进阶方向建议(按实用度排序)

顺序功能大概难度建议练习项目预计耗时
1Function Calling★★☆写一个「查天气+查汇率+生成周报」的工具助手4~8h
2更好的 RAG★★★用 PGVector/Redis + 上传 pdf/docx 问答8~15h
3Agent / ReAct★★★★写一个「程序员小助手」能自己思考调用工具15~30h+
4多模态(图片理解)★★★☆接入通义千问/智谱GLM-4V 做图片描述/OCR6~12h
5语音输入输出★★★★Whisper + TTS 语音聊天机器人20h+

最快上手口诀(2026版)

先跑通ChatClient + 流式 + 记忆→ 再加简单 RAG→ 再学结构化输出→ 再玩Function Calling→ 最后冲Agent

需要我帮你把上面某个功能再展开成更详细的完整小项目(带依赖、配置、测试页面)吗?
直接说你最想先做哪一块~ 😄

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

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

相关文章

强烈安利10个AI论文平台,助你轻松搞定本科生论文!

强烈安利10个AI论文平台&#xff0c;助你轻松搞定本科生论文&#xff01; AI 工具如何帮你轻松应对论文写作难题 对于本科生来说&#xff0c;撰写论文是一项既挑战又重要的任务。面对繁重的写作压力、复杂的格式要求以及对学术规范的不熟悉&#xff0c;很多同学都感到无从下手。…

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架 - MKT

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架 - MKT

Splat-Nav:首个基于 3D 高斯溅射地图的安全实时导航框架

StretchSense获230万美元融资,推动XR训练手套全球扩张

StretchSense获230万美元融资&#xff0c;推动XR训练手套全球扩张 可穿戴技术公司StretchSense已成功筹集230万美元资金&#xff0c;本轮融资由PXN Ventures领投&#xff0c;某机构提供支持。该公司目前已通过三轮外部融资筹集了总计近2000万美元。 StretchSense成立于2012年&a…

使用ibd2sql恢复mysql环境被drop/truncate的表【转】

导读 ibd2sql v2.2版本新增了恢复drop和truncate的表的功能. 这么叼? 我来瞅瞅呢 原理 虽然之前讲过原理, 但还是来简单回顾回顾:DROP TABLE是delete和insert系统表, 那么被删表之前的元数据信息就能找到, 虽然数据文…

Python+Vue的基于协同过滤算法的图书馆管理系统 django Pycharm flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 …

从Hadoop到Spark:大数据隐私保护技术演进史

从Hadoop到Spark:大数据隐私保护技术演进史 关键词:大数据隐私保护、Hadoop、Spark、数据脱敏、差分隐私、同态加密、访问控制 摘要:本文深入探讨了大数据处理框架从Hadoop到Spark演进过程中隐私保护技术的发展历程。文章首先介绍大数据生态系统的演变背景,然后详细分析各阶…

【图像机密】基于压缩感知中密钥控制测量矩阵的新型图像压缩-加密混合算法研究附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

Python+Vue的HPV疫苗接种管理系统的设计与实现 django Pycharm flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 …

深入解析:AIOps / AI-Network / 智能运维:迈向自治网络的核心引擎

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

【毕业设计】基于springboot+微信小程序的服装商城的设计与实现小程序(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

嵌入式 Modbus 实战,从协议原理到 STM32 RTU 通信落地

在工业自动化、物联网设备通信中,Modbus 协议因 “简单可靠、兼容性强” 成为事实标准 —— 它无需复杂硬件支持,仅通过串口(RS485/RS232)即可实现设备间数据交互,广泛应用于传感器、PLC、单片机等嵌入式设备。本…

嵌入式模型轻量化实战,从技术原理到 STM32 部署落地

在单片机、智能传感器等嵌入式设备上部署 AI 模型,核心矛盾是 “模型庞大” 与 “资源有限” 的冲突 —— 多数嵌入式设备仅有几十 KB 内存、几百 KB 闪存,且无独立 GPU。模型轻量化通过 “精简结构、降低精度、传承…

吐血推荐9个AI论文工具,助本科生轻松写毕业论文!

吐血推荐9个AI论文工具&#xff0c;助本科生轻松写毕业论文&#xff01; AI工具让论文写作不再难 在如今的学术环境中&#xff0c;越来越多的学生开始借助AI工具来提升论文写作的效率和质量。尤其是在面对毕业论文时&#xff0c;时间紧迫、内容繁杂&#xff0c;很多同学都感到无…

详细介绍:Axure快速精通指南:从入门到高保真原型设计

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

《实时渲染》第1章-绪论-1.1内容概览

实时渲染是通过图形硬件快速生成交互式3D图像的技术,强调高帧率、低延迟与视觉真实感。实时渲染 1. 概述 实时渲染是指在计算机上快速渲染图像。它是计算机图形中交互性最高的领域。图像出现在屏幕上,观看者做出动作…

15.Slam算法的环境搭建与测试

一、前期准备 1. 软件 / 镜像下载 虚拟机软件&#xff1a;VMware Workstation Pro&#xff08;官网下载试用版即可&#xff0c;或用免费的 VirtualBox&#xff09;&#xff1b;Ubuntu 镜像&#xff1a;Ubuntu 20.04 LTS&#xff08;推荐&#xff0c;ROS Noetic 适配性最好&am…

AerialMegaDepth:学习空中-地面重建和视图合成 - MKT

AerialMegaDepth:学习空中-地面重建和视图合成AerialMegaDepth:学习空中-地面重建和视图合成https://github.com/kvuong2711/aerial-megadepth

2026年PVC地板厂家口碑红榜,无醛环保型产品实力品牌甄选 - 品牌鉴赏师

引言在当今建筑装饰领域,PVC地板以其环保、耐用、美观等诸多优势,受到了越来越多消费者的青睐。然而,市场上PVC地板厂家众多,产品质量参差不齐,如何选择一家可靠的厂家成为了消费者面临的难题。为了帮助消费者做出…

线段树多懒标记

最近在思考:如何对一个序列维护带有两种区间修改的多查询问题。这样不可避免地需要对两种修改操作分别维护一种懒标记。但显然,不能将两种懒标记独立看待,因为对于两种操作,先后顺序不同会造成不同的影响。因此如何…