news 2026/4/16 12:28:20

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
轻松入门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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/5 0:41:38

导师严选2026继续教育TOP10一键生成论文工具测评

导师严选2026继续教育TOP10一键生成论文工具测评 学术写作工具测评&#xff1a;2026年继续教育用户如何高效选型 在继续教育领域&#xff0c;论文撰写已成为许多学员必须面对的挑战。从选题构思到文献整理&#xff0c;再到内容创作与格式规范&#xff0c;每一步都可能成为阻碍进…

作者头像 李华
网站建设 2026/4/16 10:41:16

GPU 单挑 CPU:从矩阵乘法到并行计算的入门

为什么神经网络离不开 GPU&#xff1f; 我们已经在现实中见过太多神经网络的应用了&#xff1a;图像识别、语音转文字、大模型推理。这些看起来“很智能”的任务&#xff0c;底层其实并不神秘。 本质上&#xff0c;它们都是一连串的矩阵乘法。 前一次运算的输出&#xff0c;…

作者头像 李华
网站建设 2026/4/13 11:35:38

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

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

作者头像 李华
网站建设 2026/4/8 5:04:09

Python+Vue的 美食分享论坛的设计和实现 django Pycharm flask

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

作者头像 李华
网站建设 2026/4/8 16:43:19

提示工程质量保证体系:如何保证Prompt的一致性?

提示工程质量保证&#xff1a;构建Prompt一致性的系统方法论 元数据框架 标题&#xff1a;提示工程质量保证&#xff1a;构建Prompt一致性的系统方法论 关键词&#xff1a;提示工程, Prompt一致性, 质量保证体系, 语义对齐, 模型输出稳定性, 反馈迭代, 大模型应用 摘要&#xf…

作者头像 李华