目录

1 原理

2 langchain-ChatGLM的开发部署

2.1 安装环境

2.2 加载本地模型

3 langchain-TigerBot的开发部署


刷B站的时候,无意中看到吴恩达的一个langchain的教程,然后去github上搜了下,发现别人利用langchain和chatGLM做的基于本地知识库的问答应用挺好的,学习下,同时增加了利用langchain-TigerBot实现的本地知识库。

1 原理

基于本地知识库的问答应用原理如上图,首先把本地知识库的文档分割成片段,然后利用embedding模型将文字用向量表示,然后保存到向量库中,然后我们提问的问题也用向量表示,然后将我们的问题和向量库的向量进行匹配,得到相似的结果,然后组装成prompt,送到语言模型中,得到我们想要的答案,

  然后我看刘虔的培训教程中有个这样的代码示例

我的理解其实就是从文档中搜索出问题和答案,然后一起送到大模型,让大模型生成回答。

2 langchain-ChatGLM的开发部署

2.1 安装环境

langchain-ChatGLM/docs/INSTALL.md at master · imClumsyPanda/langchain-ChatGLM · GitHub

conda create  -n langchain-chatglm-chw python=3.8
conda activate langchain-chatglm-chw# 拉取仓库
$ git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git# 进入目录
$ cd langchain-ChatGLM# 项目中 pdf 加载由先前的 detectron2 替换为使用 paddleocr,如果之前有安装过 detectron2 需要先完成卸载避免引发 tools 冲突
$ pip uninstall detectron2# 检查paddleocr依赖,linux环境下paddleocr依赖libX11,libXext
$ yum install libX11   #sudo apt-get install libx11-dev
$ yum install libXext  #sudo apt-get install libxext-dev# 安装依赖
$ pip install -r requirements.txt# 验证paddleocr是否成功,首次运行会下载约18M模型到~/.paddleocr
$ python loader/image_loader.py

然后执行 python loader/image_loader.py会报错

Traceback (most recent call last):File "loader/image_loader.py", line 8, in <module>from configs.model_config import NLTK_DATA_PATH
ModuleNotFoundError: No module named 'configs'

在github的issue里面搜索configs这个关键字发现

按照这个修改了之后发现,出现了这个报错

Traceback (most recent call last):File "loader/image_loader.py", line 36, in <module>from configs.model_config import NLTK_DATA_PATH
ModuleNotFoundError: No module named 'configs.model_config'

然后继续在issues中搜索configs.model_config'

好吧,原因是python库中有个configs包,我们的工程中也有个configs文件夹,我们应该是要去工程文件夹configs中找而不是python的configs库中找,所以用下面命令卸载configs库就好了

pip uninstall configs

注:使用 langchain.document_loaders.UnstructuredFileLoader 进行非结构化文件接入时,可能需要依据文档进行其他依赖包的安装,请参考 langchain 文档。

那我去看一下加载非结构化文档需要安装什么:Unstructured File |

利用langchain-ChatGLM、langchain-TigerBot实现基于本地知识库的问答应用相关推荐

  1. 基于本地知识库的问答机器人langchain-ChatGLM

    原文:基于本地知识的问答机器人langchain-ChatGLM - 知乎 背景 ChatGPT火了后,各种大语言模型(LLM)模型相继被发布,完全开源的有ChatGLM.BLOOM.LLaMA等.但 ...

  2. 给LLM装上知识:从LangChain+LLM的本地知识库问答到LLM与知识图谱的结合

    前言 过去半年,随着ChatGPT的火爆,直接带火了整个LLM这个方向,然LLM毕竟更多是基于过去的经验数据预训练而来,没法获取最新的知识,以及各企业私有的知识 为了获取最新的知识,ChatGPT p ...

  3. 从零实现Transformer、ChatGLM-6B、本地知识库、模型(训练/推理)加速

    前言 最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下 ...

  4. 模板会有多层镜像_创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建,本博文讲解前两种。基于已有镜像的容器创建该方法是使用docke...

    创建镜像的方法有三种:基于已有镜像的容器创建.基于本地模板导入.基于Dockerfile创建,本博文讲解前两种. 基于已有镜像的容器创建 该方法是使用docker commit命令,其命令格式为: d ...

  5. Ubuntu下利用ipmitool工具解决IPMI(基于openbmc)的web页面崩溃或出现session expired的问题

    1.问题出现 如上图,笔者在一年多前买到了一台DDN公司的存储服务器控制器,配置十分的豪华(3647CPU,支持第一代与第二代可拓展志强的正式版,qs与es,1U的空间,六通道内存,支持dcpmm,两 ...

  6. DL之LSTM:基于《wonderland爱丽丝梦游仙境记》小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测

    DL之LSTM:基于<wonderland爱丽丝梦游仙境记>小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测 目录 基于<wonderland爱丽 ...

  7. DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)

    DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化) 目录 利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的 ...

  8. DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Functional)利用MNIST(手写数字图片识别)数据集实现多分类预测

    DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Functional)利用MNIST(手写数字图片识别)数据集实现多分类预测 目录 输出结果 设计思路 核心代码 输出结果 下边两张 ...

  9. DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测

    DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测 目录 输出结果 设计思路 核心代码 输出结果 1.10 ...

最新文章

  1. 学c语言用vs,毫无编程基础的小白准备学习C语言,用VC6还是VS2015?
  2. Angular介绍、安装Angular Cli、创建Angular项目入门教程
  3. Python os.chdir() 方法
  4. 视频教程-java美妆商城项目|在线购书系统(java毕业设计项目ssm版)-Java
  5. 单片机应用系统设计技术——扩展行列式键盘
  6. 网线的分类及速率,您知道吗?
  7. Spring 中 AOP 的实现原理——动态代理
  8. 【牛客网C++服务器项目学习】Day12-网络编程的两种事件处理模式
  9. 微信美食菜谱小程序系统毕业设计毕设(6)开题答辩PPT
  10. 无法在此iPhone激活面容ID怎么办?
  11. [python]用flask框架搭建微信公众号的后台
  12. 比搞笑诺奖还离谱,看完国产AIGC最新创作,把我给整不会了
  13. NOIP2014、2015普及组初赛难点整理
  14. PLC控制系统的软件设计
  15. Hyper-V导出虚拟机/导入虚拟机步骤(克隆),以及克隆之后设置静态IP无效的解决办法
  16. 获取网站后台权限理解
  17. STM32F10X SPI操作flash MX25L64读写数据
  18. [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及蠕虫解析
  19. win0计算机内存不足,Windows电脑提示内存不足的原因分析及解决办法
  20. turbolinux mysql 5.0 cluste_--mysql 5.0 集群负载均衡—经过测试

热门文章

  1. 计算机组成 并行体系 Flynn分类法
  2. Codeforces Round #663 (Div. 2) (CD)
  3. 【优化算法】萤火虫算法matlab
  4. EXCEl表中提取相同内容
  5. 模型整合之模型堆叠——详细理解Stacking model
  6. 代词总结——day2
  7. 2-24财财的财经早报!
  8. 天枢Dubhe战队:岁月不败勇者,你我战益弥坚
  9. 【招生】博士生、实习生 | 西湖大学曾坚阳人工智能与计算生物学课题组
  10. 1997-2021年全国30省技术市场成交额(亿元)