LLMs的落地框架(LangChain),给LLMs套上一层盔甲,快速构建自己的新一代人工智能产品。
- 一、简介
- 二、LangChain源码
- 三、租用云服务器实例
- 四、部署实例
一、简介
LangChain是一个近期非常活跃的开源代码库,目前也还在快速发展中,旨在让大家快速构建自己的LLM对话产品。当然,该框架也支持自定义接入其他机构、企业开源的LLMs的API和模型(比如:ChatGLM、文心一言等)。
届时,LangChain的版本已经更新到0.0.123,目前保持着每天1发版的更新速度。
LangChain主要包括以下几个主要的模块:
Prompt Templates:支持自定义Prompt工程的快速实现以及和LLMs的对接;
LLMs:提供基于OpenAI API封装好的大模型,包含常见的OpenAI大模型,也支持自定义大模型的封装;
Utils:大模型常见的植入能力的封装,比如搜索引擎、Python编译器、Bash编译器、数据库等等;
Chains(重点):大模型针对一系列任务的顺序执行逻辑链;
Agents(重点):通常Utils中的能力、Chains中的各种逻辑链都会封装成一个个工具(Tools)供Agents进行智能化调用;
其中,Chains和Agents两个模块是LangChain的亮点,也是后续教程中会重点展开的内容。
目前LangChain支持调用的OpenAI模型可以在官方文档([文档, OpenAI, Models])中查询;
LangChain 支持大量用例,例如:
针对特定文档的问答:根据给定的文档回答问题,使用这些文档中的信息来创建答案。
聊天机器人:构建可以利用 LLM 的功能生成文本的聊天机器人。
Agents:开发可以决定行动、采取这些行动、观察结果并继续执行直到完成的代理。
二、LangChain源码
Github 地址
https://github.com/imClumsyPanda/langchain-ChatGLM
https://github.com/hwchase17/langchain
三、租用云服务器实例
https://www.lanrui-ai.com/
注意收费有点贵,只用于训练时使用!!!
四、部署实例
- 实例开启后,选择JupyterLab进入后,启动命令行。
-
环境准备与数据下载:
#克隆LangChain-ChatGLM项目 git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git 进入langchain-ChatGLM文件夹 cd langchain-ChatGLM/#项目中 pdf 加载由先前的 detectron2 替换为使用 paddleocr,如果之前有安装过 detectron2 需要先完成卸载避免引发 tools 冲突 pip uninstall detectron2 如果不需要对 pdf 格式文件读取,可不安装 detectron2;如需对 pdf 文件进行高精度文本提取,建议按照如下方法安装: $ git clone https://github.com/facebookresearch/detectron2.git $ cd detectron2 $ pip install -e .#安装依赖 pip install -r requirements.txt -i https://mirror.sjtu.edu.cn/pypi/web/simple #安装protobuf --- 安装失败也可以跳过 pip install protobuf==3.20.1 #安装peft pip install peft #将gradio升级到3.28.3 pip install --upgrade gradio #安装git1fs git lfs install #如果安装安装git1fs时出现以下错误:git: 'lfs' is not a git command. See 'git --help'. 则使用以下指令。 curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt-get install git-lfs #退回根目录 cd ~ #创建存放数据的文件夹(autodl-tmp为数据盘,将模型下载到数据盘中) mkdir data/your_path/ #下载LLM模型(文件比较大需要等一会) git clone https://huggingface.co/THUDM/chatglm-6b data/your_path//chatglm-6b #下载Embedding模型 git clone https://huggingface.co/GanymedeNil/text2vec data/your_path/text2vec
-
修改配置文件
在langchain-ChatGLM/configs/model_config.py中修改Embedding、LLM模型名称及地址:
修改LLM模型地址:
LLM_MODEL = “chatglm-6b” //LLM名称
OPEN_CROSS_DOMAIN = True // 开启跨域
在langchain-ChatGLM/webui.py中修改端口号为6006。
-
启动对话web页面
进入langchain-ChatGLM文件中python webui.py
启动成功
langchain-ChatGLM WebUI成功部署,就可以导入自己的知识库进行测试了。