# 《DeepSeek RAG 知识库》第1节:AI RAG 知识库,项目介绍

作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/ssFF0 (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥。

AI 开发能力,几乎已经是每个工程师必备的能力。在我们去看各个公司招聘要求时,经常会看到具备 AI、AIGC、RAG 能力优先。因为这些东西可以帮助企业提效,结合AI增强自身产品能力。所以,学习一下这样的东西是非常重要的!

在 AI 的使用场景中,我们考虑过;代码评审、需求开发、智能客服、SQL编写、需求分析等。但这些东西的回答,会随着我们发给 AI 的内容来解答,但受到AI对话的上线文字数限制,不太可能把且有的所有资料都一次发给 AI 进行解答。所以这里引出了企业知识库构建的诉求。它就是 RAG!

RAG(检索增强生成)技术正在重构互联网知识规则,RAG不仅仅是一个简单的知识存储工具,它是一种将检索与生成相结合的智能系统,能够从海量数据中快速提取相关信息,并结合上下文生成精准、连贯的答案。对于互联网公司而言,构建自己的RAG知识库,意味着能够为用户提供更加个性化、专业化的服务,同时也能够在激烈的市场竞争中,建立起独特的技术壁垒。

虽然市面有一些开源的 RAG,但深入使用仍不能解决所有的场景问题,尤其是你想自定义业务诉求,解析更多场景,更复杂的知识库时候,它们就显得不合适了。并且研发人员,自身应该具备 RAG 开发能力。

所以,我们来啦!构建一款属于自己的小型的 RAG 知识库,以此掌握 RAG 相关知识,扩宽自己的技术边界。

此项目小巧轻量,扩展性好,可以快速学习完成,掌握 RAG 知识库搭建和使用。

# 一、项目简述

基于 Ollama 部署 DeepSeek 大模型,提供 API 接口。运用 Spring AI 框架承接接口实现 RAG 知识库能力。这款 RAG 知识库支持文本解析,以及 Git 代码库的解析。

工程结构采取2层架构,轻量化设计,重点在于突出 RAG 功能实现。以此方式,帮助大家更好的理解,除了工程架构外的 RAG 知识库搭建。方便大家快速上手学习。

# 二、什么是 RAG

RAG:检索增强生成 (opens new window)

它通用语言模型通过微调就可以完成几类常见任务,比如分析情绪和识别命名实体。这些任务不需要额外的背景知识就可以完成。

要完成更复杂和知识密集型的任务,可以基于语言模型构建一个系统,访问外部知识源来做到。这样的实现与事实更加一性,生成的答案更可靠,还有助于缓解“幻觉”问题。

Meta AI 的研究人员引入了一种叫做检索增强生成(Retrieval Augmented Generation,RAG)的方法来完成这类知识密集型的任务。RAG 把一个信息检索组件和文本生成模型结合在一起。RAG 可以微调,其内部知识的修改方式很高效,不需要对整个模型进行重新训练。

RAG 会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。这样 RAG 更加适应事实会随时间变化的情况。这非常有用,因为 LLM 的参数化知识是静态的。RAG 让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。

Lewis 等人(2021)提出一个通用的 RAG 微调方法。这种方法使用预训练的 seq2seq 作为参数记忆,用维基百科的密集向量索引作为非参数记忆(使通过神经网络预训练的检索器访问)