分享

基于LangChain调用ChatGLM2的本地知识库安装

 程序员笔记 2023-10-31 发布于北京
1 LangChain主要功能   
调用语言模型
将不同向量数据库接入到语言模型的交互中
允许语言模型与运行环境交互

2 LangChain中提供的模块  

Modules:支持的模型类型和集成。
Prompt:提示词管理、优化和序列化。
Memory:内存是指在链/代理调用之间持续存在的状态。
Indexes:当语言模型与特定于应用程序的数据相结合时,会变得更加强大-此模块包含用于加载、查询和更新外部数据的接口和集成。
Chain:链是结构化的调用序列(对LLM或其他实用程序)。
Agents:代理是一个链,其中LLM在给定高级指令和一组工具的情况下,反复决定操作,执行操作并观察结果,直到高级指令完成。
Callbacks:回调允许您记录和流式传输任何链的中间步骤,从而轻松观察、调试和评估应用程序的内部。

3 LangChain的运用场景  

文档问答、个人助理、查询表格数据、与API交互、信息提取文档总结

4 LangChain配置文件  

5 下载LangChain安装包  

(1)LangChain.zip
分享链接:http://www./#s/9wBcgchA
访问密码:x1hAw
(2)nltk_data.zip
分享链接:http://www./#s/9wBoR1jw
访问密码:YCOxV         

6 LangChainWindows环境搭建  

创建虚拟环境(这样不会污染本地的原始环境)
1 进入命令行
2 创建环境&激活环境
conda create -n langchain python=3.10
conda activate langchain
3 激活环境后,会有你的环境名称为开头,然后pip安装库
pip install requests torch langchain chromadb sentence_transformers unstructured pdfminer.six fastapi uvicorn -i  https://pypi.tuna./simple
注意如果ntlk安装不成功。可能出现下列现象:Please use the NLTK Downloader to obtain the resource:
  >>> import nltk
  >>> nltk.download('punkt')
  For more information see: https://www./data.html
  Searched in:
    - 'C:\\Users\\Administrator/nltk_data'
    - 'E:\\ProgramData\\anaconda3\\envs\\langchain\\nltk_data'
    - 'E:\\ProgramData\\anaconda3\\envs\\langchain\\share\\nltk_data'
  - 'E:\\ProgramData\\anaconda3\\envs\\langchain\\lib\\nltk_data'
    - 'C:\\Users\\Administrator\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
- 'D:\\nltk_data'
需要将下载好的nltk放到指定目录即可,可以放到错误提示目录下,建议放到anaconda env安装目录(E:\\ProgramData\\anaconda3\\envs\\langchain\\nltk_data)。

7 加载文档创建知识库  

(langchain) PS G:\ai0001\langchain> python .\createKnowledgeBase.py
Config loaded
Creating new vectorstore
Loading documents from ./docs
Loading new documents:   0%|                              | 0/1 [00:00
Config loaded
Config loaded
Config loaded
Config loaded
Config loaded
Config loaded
Config loaded
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     E:\ProgramData\anaconda3\envs\langchain\nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     E:\ProgramData\anaconda3\envs\langchain\nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     E:\ProgramData\anaconda3\envs\langchain\nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     E:\ProgramData\anaconda3\envs\langchain\nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     E:\ProgramData\anaconda3\envs\langchain\nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
Loading new documents: 100%|██████████████████████| 1/1 [00:08<00:00,  8.15s/it]
Loaded 1 new documents from ./docs
Split into 3 chunks of text (max. 500 tokens each)
Creating embeddings. May take some minutes...
DONE!
可以看到成功加载一个docs下面的文档,并切分成3大文本块(每个块500最大token)。这样就将文本导出到了向量数据库。
注意如果出现下列现象:ModuleNotFoundError: No module named 'exceptions'。原因是 python3.x版本移除了exceptions模块,但是docx包中引用了该模块。安装最新版python-docx模块即可pip install python-docx。

ChatGLM2-6B  

1环境要求  

如果仅使用CPU部署,则ChatGLM2-6B的量化模型最低CPU 32G
名称
参数
显存要求
ChatGLM2-6B
FP16
13G
ChatGLM2-6B
INT4
6G
ChatGLM2-6B-32K
FP16
20G
ChatGLM2-6B-32K
INT4
13G

2本地安装部署  

整合包下载:
百度:https://pan.baidu.com/s/1mxM-tdTiNxRGBzHzI7rlcw?pwd=plz9
提取码:plz9
部署步骤如下:
1、先下载懒人安装包:懒人包一键部署
将chatglm.zip安装包解压缩之后放在ChatGLM2-6B文件夹下面
2、创建一个叫VisualGLM-6B的文件夹,在此文件夹里面再创建一个叫cache的文件夹
3、配置缓存文件到系统环境变量及Path
         
4、之后点击一键启动,启动项目,启动前为了使用我们离线下载的七个模型,需要修改模型加载路径。
注意这个整合包无法直接运行,需要在model文件夹中增加几个文件。请移步我的云盘下载:http://www./#s/9xBJ3SNQ
下载完成后放到model文件夹:
如下图运行python.exe ../web_demo.py,首先加载模型,可以通过http://127.0.0.1:7860
待启动完成,可以在浏览器端进行提问。
3 LangChain访问ChatGLM2
1、启动ChatGLM2 API
2、启动LangChainAPI
3、通过LangChain接口调用ChatGLM2
4、通过ChatGPT前端进行对话

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多