LangChain构建RAG(基于Huggingface与Groqcloud,无需本地部署模型)

一、前言

LangChain是一个开源框架,旨在简化使用大型语言模型(LLM)的应用程序创建。‌它提供了一个标准接口,允许开发者将不同的语言模型连接在一起,并与外部计算和数据源进行集成。LangChain的核心思想是通过组合不同的组件来创建更高级的大语言模型应用程序。它为常见应用程序提供了端到端的解决方案,例如聊天机器人、文档分析和代码生成等。‌

LangChain封装许多主流的大模型提供商的API接口,可以快速便捷的开发RAG应用。
下面我将从0开发一个RAG应用。

二、准备工作

准备HuggingfaceGroqcloudapi_key
Huggingface:https://huggingface.co/

Groqcloud:https://console.groq.com/

python依赖:

 langchain-openai
 langchain-community 
 chromadb 
 pypdf    
 openai  

在线pdf文档
作为我们的本地知识,大模型要从这个pdf中告诉我们答案,这里我是在网络上随便找的一篇论文
https://arxiv.org/pdf/1801.06176

三、LangChain构建RAG应用

RAG应用的流程如下:
在这里插入图片描述

简单来说就是,用户询问问题,首先将用户的问题Embedding向量化,之后与向量数据库中比对,找到相似度最高的文本,之后将相关的文本交给大模型,大模型根据这些文本给出我一个总结后的答案。

1、准备问题

准备一个问题,最好是可以在准备的文档中可以找到的答案。
例如:
我询问DDQ的全称是什么,这个答案是在pdf的内容中的

query = "What is the full name of DDQ"

2、加载文本

加载准备的文档,这里我只取了文档的前3页作为演示

pdf_loader = PyPDFLoader("https://arxiv.org/pdf/1801.06176")
pages = pdf_loader.load_and_split()
pages = pages[:3]  # 为了减少时间,缩短数据

3、分割文本

为了提高处理效率、便于模型训练与推理,需要将我们加载的数据进行切分
chunk_size=500
这个参数指定了每个文本块的最大长度(以字符数为单位)。例如,chunk_size=500表示每个文本块的最大长度为500个字符。

chunk_overlap=50
这个参数定义了相邻两个文本块之间的重叠字符数。chunk_overlap=50意味着相邻的两个文本块将共享50个字符。这对于确保文本块之间的连接顺畅、保持上下文一致性很有用。

from langchain
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韭菜盖饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值