RAG、MCP 和 FunctionCall 等都是 AI 的核心技术,同时也是面试中最长问的知识点,那么今天就来看下:RAG 技术及其执行流程。

概述

RAG(Retrieval-Augmented Generation,检索增强生成)是指在将原始问题发送给大语言模型之前,先通过外部知识库将数据进行注入,之后先在知识库中检索相关信息,然后再将检索结果和原始问题一起发送给大模型组织、整理答案的一种技术手段。

通过这种实现方式,大语言模型可以获取到特定领域的相关信息,并能够利用这些信息进行回复,从而降低了发生幻觉的可能性。

RAG 优势

  • 提高准确性:通过引用外部知识库,减少幻觉现象。
  • 实时更新:允许模型访问最新信息,解决知识局限性问题。
  • 经济高效:与重新训练模型相比,降低了更新成本。

执行流程

RAG 执行流程通常分为以下两个阶段:

1.生成索引阶段:这个阶段通常包括文档清理,以及分词也就是将它们拆分为更小的数据块,并把这些数据库转换成向量,最后存储在向量数据库的过程。

2. 检索阶段:使用用户提出的问题,在向量数据库中检索查询的过程。

整体执行流程

使用场景

RAG 典型使用场景有以下几个。

1. 企业级知识问答系统

  • 场景:公司内部文档(如 HR 政策、技术手册、客户 FAQ)的智能问答。
  • 痛点:传统 LLM 无法访问非公开数据,且知识可能过时。
  • RAG 作用:实时检索内部知识库,生成准确且可溯源的答案。

2.客服与技术支持

  • 场景:电商、SaaS 产品的客户支持(如订单状态查询、故障排查)。
  • 痛点:需依赖实时数据(订单、库存)和动态知识(如促销规则)。
  • RAG 作用:结合用户实时数据(如订单 ID)和知识库,生成个性化回答。

3.医疗与法律咨询

  • 场景:辅助医生查询最新诊疗指南,或律师分析判例库。
  • 痛点:对事实准确性要求极高,且知识需更新(如新药品、法律条文)。
  • RAG 作用:从权威数据库(如 PubMed、法律条文库)检索证据,减少幻觉。

小结

RAG 是给大模型“外接”知识库,让大模型能够更加精准回答问题的一种技术实现手段。它的执行主要分为两个阶段:索引生成阶段(知识库添加到向量数据库的过程),检索阶段(根据用户输入信息在向量数据库查询结果的阶段),当然其中有一些执行细节也需要了解并在面试中回答出来。

本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:场景题、SpringAI、SpringAIAlibaba、并发编程、MySQL、Redis、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、JVM、设计模式、消息队列、Dify、AI常见面试题等。

面试官:聊聊RAG的执行流程?的更多相关文章

  1. 面试官又整新活,居然问我for循环用i++和++i哪个效率高?

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 前几天,一个小伙伴告诉我,他在面试的时候被面试官问了这么一个问题: 在for循环中,到底应该用 i++ 还是 ++i ? 听到这,我感觉这面试官 ...

  2. 口述完SpringMVC执行流程,面试官就让同事回家等消息了

    Srping MVC 执行流程真的是老生常谈的话题了,最近同事小刚出去面试,前面面试官相继问了几个 Spring 相关的问题,但当面试官问他,你知道 Srping MVC 的执行流程吗?小刚娴熟的巴拉 ...

  3. 从面试官的角度,聊聊java面试流程

    在这篇回答里,就讲以我常规的面试流程为例,说下java方面大致会问什么问题,以及如何确认候选人达到招聘要求. 先说面试前准备,可能有些面试官是拿到简历直接问,而且是在候选人自我介绍时再草草浏览简历,但 ...

  4. 阿里面试官:HashMap 熟悉吧?好的,那就来聊聊 Redis 字典吧!

    最近,小黑哥的一个朋友出去面试,回来跟小黑哥抱怨,面试官不按套路出牌,直接打乱了他的节奏. 事情是这样的,前面面试问了几个 Java 的相关问题,我朋友回答还不错,接下来面试官就问了一句:看来 Jav ...

  5. 原来select语句在MySQL中是这样执行的!看完又涨见识了!这回我要碾压面试官!

    大家好,我是冰河~~ MySQL作为互联网行业使用最多的关系型数据库之一,与其免费.开源的特性是密不可分的.然而,很多小伙伴工作了很多年,只知道使用MySQL进行CRUD操作,这也导致很多小伙伴工作多 ...

  6. 面试官:“看你简历上写熟悉 Handler 机制,那聊聊 IdleHandler 吧?”

    一. 序 Handler 机制算是 Android 基本功,面试常客.但现在面试,多数已经不会直接让你讲讲 Handler 的机制,Looper 是如何循环的,MessageQueue 是如何管理 M ...

  7. 面试官:线程池如何按照core、max、queue的执行循序去执行?(内附详细解析)

    前言 这是一个真实的面试题. 前几天一个朋友在群里分享了他刚刚面试候选者时问的问题:"线程池如何按照core.max.queue的执行循序去执行?". 我们都知道线程池中代码执行顺 ...

  8. ThreadPoolExecutor源码分析-面试问烂了的Java线程池执行流程,如果要问你具体的执行细节,你还会吗?

    Java版本:8u261. 对于Java中的线程池,面试问的最多的就是线程池中各个参数的含义,又或者是线程池执行的流程,彷佛这已成为了固定的模式与套路.但是假如我是面试官,现在我想问一些更细致的问题, ...

  9. 面试官:Java从编译到执行,发生了什么?

    面试官:今天从基础先问起吧,你是怎么理解Java是一门「跨平台」的语言,也就是「一次编译,到处运行的」? 候选者:很好理解啊,因为我们有JVM. 候选者:Java源代码会被编译为class文件,cla ...

  10. MySQL优化篇(一),我可以和面试官多聊几句吗?——SQL优化流程与优化数据库对象

    我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoD ...

