首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LangGraph基础教程

LangGraph基础教程

作者头像
@小森
发布2025-07-24 08:37:04
发布2025-07-24 08:37:04
68700
代码可运行
举报
文章被收录于专栏:xiaosenxiaosen
运行总次数:0
代码可运行

LangChain 基础教程

本系列教程将带你了解 LangChain 和 LangGraph 的基础知识,学习如何构建智能体应用。

🌟 背景介绍

在 LangChain,致力于让构建大语言模型应用变得简单。你可以构建的一种大语言模型应用是智能体(agent)。构建智能体令人兴奋,因为它们可以自动化许多以前不可能完成的任务。

🤔 现实挑战

但在实践中,构建能够可靠执行这些任务的系统是极其困难的。在与用户合作将智能体投入生产的过程中,我们了解到通常需要更多的控制。你可能需要智能体:

  • 总是先调用特定工具
  • 根据其状态使用不同的提示
  • 具备更精确的控制能力
💡 解决方案:LangGraph

为了解决这个问题,构建了 LangGraph —— 一个用于构建智能体和多智能体应用的框架。

LangGraph 的特点:

  • 独立于 LangChain 包
  • 核心设计理念:帮助开发者在智能体工作流中添加更好的精确性和控制
  • 适用于现实世界系统的复杂性

📖 课程结构

课程结构化为一系列模块,每个模块专注于与 LangGraph 相关的特定主题:

📁 文件组织
  • 模块文件夹:每个模块都有独立的文件夹
  • 笔记本系列:每个文件夹包含一系列教学笔记本
  • 视频配套:每个笔记本都配有讲解视频
  • 独立学习:笔记本可以独立于视频查看
  • Studio 文件夹:包含可加载到 LangGraph Studio 的图形文件

LangGraph Studio 是专门用于构建 LangGraph 应用的集成开发环境(IDE)。


⚙️ 环境设置

开始学习之前,请确保完成以下设置步骤:

1. 创建环境

按照项目 README 中的说明创建 Python 环境并安装依赖项。

2. 安装必要的包
代码语言:javascript
代码运行次数:0
运行
复制
pip install --quiet -U langchain_openai langchain_core langchain_community tavily-python
3. 配置 API 密钥

你需要设置以下 API 密钥:

  • OPENAI_API_KEY:用于访问 OpenAI 的聊天模型
  • TAVILY_API_KEY:用于搜索功能(可选)

🤖 聊天模型详解

什么是聊天模型?

在本课程中,我们将使用聊天模型,它们的工作原理是:

  • 输入:接受一系列消息
  • 输出:返回聊天消息
🔗 第三方集成

重要说明:LangChain 不托管任何聊天模型,而是依赖第三方集成。

查看完整的集成列表:LangChain 聊天模型集成

🎯 推荐模型:ChatOpenAI

默认情况下,课程使用 ChatOpenAI,原因:

  • ✅ 受欢迎且广泛使用
  • ✅ 性能优异
  • ✅ 稳定可靠
💰 费用说明
  • 新用户福利:首次注册 API 可获得免费积分
  • 定价信息:查看官方定价页面
  • 模型推荐
    • gpt-4o:质量、价格、速度的最佳平衡(推荐)
    • gpt-3.5-turbo:更经济的选择

🛠️ 实践操作

配置聊天模型
代码语言:javascript
代码运行次数:0
运行
复制
import os
os.environ["MOONSHOT_API_KEY"] = "..."
from langchain_community.chat_models.moonshot import MoonshotChat
from langchain_core.messages import HumanMessage, SystemMessage
chat = MoonshotChat(model="kimi-k2-0711-preview")
🌡️ 重要参数说明

Temperature(温度)参数

  • 低温度(接近 0)
    • 更确定性和专注的输出
    • 适用于需要准确性或事实性回应的任务
  • 高温度(接近 1)
    • 更有创造性和多样性
    • 适用于创造性任务或生成多样化回应
步骤 3:使用聊天模型
方法一:使用消息对象
代码语言:javascript
代码运行次数:0
运行
复制
from langchain_core.messages import HumanMessage

# 创建一条消息
msg = HumanMessage(content="你好", name="Lance")

# 消息列表
messages = [msg]

