Spring AI 面试题

文章目录

    • [一、基础概念(必问 5 道)](#一、基础概念(必问 5 道))
      • [1. 什么是 Spring AI?](#1. 什么是 Spring AI?)
      • [2. Spring AI 的核心设计目标是什么?](#2. Spring AI 的核心设计目标是什么?)
      • [3. Spring AI 核心模块有哪些?](#3. Spring AI 核心模块有哪些?)
      • [4. Spring AI 支持哪些大模型?](#4. Spring AI 支持哪些大模型?)
      • [5. Spring AI 和 LangChain 的区别?](#5. Spring AI 和 LangChain 的区别?)
    • [二、RAG 相关(面试超级高频)](#二、RAG 相关(面试超级高频))
      • [6. 什么是 RAG?](#6. 什么是 RAG?)
      • [7. RAG 完整流程是什么?(标准 6 步)](#7. RAG 完整流程是什么?(标准 6 步))
      • [8. 为什么要用向量数据库?](#8. 为什么要用向量数据库?)
      • [9. Spring AI 中 VectorStore 作用是什么?](#9. Spring AI 中 VectorStore 作用是什么?)
      • [10. Spring AI 如何实现 RAG?](#10. Spring AI 如何实现 RAG?)
    • 三、核心组件原理(必背)
      • [11. ChatModel 是什么?](#11. ChatModel 是什么?)
      • [12. EmbeddingModel 作用?](#12. EmbeddingModel 作用?)
      • [13. 什么是 PromptTemplate?](#13. 什么是 PromptTemplate?)
      • [14. Spring AI 流式响应原理?](#14. Spring AI 流式响应原理?)
      • [15. Spring AI 函数调用(FunctionCall)原理?](#15. Spring AI 函数调用(FunctionCall)原理?)
    • 四、生产/实战类(进阶)
      • [16. RAG 如何优化?](#16. RAG 如何优化?)
      • [17. Spring AI 支持哪些向量数据库?](#17. Spring AI 支持哪些向量数据库?)
      • [18. Spring AI 适合什么场景?](#18. Spring AI 适合什么场景?)
    • 五、你面试可以直接背的万能总结

一、基础概念(必问 5 道)

1. 什么是 Spring AI?

Spring AI 是 Spring 官方推出的 AI 应用开发框架 ,目标是简化 Java 开发者接入大模型、向量数据库、RAG、函数调用等能力,提供统一 API、模型无关、开箱即用的体验。


2. Spring AI 的核心设计目标是什么?

  • 模型无关性:一套代码,切换模型不用改业务
  • Spring 生态原生集成:自动配置、依赖注入、Starter
  • 简化 AI 工程化:封装 Prompt、Embedding、VectorStore、RAG
  • 低学习成本:Java 开发者不用懂 AI 底层也能快速开发

3. Spring AI 核心模块有哪些?

  • Chat Model:对话模型(OpenAI、通义、Ollama 等)
  • Embedding Model:文本转向量
  • VectorStore:向量数据库抽象
  • Prompt / PromptTemplate:提示词管理
  • DocumentReader / TextSplitter:文档读取与切片
  • RAG:检索增强生成
  • FunctionCall:AI 调用 Java 方法

4. Spring AI 支持哪些大模型?

  • OpenAI
  • 阿里云通义千问
  • 百度文心一言
  • 讯飞星火
  • Ollama(本地大模型)
  • ZhipuAI 等

特点:统一接口,换配置不换代码。


5. Spring AI 和 LangChain 的区别?

  • Spring AI:Java 第一、Spring 生态、简单轻量、工程化强
  • LangChain:Python 为主、功能极多、复杂、Java 支持弱

二、RAG 相关(面试超级高频)

6. 什么是 RAG?

Retrieval-Augmented Generation 检索增强生成

先从外部知识库检索相关内容,把内容拼到提示词里,再让大模型回答,解决幻觉、知识过时、无业务数据问题。


7. RAG 完整流程是什么?(标准 6 步)

离线构建:

  1. 加载文档(PDF/TXT/MD)
  2. 文本分块(Chunk)
  3. 向量化(Embedding)
  4. 存入向量库

在线问答:

  1. 用户问题转向量 → 向量库做相似度检索

  2. 拼接上下文 → 给大模型生成回答


8. 为什么要用向量数据库?

  • 普通数据库只能精确匹配
  • 向量数据库可以做语义相似度检索
  • 是 RAG 的核心基础设施
  • 支持高效 Top-K 相似查询

9. Spring AI 中 VectorStore 作用是什么?

统一抽象向量库,屏蔽底层实现差异:

  • SimpleVectorStore(内存)
  • Milvus
  • PGVector
  • Chroma
  • ElasticSearch

10. Spring AI 如何实现 RAG?

  1. DocumentReader 读取文档
  2. TextSplitter 切片
  3. EmbeddingModel 转向量
  4. 存入 VectorStore
  5. 用户提问 → similaritySearch
  6. 拼接上下文 → ChatModel 生成回答

三、核心组件原理(必背)

11. ChatModel 是什么?

对话模型的统一顶层接口

不管底层是 OpenAI 还是通义,上层调用都一样。


12. EmbeddingModel 作用?

文本 → 向量(一串数字)

用于语义检索、RAG、相似度计算。


13. 什么是 PromptTemplate?

提示词模板,支持变量替换,让提示词可复用、可管理。


14. Spring AI 流式响应原理?

  • 模型返回 SSE 流式数据
  • Spring AI 使用 StreamingChatModel
  • 返回 Flux<ChatResponse>
  • 前端逐字接收(打字机效果)

15. Spring AI 函数调用(FunctionCall)原理?

  1. Java 方法上加 @Tool
  2. Spring AI 自动生成 Function Schema
  3. 传给大模型
  4. 模型判断是否需要调用工具
  5. Spring AI 自动反射执行方法
  6. 结果返回给模型,生成最终回答

四、生产/实战类(进阶)

16. RAG 如何优化?

  • 合理切片(大小、重叠)
  • 增加召回数量(topK)
  • 加入重排(Rerank)
  • 元数据过滤(Metadata Filtering)
  • 多向量库混合检索
  • 提示词工程优化

17. Spring AI 支持哪些向量数据库?

  • SimpleVectorStore
  • Milvus
  • PGVector
  • Chroma
  • ElasticSearch
  • Pinecone

18. Spring AI 适合什么场景?

  • 企业知识库
  • 智能客服
  • 内部 RAG 应用
  • AI 助手
  • 文档问答
  • 推荐/语义检索系统

五、你面试可以直接背的万能总结

Spring AI 是 Spring 官方的 AI 开发框架,通过统一抽象 屏蔽大模型差异,提供 Chat、Embedding、VectorStore、RAG、FunctionCall 等能力,让 Java 开发者可以快速、低成本构建企业级 AI 应用,是目前 Java 后端接入 AI 的主流方案。

相关推荐
星浩AI2 小时前
OpenClaw 总是忘记你说过的话?来试试这个插件
人工智能·后端·agent
tinygone2 小时前
OpenClaw+FunASR识别飞书发来的音频文件
人工智能·飞书
风停又起2 小时前
智能体Agent从 0 到 OpenClaw:AI Agent 的完整演进之路
人工智能
ruiang2 小时前
Spring集成kafka的最佳方式
spring·kafka·linq
小涛不学习2 小时前
Java List 集合深度解析(ArrayList / LinkedList 原理详解)
java·开发语言·windows
用户80223847734072 小时前
Spring @Validated失效?原因、排查与高效解决方案全解析
spring
郝学胜-神的一滴2 小时前
一序平衡,括号归真:单括号匹配算法的优雅美学
java·前端·数据结构·c++·python·算法
吃着火锅x唱着歌2 小时前
PHP7内核剖析 学习笔记 第十章 扩展开发(3)
java·笔记·学习