Spring AI + RAG + 向量库 10 道模拟面试

文章目录

    • [1. 什么是 Spring AI?它解决什么问题?](#1. 什么是 Spring AI?它解决什么问题?)
    • [2. Spring AI 的核心组件有哪些?](#2. Spring AI 的核心组件有哪些?)
    • [3. Spring AI 和 LangChain 的区别?](#3. Spring AI 和 LangChain 的区别?)
    • [4. 什么是 RAG?为什么要用 RAG?](#4. 什么是 RAG?为什么要用 RAG?)
    • [5. RAG 的完整流程是什么?](#5. RAG 的完整流程是什么?)
    • [6. 为什么要用向量数据库?普通数据库不行吗?](#6. 为什么要用向量数据库?普通数据库不行吗?)
    • [7. Spring AI 中 VectorStore 是干嘛的?支持哪些库?](#7. Spring AI 中 VectorStore 是干嘛的?支持哪些库?)
    • [8. Spring AI 如何实现流式输出(打字机效果)?](#8. Spring AI 如何实现流式输出(打字机效果)?)
    • [9. Spring AI 函数调用(FunctionCall)原理?](#9. Spring AI 函数调用(FunctionCall)原理?)
    • [10. 生产上 RAG 怎么优化?(高频加分题)](#10. 生产上 RAG 怎么优化?(高频加分题))

1. 什么是 Spring AI?它解决什么问题?

答:

Spring AI 是 Spring 官方推出的 AI 应用开发框架,用来简化 Java 后端接入大模型

它统一了对话、向量、文档、RAG 等接口,让开发者不用关心底层是 OpenAI、通义还是文心,一套代码通用,快速做企业 AI 应用。


2. Spring AI 的核心组件有哪些?

答:

  • ChatModel:对话模型统一接口
  • EmbeddingModel:文本转向量
  • VectorStore:向量数据库抽象
  • DocumentReader & TextSplitter:文档读取与切片
  • PromptTemplate:提示词模板
  • RAG:检索增强生成
  • FunctionCall:让 AI 调用 Java 方法

3. Spring AI 和 LangChain 的区别?

答:

  • Spring AI:Java 优先、轻量、Spring 生态强、工程化友好、学习成本低
  • LangChain:Python 为主,功能多但复杂,Java 支持弱

4. 什么是 RAG?为什么要用 RAG?

答:

RAG = 检索增强生成。

先从知识库检索相关内容,再把内容给大模型,让它基于资料回答

解决大模型三大问题:

  • 不知道企业私有数据
  • 会胡说八道(幻觉)
  • 知识过时

5. RAG 的完整流程是什么?

答:
离线构建知识库:

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

用户提问:

  1. 问题转向量

  2. 向量库做相似度检索

  3. 拼接上下文给大模型

  4. 大模型生成回答


6. 为什么要用向量数据库?普通数据库不行吗?

答:

  • 普通数据库做精确匹配
  • 向量数据库做语义相似度匹配
  • 能理解"意思相近",而不只是关键词一样
  • 是 RAG 的核心基础设施

7. Spring AI 中 VectorStore 是干嘛的?支持哪些库?

答:

VectorStore 是向量数据库的统一抽象

支持:

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

8. Spring AI 如何实现流式输出(打字机效果)?

答:

  • 使用 StreamingChatModel
  • 模型返回 SSE 流式数据
  • 返回 Flux<ChatResponse>
  • 前端逐字接收展示

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

答:

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

10. 生产上 RAG 怎么优化?(高频加分题)

答:

  • 合理文本分块(大小、重叠)
  • 调整 TopK 召回数量
  • 加入重排 Rerank
  • 元数据过滤,缩小检索范围
  • 提示词优化,限制模型只看资料
  • 向量库使用 Milvus / PGVector 提高性能
相关推荐
Cosolar2 小时前
大模型多轮对话自动上下文压缩
人工智能·后端·面试
未来之窗软件服务2 小时前
vosk-ASR angular调用[AI人工智能(五十二)]—东方仙盟
人工智能·语音识别·vosk·仙盟创梦ide·东方仙盟
tangdou3690986552 小时前
手把手图文并茂2分钟教会你Windows安装OpenClaw大龙虾AI助手 | OpenClaw AI Assistant Setup Guide
人工智能
V搜xhliang02462 小时前
手术机器人导航软件
大数据·人工智能·机器学习·自然语言处理·机器人
SmartBrain2 小时前
基于 Spring AI 构建多智能体协作系统(高级版)
java·人工智能·spring
Fairy要carry2 小时前
面试-Prefill 和 Decode
人工智能
YaraMemo2 小时前
向量求导规则
人工智能·机器学习·矩阵·信号处理
用户5191495848452 小时前
WordPress Top Store 主题高危漏洞利用工具 (CVE-2024-10673)
人工智能·aigc
琛説2 小时前
Web-Rooter:一种 IR + Lint 模式的 AI Agent 创新尝试【或许是下一个 AI 爆火方向】
前端·人工智能