第1章:LangChain介绍与环境搭建

欢迎来到LangChain入门教程!本章将带你了解LangChain的基本概念,并完成开发环境的搭建。即使你是零基础,也能轻松上手。

1.1 什么是LangChain?

LangChain是一个用于开发大语言模型(LLM)应用的Python/JavaScript框架。简单来说,它是组装LLM应用的"乐高积木",让你能够把各种功能模块串联起来。

想象一下,你要搭建一座房子:

  • 单独的大语言模型就像是一块块散落的砖块
  • LangChain则提供了钢筋、水泥、脚手架等工具和连接件
  • 让你能快速把砖块搭建成稳固的房子
核心概念:LangChain本身不提供AI模型,而是提供了一套"胶水"和"框架",让你能更方便地调用各种AI模型,并将它们与外部数据、工具结合起来。

1.2 为什么要用LangChain?

使用LangChain开发LLM应用,有以下几个显著优势:

1.2.1 简化开发

不用从零写很多重复代码。比如:

  • 调用API的封装
  • 对话历史的存储和管理
  • 提示词(Prompt)的格式化
  • 输出结果的解析

这些常用功能LangChain都已经帮你封装好了,开箱即用。

1.2.2 模块化设计

LangChain采用组件化设计,各个模块之间松耦合:

  • 可复用:写好一个提示词模板,到处都能用
  • 可替换:今天用OpenAI的模型,明天换成Anthropic的,代码改动很小
  • 可组合:像搭积木一样,把多个组件组合成复杂的应用

1.2.3 生态丰富

LangChain拥有庞大的生态系统,支持:

  • 各种模型:OpenAI、Anthropic、Google、HuggingFace、本地模型等
  • 各种数据库:向量数据库(Pinecone、Chroma、FAISS等)、关系型数据库
  • 各种工具:搜索引擎、API接口、文件系统、代码执行器等
小提示:LangChain是目前最受欢迎的LLM应用开发框架之一,GitHub上拥有超过80k Stars。学习它能让你站在巨人的肩膀上!

1.3 LangChain的核心组件

LangChain主要由以下六大核心组件构成:

1.3.1 Model I/O(模型输入输出)

负责与大语言模型进行交互,包括:

  • Models:封装各种LLM和Chat Model的调用
  • Prompts:提示词模板的管理和格式化
  • Output Parsers:将模型输出解析为结构化数据

1.3.2 Chains(链)

Chain是LangChain的核心概念,用于把多个操作串联起来:

  • 最简单的Chain:提示词 → 模型 → 输出
  • 复杂的Chain:检索文档 → 构建提示词 → 调用模型 → 解析输出
  • 链可以嵌套,形成更复杂的逻辑

1.3.3 Indexes(索引)

用于处理外部文档数据,实现检索增强生成(RAG):

  • Document Loaders:加载各种格式的文档(PDF、Word、网页等)
  • Text Splitters:将长文档切分成适合处理的片段
  • Vector Stores:存储文档的向量表示,支持语义搜索
  • Retrievers:从向量库中检索相关文档

1.3.4 Memory(记忆)

让AI应用"记住"之前的对话内容:

  • Conversation Buffer Memory:保存完整对话历史
  • Conversation Summary Memory:对历史对话进行摘要
  • Entity Memory:记住对话中提到的实体信息

1.3.5 Agents(智能体)

让LLM具备自主决策能力:

  • Agent根据用户输入,自主决定使用哪些工具
  • 可以调用搜索、计算器、API、代码执行等工具
  • 实现复杂的推理和任务执行

1.3.6 Callbacks(回调)

用于监控和调试应用:

  • 记录每次API调用的耗时和token消耗
  • 实时监控链的执行过程
  • 集成LangSmith进行生产环境监控
学习建议:初学者不需要一次性掌握所有组件。建议按照 Model I/O → Chains → Memory → Indexes → Agents 的顺序逐步学习。

1.4 环境搭建(详细步骤)

现在开始动手搭建开发环境。请按照以下步骤操作:

1.4.1 确认Python版本

LangChain需要Python 3.8或更高版本。打开终端,输入以下命令检查:

# 检查Python版本
python --version
# 或
python3 --version

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

注意:建议使用Python 3.10或3.11,兼容性最好。Python 3.12可能需要等待部分依赖库的更新。

1.4.2 创建虚拟环境(推荐)

为了避免依赖冲突,建议为每个项目创建独立的虚拟环境:

# 创建项目目录
mkdir my_langchain_project
cd my_langchain_project