随机推荐

  1. 1Panel + MaxKB 对接高德地图 MCP Server

    一.场景说明: 通过 1Panel+MaxKB 两个开源工具实现高德地图(Amap) MCP 服务调用. 二.操作说明 步骤一:完成 1Panel 的安装部署 安装说明:在线安装 - 1Panel 文 ...

  2. Django开发过程中遇到的问题和解决方案

    1.django向数据库中添加中文时报错 解决方案:创建数据库的时候设置编码格式 2.django的信号使用无法触发信号里的内容 解决方案:在django 1.7后,使用信号时候需要在应用配置类中的r ...

  3. dev c++基础操作

    文章目录 改变字体大小&改变背景色 最终效果 调节字体大小 调节背景色 常用快捷键 调试时粘贴测试数据 改变字体大小&改变背景色 最终效果 调节字体大小 Tools -> Edi ...

  4. 第5讲、Transformer 编码器(Encoder)处理过程详解

    Transformer 编码器(Encoder)处理过程详解 Transformer Encoder 是一个由 N 层(一般为 6 层)堆叠而成的模块结构.每一层的本质是两个核心子模块: 多头自注意力 ...

  5. 面试题|Spring中BeanFactory与ApplicationContext的本质区别和作用

      BeanFactory 是Bean工厂,是Spring 框架最核心的接口,它提供了高级IoC 的配置机制.如果说BeanFactory是Spring的心脏,那么应用上下文ApplicationCo ...

  6. 使用 Leangoo 看板工具高效管理直播筹备活动

    在组织一场成功的直播活动中,筹备工作通常涉及多个环节,包括选题策划.嘉宾邀请.物料准备.技术支持等.为了更高效地管理这些活动,我们选择使用 Leangoo 看板工具 来规划和跟踪直播的各项筹备任务.以 ...

  7. python爬虫学习——bs4

    bs4 将一个复杂的html文档转化为一个复杂的树形结构,每个节点都是python对象,所有对象可以分为四种:Tag.NavigableString.BeautifulSoup.Comment fro ...

  8. 从理解AI到驾驭文字:一位技术爱好者的写作工具探索手记

    三年前,当我第一次接触AI写作工具时,它生成的文字还带着明显的机械感,段落间的逻辑时断时续.如今,这些系统已经能写出颇具文采的散文,甚至模仿特定作家的风格.这种进化轨迹恰好为学习者提供了一个观察AI发 ...

  9. Maven 打包时,提示 java: 程序包com.sun.xml.internal.ws.fault 不存在 和 javax.crypto 不存在

    报错原因: Maven 打包时,不会导入 JDK 内部的依赖( JDK 属于部署的环境,不属于外部的三方依赖: 解决办法: 在pom.xml 文件中,添加如下 plugin 插件: <plugi ...

  10. 基于 Spread,在 Blazor 框架中导入 / 导出 Excel

    引言 在现代 Web 应用开发中,处理 Excel 文件的导入和导出是一项常见且重要的需求.Blazor 框架是微软推出的用于构建具有 .NET 强大功能的交互式客户端 Web UI 的相对较新的框架 ...