当前位置: 首页 > news >正文

LangChain实战(二):环境搭建与Hello World(国内开源模型版)

本文是《LangChain实战课》系列的第二篇,将手把手带你完成基于国内开源大模型的LangChain环境配置,并创建你的第一个LangChain应用。

前言
在上一篇文章中,我们基于openai大模型完成了LangChain环境配置,并创建你的第一个LangChain应用。今天,我们将使用国内免费且开源的大模型(如ChatGLM、Qwen、Baichuan等)替代商业API,从零开始搭建LangChain开发环境,并创建第一个能够与大型语言模型对话的简单应用。

环境准备

  1. Python环境要求
    LangChain要求Python 3.8或更高版本。如果你还没有安装Python,请按照以下步骤操作:

检查当前Python版本:

bash
python --version

python3 --version
如果版本低于3.8,请从Python官网下载并安装最新版本。

  1. 创建虚拟环境
    强烈建议使用虚拟环境来管理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)标识。

  1. 安装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应用,使用国内开源模型实现基本的问答功能。

  1. 基础版本:直接调用本地模型
    创建文件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
http://www.xdnf.cn/news/1387729.html

相关文章:

  • 嵌入式Linux驱动开发 - 并发控制机制
  • 【开题答辩全过程】以 基于Spring Boot的网上家庭烹饪学习系统的设计与实现为例,包含答辩的问题和答案
  • 不止 ChatGPT:多模态 AI(文本 + 图像 + 音频)正重构内容创作全流程
  • 以技术赋能强化消费者信任,助推餐饮服务质量提质增效的明厨亮灶开源了
  • [密码学实战]基于SM2实现协同签名(四十五)
  • 微算法科技(NASDAQ:MLGO)一种基于FPGA的Grover搜索优化算法技术引领量子计算
  • QT5.14.2、CMake 扩展openCV
  • JVM_JMM
  • 面试八股文之——JVM与并发编程/多线程
  • Python Imaging Library (PIL) 全面指南:PIL基础入门-构建简易图像编辑器
  • LSTM实战:回归 - 实现交通流预测
  • 在Windows系统上将Java的.jar文件部署为服务
  • stylelint在项目中使用
  • 构筑沉浸式3D世界:渲染、资源与体验的协同之道
  • 牛客网 DP35 二维前缀和
  • 【算法】链表专题
  • C#连接SQL-Server数据库超详细讲解以及防SQL注入
  • 零基础json入门教程(基于vscode的json配置文件)
  • 序列化和反序列的学习
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(五)
  • Word - Word 查找文本中的特定内容
  • Redis vs Elasticsearch:核心区别深度解析
  • c++二叉搜索树
  • 在Linux的环境下安装GitLab(保姆级别)
  • Ubuntu下的压缩及解压缩
  • Llama-index学习文档
  • AI驱动万物智联:IOTE 2025深圳展呈现无线通信×智能传感×AI主控技术融合
  • 【Python办公】CSV按列去重工具
  • LangChain实战(三):深入理解Model I/O - Prompts模板
  • 聊聊Prompt Engineering (提示词工程)