RAG
什么是 RAG ?
RAG(检索增强生成)(Retrieval-Augmented Generation) 是一种结合信息检索和文本生成的 AI 技术。相比于传统的纯生成式模型(如 GPT),RAG 通过先检索相关文档,再利用生成模型进行回答,从而提升回答的准确性和可控性。
RAG 的工作原理
RAG 主要包含两个核心组件:
- 检索模块(Retriever) :从知识库或文档中检索最相关的信息。
- 生成模块(Generator) :基于检索到的内容,结合用户问题进行回答。
其典型流程如下:
- 用户输入查询,例如 "Coco AI 是什么?"
- 检索模块从知识库中搜索相关内容,例如 Coco AI 的官方文档、技术说明等。
- 生成模块使用检索到的内容,生成自然语言回答。
RAG 的优势
- 信息实时性强:可以结合外部知识库,避免仅依赖预训练数据。
- 增强可解释性:答案来源于可检索的文档,提高可信度。
- 灵活性高:适用于法律、医疗、金融等需要精准信息的领域。
给 Coco AI 增加 RAG
思路
- 分析用户问题意图 (新)
- 检索知识库等其他网络资源的相关内容 (新)
- 从检索内容中挑选内容 (新)
- 分析挑选的内容 (新)
- 进行思考,组织回答 (新)
- 输出回答
实践
后端实现,本文不做具体阐述了,想了解的可以直接看源码,希望可以给个免费的 star。
后端服务:github.com/infinilabs/...
接下来说一下客户端实现:
- 数据都是 websocket 推送过来的。
- 每种数据类型,都约定好加上了固定的类型。
- 按照 UI 实现不同的数据类型展示组件。
- 把 websocket 推送的数据按照类型传给对应的组件。
- 各个组件接收到对应的数据后,进行解析处理渲染。
噼里啪啦一顿操作,刚好也下班了,来先看看效果,后边有时间再说源码实现。
客户端源码:github.com/infinilabs/...
效果
- 输入框输入检索的问答 ,点选上 Deep Think 和 Search,然后回车看回答。
- 外接大脑 🧠 开始转动了...
- Understand the query(理解查询):分析用户问题意图。
- Retrieve 50 documents(检索 50 篇相关文档):扩展知识范围,每条数据可以点击跳转浏览器链接。
- Intelligent pick 3 results(智能筛选 3 个结果):提高回答的精准度。
- Deep reading(深度阅读):结合上下文,优化答案。
- AI Think:思考整理回答逻辑。
- 回答结果:给出总结回答
- 给出推荐追问:更精准的去提问,可以点击继续追问
- Coco 后台管理服务 和 Coco 客户端
小结
RAG (检索增强生成)通过结合大语言模型(LLM)与外部知识库,实现了**"检索-生成"的双向闭环**。
其核心逻辑在于:将用户查询转化为语义向量,从知识库中检索相关文档,并将这些文档作为上下文输入LLM生成精准回答。这一机制不仅突破了传统LLM的静态知识限制,还通过动态知识更新解决了信息滞后问题。
关于 Coco AI
Coco AI 是一个完全开源、跨平台的统一搜索与效率工具,能够连接并搜索多种数据源,包括应用程序、文件、谷歌网盘、Notion、语雀、Hugo 等本地与云端数据。通过接入 DeepSeek 等大模型,Coco AI 实现了智能化的个人知识库管理,注重隐私,支持私有部署,帮助用户快速、智能地访问信息。
官网:coco.rs
APP 端:github.com/infinilabs/...
Server 端:github.com/infinilabs/...