AI创想
标题:
LangChain知识库构建与RAG设计
[打印本页]
作者:
占士邦丶杜蕾斯
时间:
2025-9-7 23:40
标题:
LangChain知识库构建与RAG设计
RAG:检索增强生成是什么?
RAG的主要流程
Retrieval-Augmented Generation: 检索增强生成
能够根据问题的特点还有上下文, 生成更加个性化和精确的回答
为LLM提供来自外部知识源的额外信息的概念。这允许它们生成更准确和有上下文的答案,同时减少幻觉
(1)检索:外部相似搜索 (2)增强:提示词更新 (3)生成:更详细的提示词输入LLM
主要流程: 输入问题-> Retrieval检索向量数据库 -> 得到Context上下文 -> 生成详细的prompt提示 -> 再根据LLM生成对应的回答 -> 最后返回给用户
LangChain中RAG中的Retrieve实现
Source: 很多数据源的支持
github
YouTube
discord
Twitter
PPT等等
Loader: 对Source数据源Load到LangChain这个系统里面
Transform: 对数据进行向量转化, 对不同数据格式进行转化
Embedding: 向量化, 嵌入到向量空间
Store: 将向量数据存储到向量数据库里面
Retrieve: 通过Retrieve方式进行检索
Loader: 让大模型具备实时学习能力
Loader加载MarkDown文件
# 我是一个markdown加载示例- 第一项目- 第二个项目- 第三个项目## 第一个项目AI研习社最厉害专业的AI研究基地## 第二个项目AIGC打造未来AI应用天地## 第三个项目AI研习社是一个非常牛逼的AI媒体#使用loader来加载markdown文本from langchain.document_loaders import TextLoaderloader = TextLoader("loader.md")loader.load()输出:
[Document(page_content='# 我是一个markdown加载示例\n- 第一项目\n- 第二个项目\n- 第三个项目\n\n## 第一个项目\nAI研习社最厉害专业的AI研究基地\n\n## 第二个项目\nAIGC打造未来AI应用天地\n\n## 第三个项目\nAI研习社是一个非常牛逼的AI媒体', metadata={'source': 'loader.md'})]
Loader加载CVS文件
loader.csv
#使用loader来加载cvs文件from langchain.document_loaders.csv_loader import CSVLoader#loader = CSVLoader(file_path="loader.csv")loader = CSVLoader(file_path="loader.csv",source_column="Location")data = loader.load()print(data)输出:
[Document(page_content='\ufeffProject: AI GC培训\nDES: 培训课程\nPrice: 500\nPeople: 100\nLocation: 北京', metadata={'source': '北京', 'row': 0}), Document(page_content='\ufeffProject: AI工程师认证\nDES: 微软AI认证\nPrice: 6000\nPeople: 200\nLocation: 西安', metadata={'source': '西安', 'row': 1}), Document(page_content='\ufeffProject: AI应用大会\nDES: AI应用创新大会\nPrice: 200门票\nPeople: 300\nLocation: 深圳', metadata={'source': '深圳', 'row': 2}), Document(page_content='\ufeffProject: AI 应用咨询服务\nDES: AI与场景结合\nPrice: 1000/小时\nPeople: 50\nLocation: 香港', metadata={'source': '香港', 'row': 3}), Document(page_content='\ufeffProject: AI项目可研\nDES: 可行性报告\nPrice: 20000\nPeople: 60\nLocation: 上海', metadata={'source': '上海', 'row': 4})]
Loader加载Excel文件
安装插件:
! pip install "unstructured[xlsx]"示例:将example目录下的所有*.xlsx文件都加载进来
#某个目录下,有excel文件,我们需要把目录下所有的xlxs文件加载进来#! pip install "unstructured[xlsx]"from langchain.document_loaders import DirectoryLoader#目录下的.html和.rst文件不会被这种loader加载#loader = DirectoryLoader("目录地址",glob="指定加载说明格式的文件")loader = DirectoryL
欢迎光临 AI创想 (http://llms-ai.com/)
Powered by Discuz! X3.4