基于langchain RAG问答应用实战

一、前言

1. 介绍

本次选用百度百科------藜麦数据(https://baike.baidu.com/item/藜麦/5843874)模拟个人或企业私域数据,并基于langchain开发框架,实现一种简单的RAG问答应用示例。

2. 软件资源

  • CUDA 11.7
  • Python 3.10
  • pytorch 1.13.1+cu117
  • langchain

二、环境搭建

  1. 下载代码
  2. 构建环境
    $ conda create -n py310_chat python=3.10 # 创 建 新 环 境
    $ source activate py310_chat # 激 活 环 境
  1. 安装依赖
    $ pip install datasets langchain sentence_transformers tqdm chromadb langchain_wenxin

三、RAG问答应用实战

1. 数据构建

藜麦数据(https://baike.baidu.com/item/藜麦/5843874)保存到 藜.txt 文件中。

2. 本地数据加载

from langchain.document_loaders import TextLoader
loader = TextLoader("./藜.txt") documents = loader.load() documents
>>>
[Document(page_content='藜(读音lí)麦(Chenopodium\xa0quinoa\xa0Willd.)是藜科藜属  植物。穗部可呈红、紫、黄,植株形状类似灰灰菜,成熟后穗部类似高粱穗。植株大小受环境及遗传因素影响较大,从0.3-3米不等,茎部质地较硬,可分枝可不分。单叶互生,叶片呈鸭掌  状,叶缘分为全缘型与锯齿缘型。藜麦花两性,花序呈伞状、穗状、圆锥状,藜麦种子较小, 呈小圆药片状,直径1.5-2毫米,千粒重1.4-3克。\xa0[1]\xa0\n原产于南美洲安第斯山脉的哥  伦比亚、厄瓜多尔、秘鲁等中高海拔山区。具有一定的耐旱、耐寒、耐盐性,生长范围约为海平面到海拔4500米左右的高原上,最适的高度为海拔3000-4000米的高原或山地地区。
\xa0[1]\xa0\n藜麦富含的维生素、多酚、类黄酮类、皂苷和植物甾醇类物质具有多种健康功  效。...

3. 文档分割

文档分割,借助langchain的字符分割器,这里采用固定字符长度分割chunk_size=128

# 文档分割
from langchain.text_splitter import CharacterTextSplitter # 创建拆分器
text_splitter = CharacterTextSplitter(chunk_size=128, chunk_overlap=0) # 拆分文档
documents = text_splitter.split_documents(documents) documents
[Document(page_content='藜(读音lí)麦(Chenopodium\xa0quinoa\xa0Willd.)是藜科藜属   植物。穗部可呈红、紫、黄,植株形状类似灰灰菜,成熟后穗部类似高粱穗。植株大小受环境及遗传因素影响较大,从0.3-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xianghan收藏册

极简精品作,一分也是一份鼓励哦

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

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

打赏作者

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

抵扣说明:

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

余额充值