# 创建虚拟环境
python -m venv venv

# Windows系统激活虚拟环境
venv\Scripts\activate

# Mac/Linux系统激活虚拟环境
source venv/bin/activate

激活成功后,命令行前面会显示 (venv) 标识。

1.4.3 安装LangChain

使用pip安装LangChain核心库:

# 安装LangChain核心库
pip install langchain

# 同时安装社区版(包含更多集成)
pip install langchain-community

1.4.4 安装模型库

根据你使用的模型,安装对应的库。以下是常用选项:

# 如果使用OpenAI模型(推荐入门使用)
pip install openai

# 如果使用Anthropic Claude模型
pip install anthropic

# 如果使用HuggingFace本地模型
pip install transformers
pip install torch

# 如果使用Azure OpenAI
pip install openai
新手推荐:建议使用OpenAI的GPT模型入门,因为文档最完善、响应速度最快。你可以先去OpenAI官网注册账号并充值API额度。

1.4.5 配置API Key

使用环境变量方式存储API Key是最安全的做法:

Windows PowerShell:

# 设置OpenAI API Key(临时,仅当前窗口有效)
$env:OPENAI_API_KEY = "sk-your-api-key-here"

# 永久设置(添加到系统环境变量)
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-your-api-key-here", "User")

Mac/Linux (bash/zsh):

# 临时设置
export OPENAI_API_KEY="sk-your-api-key-here"

# 永久设置(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export OPENAI_API_KEY="sk-your-api-key-here"' >> ~/.bashrc
source ~/.bashrc

使用.env文件(项目级别):

# 安装python-dotenv
pip install python-dotenv

在项目根目录创建 .env 文件:

OPENAI_API_KEY=sk-your-api-key-here
重要安全提示:永远不要将API Key直接写在代码中!不要提交到Git仓库!如果泄露,请立即到OpenAI后台撤销并重新生成。

1.4.6 第一个Hello World程序

环境配置完成后,我们来写第一个程序验证一切正常:

# hello_world.py
# LangChain入门第一个程序

# 导入必要的库
from langchain.llms import OpenAI
from dotenv import load_dotenv
import os

# 加载.env文件中的环境变量
load_dotenv()

# 创建OpenAI模型实例
# temperature控制输出随机性,0.0最确定,1.0最随机
llm = OpenAI(temperature=0.7)

# 调用模型进行预测
response = llm.predict("你好,请介绍一下自己")

# 打印模型输出
print("AI的回答:")
print(response)

运行程序:

python hello_world.py

如果看到AI的回复,恭喜你!环境搭建成功!

代码解释:
1. load_dotenv() - 加载.env文件中的API Key
2. OpenAI(temperature=0.7) - 创建模型实例
3. llm.predict() - 发送提示词并获取回复
4. temperature - 创造性参数,越低越保守

1.5 LangChain生态介绍

除了核心库,LangChain还提供了丰富的配套工具:

1.5.1 LangServe

用于将LangChain应用部署为REST API服务:

  • 一键将Chain转换为可部署的服务
  • 自动生成API文档(基于FastAPI)
  • 支持流式输出和批处理
pip install "langserve[all]"

1.5.2 LangSmith

LangChain的官方监控和调试平台:

  • 追踪每一次LLM调用(输入、输出、耗时、token消耗)
  • 可视化Chain的执行流程
  • 评估和测试应用效果
  • 支持数据集管理和A/B测试

访问 smith.langchain.com 注册使用。

1.5.3 LangChain Expression Language (LCEL)

LCEL是LangChain的声明式语法,用于组合组件:

  • 使用管道符 | 连接各个组件
  • 代码更简洁、易读
  • 自动支持流式输出和并行执行

LCEL示例:

# LCEL语法示例
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI

# 定义提示词模板
prompt = ChatPromptTemplate.from_template("用一句话介绍{topic}")

# 使用管道符连接组件
chain = prompt | ChatOpenAI()

# 调用链
result = chain.invoke({"topic": "LangChain"})
print(result)
后续章节预告:在第2章,我们将深入学习模型调用和提示词模板;第3章会详细介绍LCEL的用法。

本章小结

恭喜完成第1章的学习!你已经掌握了:

  • ✅ LangChain是什么,为什么要用它
  • ✅ LangChain的六大核心组件
  • ✅ 如何搭建开发环境
  • ✅ 运行了第一个Hello World程序
  • ✅ LangChain生态系统概览
下一步:继续学习第2章《模型调用与提示词》,掌握LangChain最核心的模型交互技能!