LangChain实战(二):环境搭建与Hello World(国内开源模型版)
本文是《LangChain实战课》系列的第二篇,将手把手带你完成基于国内开源大模型的LangChain环境配置,并创建你的第一个LangChain应用。
前言
在上一篇文章中,我们基于openai大模型完成了LangChain环境配置,并创建你的第一个LangChain应用。今天,我们将使用国内免费且开源的大模型(如ChatGLM、Qwen、Baichuan等)替代商业API,从零开始搭建LangChain开发环境,并创建第一个能够与大型语言模型对话的简单应用。
环境准备
- Python环境要求
LangChain要求Python 3.8或更高版本。如果你还没有安装Python,请按照以下步骤操作:
检查当前Python版本:
bash
python --version
或
python3 --version
如果版本低于3.8,请从Python官网下载并安装最新版本。
- 创建虚拟环境
强烈建议使用虚拟环境来管理Python项目依赖,这样可以避免包冲突问题。
使用venv创建虚拟环境:
bash
创建名为langchain-oss-env的虚拟环境
python -m venv langchain-oss-env
激活虚拟环境
Windows
langchain-oss-env\Scripts\activate
macOS/Linux
source langchain-oss-env/bin/activate
激活后,命令行提示符前会出现(langchain-oss-env)标识。
- 安装LangChain和相关依赖
现在我们来安装LangChain核心库以及开源模型相关的包:
bash
安装LangChain核心库
pip install langchain
安装Transformers库(用于本地模型推理)
pip install transformers
安装加速库
pip install accelerate
安装其他可能需要的库
pip install sentencepiece
pip install protobuf
安装模型下载工具
pip install huggingface_hub
安装环境变量管理工具
pip install python-dotenv
安装常用的数据处理工具
pip install chromadb # 轻量级向量数据库
可选:安装更多文档加载器
pip install pypdf2 # 处理PDF文档
pip install docx2txt # 处理Word文档
选择国内开源大模型
国内有多种优秀的开源大模型可供选择,以下是一些常见选项:
ChatGLM系列(清华大学):ChatGLM-6B、ChatGLM2-6B、ChatGLM3-6B
Qwen系列(阿里巴巴):Qwen-7B、Qwen-14B
Baichuan系列(百川智能):Baichuan-7B、Baichuan-13B
InternLM系列(商汤科技):InternLM-7B、InternLM-20B
本文将使用ChatGLM3-6B作为示例,但代码可以轻松适配其他模型。
编写第一个LangChain程序(开源模型版)
现在让我们来创建第一个简单的LangChain应用,使用国内开源模型实现基本的问答功能。
- 基础版本:直接调用本地模型
创建文件hello_langchain_oss.py:
python
import os
from dotenv import load_dotenv
from langchain.llms.base import LLM
from transformers import AutoTokenizer, AutoModel
from typing import Any, List, Optional, Dict, Iterator
import torch
加载环境变量
load_dotenv()
class ChatGLM(LLM):
model_name: str = “chatglm3-6b”
tokenizer: Any = None
model: Any = None
device: str = “cuda” if torch.cuda.is_available() else “cpu”
def __init__(self