LangChain:安装与应用

12/31/2025 大模型LLM应用开发LangChain

目录


参考


# LangChain:安装与应用

# LangChain安装指南


# 一、环境准备

  1. Python版本:推荐 Python 3.8+(对低版本兼容性有限)。

  2. 包管理工具:使用 pip 安装依赖。

  3. 虚拟环境:在虚拟环境中安装,以隔离项目依赖,避免依赖冲突。

    # 方法一:venv
    python -m venv myenv
    source myenv/bin/activate  # Linux/macOS
    myenv\Scripts\activate     # Windows
    
    1
    2
    3
    4
    # 方法二:conda
    conda create -n langchain-env python=3.10
    conda activate langchain-env
    
    1
    2
    3

# 二、安装核心基础包

# 安装主包
pip install langchain
1
2

主包提供了一个基本的起点,安装主包langchain时同时安装了langchain-core核心包库。注意:仅安装此包无法连接具体模型或数据源,需额外安装集成包。


# 1. LangChain(主包)

  • 定位:应用开发框架
  • 功能:
    • 提供构建大语言模型(LLM)应用的高层抽象和工具链
      • 链(Chains):预定义的工作流程(如问答链、摘要链)
      • 代理(Agents):动态决策模块
      • 内存(Memory):对话状态管理
      • 检索(Retrieval):文档处理工具
  • 特点:集成中心,通过langchain-community整合第三方服务

# 2. LangChain-Core(核心库)

  • 定位:基础架构层

  • 功能:

    • 定义核心抽象接口:

      • Runnable:可执行组件的统一接口
      • BasePromptTemplate:提示词模板规范
      • BaseOutputParser:输出解析器标准
    • 实现LangChain表达式语言(LCEL):

      from langchain_core.prompts import ChatPromptTemplate
      from langchain_core.output_parsers import StrOutputParser
      
      chain = (
          ChatPromptTemplate.from_template("{topic}是什么?") 
          | model 
          | StrOutputParser()
      )
      
      1
      2
      3
      4
      5
      6
      7
      8
  • 特点:轻量级,仅包含基础抽象(无具体实现)、可扩展,允许自定义组件实现


# 3. LangChain和LangChain-Core的关系

  • langchain 是面向终端开发者的上层框架,包含开箱即用的组件和集成。

  • langchain-core 是支撑前者的底层引擎,定义接口规范和核心运行时。

特性 LangChain LangChain-Core
定位 应用开发框架 基础架构规范
包含内容 链/代理/内存等完整工具 抽象接口+LCEL核心
依赖关系 依赖core和其他扩展包 零依赖(纯接口定义)
安装大小 较大(~10MB) 极小(~1MB)
典型使用场景 快速开发端到端应用 开发底层组件/定制框架
版本更新频率 高(每周更新) 低(保持稳定)

# 三、安装生态系统包(按需选择)

# 1、集成与扩展包

# 1. 特定提供商包
  • 功能:针对主流AI服务商(如OpenAI、Azure OpenAI、Anthropic)的专属集成。

    # 安装示例:
    pip install langchain-openai       # OpenAI模型
    pip install langchain-huggingface  # Hugging Face模型集成
    
    1
    2
    3
# 2. langchain-community
  • 功能:集成第三方服务(如数据库、API、向量存储等),包含大量社区贡献的适配器。

    # 安装
    pip install langchain-community
    
    1
    2
  • 示例集成:

    • 数据库:langchain_community.sql_database
    • API:langchain_community.llms.tongyi(通义千问)
    • 向量存储:langchain_community.vectorstores.chroma
# 3. langchain-experimental
  • 功能:实验性代码库,包含前沿功能(如多模态、强化学习),适合研究场景。

    # 安装
    pip install langchain-experimental
    
    1
    2

# 2、应用开发包

# 1. LangGraph
  • 功能:构建有状态、多角色交互的应用(如对话系统、工作流引擎)。

    # 安装
    pip install langgraph
    
    1
    2
# 2. LangServe
  • 功能:将LangChain链(Chain)部署为REST API,支持客户端-服务端分离。

    # 安装
    pip install "langserve[all]"    # 完整安装(客户端+服务端)
    pip install "langserve[client]" # 仅客户端
    pip install "langserve[server]" # 仅服务端
    
    1
    2
    3
    4
# 3. LangChain CLI
  • 功能:命令行工具,用于模板管理、LangServe项目初始化。

    # 安装
    pip install langchain-cli
    
    1
    2

# 3、专用工具包

# 1. LangSmith SDK
  • 功能:调试、监控和评估LLM应用的工具链,可独立使用。

    # 安装
    pip install langsmith  # 通常随LangChain自动安装
    
    1
    2
# 2. langchain-huggingface
  • 功能:Hugging Face官方合作包,支持其模型在LangChain中的无缝调用。

    # 安装
    pip install langchain-huggingface
    
    1
    2

# 五、验证安装

# 1. 检查包信息

pip show langchain
1
  • 输出:

    Name: langchain
    Version: 0.3.25
    Summary: Building applications with LLMs through composability
    Home-page: 
    Author: 
    Author-email: 
    License: MIT
    Location: D:\ResLibFiles\Repository\Anaconda\anaconda3\envs\pystu\Lib\site-packages
    Requires: langchain-core, langchain-text-splitters, langsmith, pydantic, PyYAML, requests, SQLAlchemy
    Required-by: 
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
  • 解释:

    • Name: 包名,这里是langchain

    • Version: 当前安装的版本,这里是0.3.25

    • Summary: 包的简要描述,说明这个包用于通过组合性构建基于大型语言模型(LLMs)的应用程序。

    • Home-page: 项目的主页,这里没有显示,通常会是项目的GitHub地址或官方网站。

    • AuthorAuthor-email: 作者和作者邮箱,这里没有显示。

    • License: 许可证类型,这里是MIT许可证。

    • Location: 包安装的位置,即该包在本地文件系统中的路径。

    • Requires: 该包所依赖的其他Python包。从输出中可以看到,langchain依赖于:

      • langchain-core: LangChain的核心库,包含基础抽象和LangChain表达式语言(LCEL)。
      • langchain-text-splitters: 用于文本分割的工具。
      • langsmith: LangChain的开发者平台,用于调试、测试、监控和评估LLM应用。
      • pydantic: 用于数据验证和设置管理的库。
      • PyYAML: 用于处理YAML文件的库。
      • requests: 用于发送HTTP请求的库。
      • SQLAlchemy: 一个ORM(对象关系映射)库,用于数据库操作。
    • Required-by: 显示哪些包依赖于此包。这里为空,表示当前环境中没有其他已安装的包依赖于这个langchain包。


# 2. 简单测试代码

import langchain
import langchain_core
# 导入特定集成(如langchain_openai)
print("LangChain版本:", langchain.__version__)
print("Core版本:", langchain_core.__version__)
1
2
3
4
5
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

prompt = ChatPromptTemplate.from_template("告诉我关于{topic}的一句话")
model = ChatOpenAI(api_key="YOUR_KEY")  # 替换真实API Key
chain = prompt | model

response = chain.invoke({"topic": "宇宙"})
print(response.content)  # 应输出非空文本
1
2
3
4
5
6
7
8
9

上次更新时间: 6/19/2025, 4:12:57 PM