LangChain+ChatGLM大模型应用落地实践(一)

LLMs的落地框架(LangChain),给LLMs套上一层盔甲,快速构建自己的新一代人工智能产品。

一、简介

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:开发可以决定行动、采取这些行动、观察结果并继续执行直到完成的代理。

二、Lanchain源码

Github 地址
https://github.com/imClumsyPanda/langchain-ChatGLM

https://github.com/hwchase17/langchain

三、租用云服务器实例

https://www.lanrui-ai.com/
注意收费有点贵,只用于训练时使用!!!

四、部署实例

  1. 实例开启后,选择JupyterLab进入后,启动命令行。


  1. 环境准备与数据下载:

    复制代码
    #克隆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-base-chinese data/your_path/text2vec-base-chinese
  2. 修改配置文件

    在langchain-ChatGLM/configs/model_config.py中修改Embedding、LLM模型名称及地址:

    修改LLM模型地址:

    LLM_MODEL = "chatglm-6b" //LLM名称

    OPEN_CROSS_DOMAIN = True // 开启跨域

在langchain-ChatGLM/webui.py中修改端口号为6006。

  1. 启动对话web页面

    进入langchain-ChatGLM文件中

    复制代码
    python webui.py

    启动成功

langchain-ChatGLM WebUI成功部署,就可以导入自己的知识库进行测试了。

相关推荐
FreeCode6 小时前
LangChain1.0智能体开发:流输出组件
人工智能·langchain·agent
cooldream20096 小时前
LangChain 构建智能多工具 Agent实践
langchain·agent·智能问答助手
FreeCode7 小时前
LangChain 1.0智能体开发:记忆组件
人工智能·langchain·agent
悟乙己8 小时前
使用 RAG、LangChain、FastAPI 和 Streamlit 构建 Text-to-SQL 聊天机器人
sql·langchain·fastapi
serve the people8 小时前
Prompt Serialization in LangChain
数据库·langchain·prompt
AI Echoes8 小时前
LangChain 使用语义路由选择不同的Prompt模板
人工智能·python·langchain·prompt·agent
serve the people13 小时前
Prompt Composition with LangChain’s PipelinePromptTemplate
java·langchain·prompt
钢蛋1 天前
LangChain v1.0 的 Agents:让 AI 真正"动起来"
langchain
稳稳C91 天前
02|Langgraph | 从入门到实战 | workflow与Agent
人工智能·langchain·agent·langgraph
FreeCode1 天前
LangChain1.0智能体开发:消息组件(Messages)
人工智能·langchain·agent