智能体(AI Agent)开发实战之【LangChain】(二)结合大模型基于RAG实现本地知识库问答

上一篇介绍了接入大模型输出结果,实现了基本的问答功能。现有大模型都是基于公开资料训练的,搜索垂直专业领域的知识可能会出现问题。本篇文章会基于RAG实现简单的知识库问答功能。

一、RAG介绍

RAG(Retrieval Augmented Generation)即检索增强生成,是一种结合了信息检索和大语言模型(LLM)生成能力的技术,旨在解决大语言模型在回答问题时,因知识更新不及时、缺乏特定领域知识或事实性错误等问题,通过在生成回答之前检索相关外部知识源来增强回答的准确性和可靠性。

1.工作原理

检索阶段:当用户提出一个问题时,RAG 系统首先将问题发送到内部的知识源(如文档库、数据库等)进行检索。通常会使用向量检索技术,将问题和知识源中的文档都转换为向量表示,然后计算问题向量与文档向量之间的相似度,找出与问题最相关的文档段落

生成阶段:将检索到的相关文档段落与用户的问题一起输入到大语言模型中,大语言模型结合这些外部知识生成最终的回答。

2.优势

知识更新:可以利用最新的内部知识来回答问题,避免了大语言模型因训练数据固定而导致的知识过时问题。

特定领域知识:对于特定领域的问题,能够从专业的知识源中获取相关信息,提高回答的专业性和准确性。

减少幻觉:通过引入内部知识,减少大语言模型生成回答时出现问答错误和幻觉内容

二、具体的功能实现

1.准备知识源

选择合适的知识源,如文本文件、PDF、Word、数据库等本地或内部的结构化或非结构化数据。如我在本地准备了一个自己胡编的一段内容。

2.对知识源进行预处理,包括文本清洗、分词等

3.数据向量化

选择合适的向量数据库,如 FAISS、Chroma 等。我分别试了这两个数据库都是可以的。然后将预处理后的知识源文档转换为向量并存储到向量数据库中。

4.创建检索并设置问答链

5.运行代码测试功能

大模型会结合内部知识库回答问题,如上图所示,可以看到回答的效果。我再次调整下问题,如下图的回答效果是可以的。

三、总结

LangChain 提供了丰富的动态扩展功能,可以基于RAG实现企业内部私有智能体。在使用RAG时也需注意数据质量或直接影响 RAG 系统的性能,需要对数据进行严格的清洗和预处理。还需选择合适的向量表示方法和嵌入模型,提高检索的准确性和企业适用场景。

相关推荐
llihz14 分钟前
pycharm中怎么解决系统cuda版本高于pytorch可以支持的版本的问题?
图像处理·人工智能·pytorch·深度学习·pycharm
訾博ZiBo21 分钟前
AI日报 - 2025年04月19日
人工智能
卧式纯绿31 分钟前
卷积神经网络基础(二)
人工智能·深度学习·神经网络·机器学习·计算机视觉·cnn
面包圈蘸可乐1 小时前
论文学习:《创新编码策略的多类LncRNA亚细胞定位的集成深度学习框架》
人工智能·深度学习·学习
逢生博客1 小时前
将 DeepSeek 集成到 Spring Boot 项目实现通过 AI 对话方式操作后台数据
人工智能·spring boot·docker·deepseek·cherry studio·mcp 服务端·mcp 客户端
奋斗者1号1 小时前
深入解析分类模型评估指标:ROC曲线、AUC值、F1分数与分类报告
人工智能·分类·数据挖掘
爱的叹息1 小时前
使用AI工具打造专业级PPT的完整方案,结合 DeepSeek构思、Kimi生成内容、Napkin优化设计 等工具,分阶段详细说明流程及工具使用
人工智能·powerpoint
around_012 小时前
【机器学习】PCA-奇异值分解-上采样与下采样-傅里叶变换
人工智能·机器学习
myzr1232 小时前
6TOPS算力NPU加持!RK3588如何重塑8K显示的边缘计算新边界
人工智能·边缘计算
陈奕昆2 小时前
论文降重GPT指令-实侧有效从98%降低到8%
人工智能·gpt·论文·降重