前期准备:在部署LangChain之前,需要先下载chatglm3模型,如何下载可以查看我的上一篇文章chatglm3本地部署
首先给出git地址,git上其实也有他是原理也可以去git上看langchain-chatchat
原理如下图:
红框: 红框内是经历了这样一个过程,首先上传本地文档,然后把文档的内容进行分割,其中文档的分割方法有很多,比如可以按照符号分割,按照段落分割,或者按照语气词分割,接下来把分割后的内容,进行Embedding操作生成词向量,如果不清楚Embedding是什么的,可以参考我的这篇文章Embedding And Word2vec,最后把生成的词向量存入VectorStore,也就是词向量数据库。
蓝框: query是用户输入的信息,然后把用户输入的信息也做Embedding操作,然后得到词向量。
绿框: 利用向量相关性算法(例如余弦算法),计算用户输入后的词向量和向量数据库中最匹配的几个知识库片段,将这些知识库片段作为上下文,与用户问题一起作为 promt 提交给 LLM 回答。
1.拉取代码
git clone https://github.com/chatchat-space/Langchain-Chatchat.git
2.创建一个conda环境,python环境我这里使用的是3.10.13,官方推荐的是 3.8 - 3.11,如果不知道如何创建的,在文章开头中的那篇文章里有。
3.激活刚刚创建的环境,然后下载torch,下载方法在文章开头中的那篇文章里有。
4.安装依赖,在安装依赖之前,需要把下面requirements.txt和requirements_api.txt文件中,有关torch的所有安装内容都删掉。因为如果直接执行下面的命令,下载的torch是cpu版本,从而导致后面无法启动langchain,这就是为什么我们要先装torch。
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt
5.把下载好的模型复制到langchain下
6.初始化知识库和配置文件
$ python copy_config_example.py
$ python init_database.py --recreate-vs
7.启动
$ python startup.py -a
8.创建知识库
9.使用