第00章:LangChain快速入门

📚 本章学习目标

  • 了解LangChain是什么
  • 理解LangChain的核心价值
  • 完成第一个LangChain示例
  • 掌握基本的模型调用方法

🎯 什么是LangChain?

LangChain是一个用于构建大语言模型(LLM)应用的框架。它提供了统一的接口和工具链,让开发者能够轻松地:

  • 连接各种LLM(OpenAI、Anthropic、本地模型等)
  • 构建复杂的应用流程(链、智能体等)
  • 集成外部工具和数据源
  • 管理对话历史和上下文

LangChain的核心价值

使用

开发者

LangChain框架

统一接口

多种LLM提供商

工具集成

记忆管理

链式编排

OpenAI

Anthropic

本地模型

API调用

数据库

搜索引擎

🏗️ LangChain架构概览

LangChain V1.2采用模块化设计,主要包含以下核心组件:

Models
模型

Prompts
提示词

Chains

Agents
智能体

Tools
工具

Memory
记忆

Retrieval
检索

组件说明

组件 作用 类比
Models 各种LLM的抽象接口 大脑
Prompts 提示词模板和消息格式 指令
Chains 将多个步骤组合成流程 流水线
Agents 能够使用工具的智能体 助手
Tools 外部功能(API、数据库等) 工具集
Memory 对话历史和状态管理 记忆
Retrieval 从文档中检索信息 知识库

🚀 第一个示例:简单调用

让我们从最简单的例子开始:

from langchain_openai import ChatOpenAI

# 创建模型实例
llm = ChatOpenAI(
    model="qwen-plus",
    api_key="your_api_key",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

# 调用模型
response = llm.invoke("你好,请介绍一下你自己")
print(response.content)

执行流程

API服务 LLM模型 LangChain 用户代码 API服务 LLM模型 LangChain 用户代码 invoke("你好...") HTTP请求 处理请求 返回响应 JSON响应 AIMessage对象

💬 消息格式

LangChain使用标准化的消息类型:

BaseMessage

+str content

+dict additional_kwargs

HumanMessage

+str content

AIMessage

+str content

SystemMessage

+str content

消息类型说明

  • HumanMessage: 用户输入的消息
  • AIMessage: AI的回复消息
  • SystemMessage: 系统提示,定义AI的角色和行为

🔄 多轮对话

LangChain支持多轮对话,通过维护消息历史来实现:

第一轮对话

用户: 我的名字是张三

AI: 你好张三

保存消息历史

第二轮对话

用户: 你还记得我的名字吗?

AI: 当然记得,你是张三

关键点

  1. 消息历史管理: 每次对话都需要包含之前的消息
  2. 上下文理解: AI通过历史消息理解对话上下文
  3. 状态保持: 在多轮对话中保持对话状态

📝 代码示例解析

示例1:简单调用

response = llm.invoke("你好,请用一句话介绍一下你自己")
  • invoke(): 同步调用方法
  • 直接传入字符串,LangChain会自动转换为消息格式

示例2:使用消息格式

from langchain_core.messages import HumanMessage

messages = [HumanMessage(content="请告诉我Python有哪些特点?")]
response = llm.invoke(messages)
  • 显式使用HumanMessage,更清晰
  • 可以添加更多消息类型(如SystemMessage)

示例3:多轮对话

# 第一轮
messages = [HumanMessage(content="我的名字是张三")]
response1 = llm.invoke(messages)

# 第二轮(包含历史)
messages.append(AIMessage(content=response1.content))
messages.append(HumanMessage(content="你还记得我的名字吗?"))
response2 = llm.invoke(messages)
  • 使用列表维护消息历史
  • 每次调用都包含完整的对话历史

🎓 学习要点总结

  1. LangChain是LLM应用的框架,提供统一的接口
  2. 模型调用是最基础的操作,使用invoke()方法
  3. 消息格式标准化了与LLM的交互方式
  4. 多轮对话通过维护消息历史实现

🔗 下一步

完成本章后,你应该能够:

  • ✅ 理解LangChain的基本概念
  • ✅ 成功调用LLM模型
  • ✅ 使用消息格式进行交互
  • ✅ 实现简单的多轮对话

下一章我们将深入学习**模型(Models)**的详细配置和使用方法。

📚 参考资源

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