# 用消息列表调用模型
chat.invoke(messages)
# 回复:
AIMessage(content='你好!很高兴见到你 😊  \n有什么我可以帮你的吗?', additional_kwargs={}, response_metadata={'token_usage': {'completion_tokens': 15, 'prompt_tokens': 8, 'total_tokens': 23, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'kimi-k2-0711-preview', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None}, id='run--106bd2c7-2d6d-4ba5-b6f9-7345256be5f8-0')
方法二:直接使用字符串
代码语言:javascript
代码运行次数:0
运行
复制
# 直接传入字符串(会自动转换为 HumanMessage)
chat.invoke("介绍一下自己")
📋 常用方法

LangChain 聊天模型提供多种默认方法

  • stream:流式返回响应块
  • invoke:在输入上调用链(最常用)
🔄 模型切换

所有聊天模型的接口都是一致的,这意味着:

  • 模型通常在每个笔记本启动时初始化一次
  • 可以轻松在不同模型间切换而无需更改下游代码
  • 支持多种提供商的无缝切换

🔍 搜索工具集成

介绍 Tavily

Tavily 是一个专为大语言模型和 RAG(检索增强生成)优化的搜索引擎。

✨ Tavily 的优势
  • 🚀 高效快速:专为 LLM 优化的搜索结果
  • 🎯 持久稳定:提供可靠的搜索服务
  • 💰 慷慨免费层:注册简单,免费额度充足
  • 🔧 易于集成:与 LangChain 无缝集成
🛠️ 配置和使用
步骤 1:设置 API 密钥
代码语言:javascript
代码运行次数:0
运行
复制
_set_env("TAVILY_API_KEY")
步骤 2:创建搜索工具
代码语言:javascript
代码运行次数:0
运行
复制
from langchain_community.tools.tavily_search import TavilySearchResults

# 创建搜索工具(最多返回3个结果)
tavily_search = TavilySearchResults(max_results=3)
步骤 3:执行搜索
代码语言:javascript
代码运行次数:0
运行
复制
# 搜索 LangGraph 相关信息
search_docs = tavily_search.invoke("LangGraph是什么?")
print(search_docs)
搜索结果
代码语言:javascript
代码运行次数:0
运行
复制
[{'title': 'langgraph设计解读-简介以及示例- 解码AI | 无限可能的创造力与想象力',
  'url': 'https://yang20150702.github.io/2024/04/22/langgraph-part1/',
  'content': 'langgraph 是一个使用LLM来构建有状态的、multi-actor应用程序的库。\n它扩展了 LangChain Expression Language的能力,能够以循环的方式跨多个计算step来协调多个chains(或者actors)。\nlanggraph 的灵感来自 Pregel 和 Apache Beam。暴露的接口借鉴了 NetworkX。\n\nPregel 是由Google发布的大规模图处理系统,基于BSP(Bulk Synchronous Parallel,整体同步并行)模型来实现。\nApache Beam:一个用于定义批处理和流数据并行处理管道的统一模型。\nNetworkX是一个 Python 包,用于创建、操作和研究复杂网络的结构、动态和功能。\n\nlanggraph的核心点是为LLM应用程序添加了循环。',
  'score': 0.9094659},
 {'title': '彻底搞懂LangGraph【之三】:构建一个创作电影脚本的多智能体应用',
  'url': 'https://developer.volcengine.com/articles/7389518901443231781',
  'content': 'LangGraph是著名的大模型开发框架LangChain推出的用于构建基于复杂工作流的LLM应用的开发库。LangGraph把任务的节点与关系用Graph结构来定义以支持更多样更复杂的应用场景,特别是:\n\n   实现包含循环、迭代等复杂工作流的高级RAG范式\n   需要更灵活控制的Agent应用,如指定Tool、增加人机交互等\n   多智能体系统(Multi-Agent System)的构建\n\n我们在之前的文章中曾经介绍过LangGraph实现C-RAG,本文将分享一个如何使用LangGraph构建 一个创作电影场景与脚本的多智能体应用 。\n\nImage 7: picture.image\n\nImage 8: picture.image\n\n如果你需要回顾LangGraph,请参考:\n\n彻底搞懂LangGraph:构建强大的Multi-Agent多智能体应用的LangChain新利器\n\n彻底搞懂LangGraph【之二】:构建一个可自我纠正的增强知识库RAG应用\n\nImage 9: picture.image\n\nImage 10: picture.image\n\n关于多智能体系统',
  'score': 0.8991304},
 {'title': '一文搞懂LangChain 新利器:LangGraph 原创 - CSDN博客',
  'url': 'https://blog.csdn.net/musicml/article/details/136441895',
  'content': '[from _langgraph_.graphimportSTART, END # 定义输入的模式 classInputState(TypedDict)_:_ question _:_ str llm_answer _:_ Optional[str]# 表示 answer 可以是 str 类型,也可以是 None # 定义输出的模式 classOutputState(TypedDict)_:_ answer _:_ str #将 InputState 和 OutputState 这两个 TypedDict 类型合并成一个更全面的字典类...](\n\n_LangGraph_ 简介\n\n大多_C的博客\n\n06-01Image 49 1607 \n\n_LangGraph_ 是 _LangChain_ 的一个扩展,旨在通过将步骤建模为图中的边缘和节点,构建具有大型语言模型(LLMs)的强大和有状态的多角色应用程序。_LangGraph_ 提供了用于创建常见类型代理的高级接口,以及用于组合自定义流程的低级 API。 [...] Image 11Image 12点赞数 21 \n\n文章标签:langchain\n\n 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。 \n\n 本文链接:\n\n版权\n\nImage 13MCP技术社区 文章已被社区收录\n\n加入社区\n\n▼最近直播超级多,预约保你有收获\n\n今天直播:《RAG和GPTs构建Agent产业应用落地实战》\n\n_\\_—\\_ \\_1\\__ _—_\n\nLangGraph 技术架构解读\n\nLangGraph 是一个有用于构建有状态和多角色的 Agents 应用,它并不是一个独立于 Langchain 的新框架,而是基于 Langchain 之上构建的一个扩展库,可以与 Langchain 现有的链(Chains)、LangChain Expression Language(LCEL)等无缝协作。LangGraph 能够协调多个 Chain、Agent、Tool 等共同协作来完成输入任务,支持 LLM 调用“循环”和 Agent 过程的更精细化控制。 [...] _LangGraph_ 是一个基于 _LangChain_ 构建的扩展。_LangGraph_ 是一个用于构建具有状态和多参与者应用程序的 LLM 库,它允许创建具有循环的图,这在大多数智能体架构中是必需的。_LangGraph_ 提供了对应用程序流程和状态的细粒度控制,这对于创建可靠的智能体至关重要,并且 _LangGraph_ 还内置了包括持久化对话,支持高级的人机交互和记忆功能。\n\n_langchain_ 系列(六)- _LangGraph_ 入门以及介绍\n\n5-23\n\n二、LangGrah介绍 1、基础介绍 2、_LangChain_ 各版本图示 三、为什么使用 _LangGraph_ 1、链(Chain)的局限性 2、AgentExecutor的局限性 3、_LangGraph_ 解决的问题 四、_LangGraph_ 核心思想 1、核心概念 (1)state 状态 (2)node 节点 (3)edge 边 2、流程说明\n\n一步步教你 _LangGraph_ Studio _:_ 可视化调试基于 _LangGraph_ 构建的AI智能...\n\n5-25',
  'score': 0.8893851}]

🎓 课程总结

🎉 恭喜!你已经完成了基础教程

通过本教程,你已经学会了:

✅ 核心概念
  • 理解了 LangChain 和 LangGraph 的作用和价值
  • 掌握了智能体应用的基本概念
  • 了解了课程的整体结构
✅ 技术技能
  • 配置和使用 chat聊天模型
  • 理解温度参数对输出的影响
  • 掌握消息对象和字符串输入的使用方法
  • 集成和使用 Tavily 搜索工具
✅ 实践能力
  • 环境设置和依赖管理
  • API 密钥的安全配置
  • 基本的模型调用和结果处理
🚀 下一步学习

现在你已经掌握了基础知识,可以继续学习:

  1. 模块 1:深入了解 LangGraph 的核心功能
  2. 模块 2:构建你的第一个智能体
  3. 模块 3:多智能体协作
  4. 模块 4:高级搜索和 RAG 应用
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LangChain 基础教程
    • 🌟 背景介绍
      • 🤔 现实挑战
      • 💡 解决方案:LangGraph
    • 📖 课程结构
      • 📁 文件组织
    • ⚙️ 环境设置
      • 1. 创建环境
      • 2. 安装必要的包
      • 3. 配置 API 密钥
    • 🤖 聊天模型详解
      • 什么是聊天模型?
      • 🔗 第三方集成
      • 🎯 推荐模型:ChatOpenAI
      • 💰 费用说明
    • 🛠️ 实践操作
      • 配置聊天模型
      • 🌡️ 重要参数说明
      • 步骤 3:使用聊天模型
      • 📋 常用方法
      • 🔄 模型切换
    • 🔍 搜索工具集成
      • 介绍 Tavily
      • ✨ Tavily 的优势
      • 🛠️ 配置和使用
    • 🎓 课程总结
      • 🎉 恭喜!你已经完成了基础教程
      • 🚀 下一步学习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档