首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >RAG落地实战

RAG落地实战

原创
作者头像
程序员NEO
发布2025-11-21 00:33:16
发布2025-11-21 00:33:16
1790
举报

LangChain4j 系列文章

  1. LangChain4j - LangChain4j快速入门实战
  2. LangChain4j - 多模态开发踩坑实录
  3. LangChain4j - 系统提示词稳住AI
  4. LangChain4j - 注解式AI服务实战
  5. LangChain4j - 让AI不再失忆
  6. LangChain4j - LangChain4j 结构化输出实战

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索技术和 AI 内容生成的混合架构,可以解决⁢大模型的知识时效性限制和幻觉问题

简单来说,RAG 就像给 AI 配了一个 “小抄本”,让 AI 回答问题前先查一查特定的知识库来获取知识,确保回答是基于真实资料而不是凭空想象。很多企业也基于 RAG 搭建了自己的智能客服,⁢可以用自己积累的领域知识回复用户。

RAG 的完整工作流程如下:

让我们来实操一下,首先我准备 4 个文档,放在 resources/docs 目录下:

  • Java 编程学习路线.md
  • 程序员常见面试题.md
  • 程序员NEO的求职指南.md
  • 程序员NEO的项目学习建议.md

这个几个文件我就不提供给大家了,我是利用 AI 自动生成的内容,大家可以根据文件名自行搜索相关资料,我这里用于演示 RAG 的工作流程。

LangChain 提供了 3 种 RAG 的实现方式,我把它称为:极简版标准版⁢、进阶版

极简版 RAG

极简版适合快速查看效果,首先需要引入额外的依赖,里面包含了内置的离线 Embedding 模型,开箱即用:

代码语言:xml
复制
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-easy-rag</artifactId>
    <version>1.1.0-beta7</version>
</dependency>

示例代码如下,使用内置的文档加载器读取文档,然后利用内置的 Embedding 模型将文档转换成向量,并存储在内置的 Embedding 内存存储中,最后给 AI Serv⁢ice 绑定默认的内容检索器。

代码语言:java
复制
@Resource
private EmbeddingStore<TextSegment> embeddingStore;

// RAG
// 1. 加载文档
List<Document> documents = FileSystemDocumentLoader.loadDocuments("src/main/resources/docs");

// 2. 使用内置的 EmbeddingModel 转换文本为向量,然后存储到自动注入的内存 embeddingStore 中
EmbeddingStoreIngestor.ingest(documents, embeddingStore);

// 构造 AI Service
AiCodeHelperService aiCodeHelperService = AiServices.builder(AiCodeHelperService.class)
        .chatModel(qwenChatModel)
        .chatMemory(chatMemory)
        // RAG:从内存 embeddingStore 中检索匹配的文本片段
        .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))
        .build();

可以看到,极简版的特点是 “一切皆默认”,实际开发中,为了更好的效果,建议采用标准版⁢或进阶版。

再次运行代码,输入问题 Debug Java 程序,查看一下 embeddingStore 中的内容:

可以看到,极简版 RAG 直接将文档转换成了向量,并存储在内存中,后续 AI Service 可以直接从内存中检索相关内容。

好了,本篇文章就到这里,极简版 RAG 的使用非常简单,适合快速查看效果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LangChain4j 系列文章
  • 极简版 RAG
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档