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 TextLoader

loader = 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=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值